Skip to content

Commit d052b51

Browse files
RodBerwRodolfo Liberado (BEYONDSOFT CONSULTING INC)
andauthored
Add chromium path arguments (#465)
* Add chromium path arguments * Update simulate API * Argument correction and exception logs * Lowercase correction * Lowercase correction 1.0 * Fix chromium path argument validation * Fix chromium path argument validation 1.0 * Chromium target validation * Fix Chromium target validation * Target validation update * getBrowser chromiumPath argument location change --------- Co-authored-by: Rodolfo Liberado (BEYONDSOFT CONSULTING INC) <v-rliberado@microsoft.com>
1 parent e84a1e3 commit d052b51

4 files changed

Lines changed: 24 additions & 47 deletions

File tree

bin/simulate

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ function unknownOptHandler(optName) {
3535
function processArgs() {
3636
try {
3737
var parserOptions = {
38-
string: ['dir', 'simhostui', 'target', 'simulationpath', 'device', 'lang', 'theme', 'middleware'],
38+
string: ['dir', 'simhostui', 'target', 'simulationpath', 'device', 'lang', 'theme', 'middleware', 'chromiumpath'],
3939
boolean: ['livereload', 'forceprepare', 'corsproxy', 'generateids', 'spaurlrewrites', 'showbrowser'],
4040
default: {
4141
dir: null,
@@ -77,7 +77,8 @@ function processArgs() {
7777
middleware: parsed.middleware,
7878
generateids: parsed.generateids,
7979
spaurlrewrites: parsed.spaurlrewrites,
80-
showbrowser: parsed.showbrowser
80+
showbrowser: parsed.showbrowser,
81+
chromiumpath: parsed.chromiumpath
8182
};
8283
} catch (err) {
8384
throw new Error('Error parsing arguments: ' + (err.message || err) + os.EOL + os.EOL + getUsageString());
@@ -102,7 +103,8 @@ function getUsageString() {
102103
'[--middleware MIDDLEWARE_PATH]',
103104
'[--generateids (GENERATEIDS)]',
104105
'[--spaurlrewrites (SPA_URL_REWRITES)]',
105-
'[--showbrowser (SHOWBROWSER)]'
106+
'[--showbrowser (SHOWBROWSER)]',
107+
'[--chromiumpath CHROMIUM_PATH]'
106108
];
107109

108110
return message + options.join(' ') + os.EOL;

package-lock.json

Lines changed: 2 additions & 38 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/browsers/browser.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ function launchBrowser(opts) {
1717
let target = opts.target || 'default';
1818
const url = opts.url || '';
1919
let showBrowser = opts.showBrowser;
20+
const chromiumPath = opts.chromiumPath;
2021

2122
// Handle showbrowser argument sent from cordova-tools and other unknown scenarios
2223
// Only showbrowser = false will return method
@@ -29,7 +30,7 @@ function launchBrowser(opts) {
2930
open(url);
3031
return Promise.resolve();
3132
} else {
32-
return getBrowser(target, opts.dataDir, url).then(browser => {
33+
return getBrowser(target, opts.dataDir, url, chromiumPath).then(browser => {
3334
let args;
3435

3536
switch (process.platform) {
@@ -62,7 +63,7 @@ function launchBrowser(opts) {
6263
}
6364
}
6465

65-
function getBrowser(target, dataDir, url) {
66+
function getBrowser(target, dataDir, url, chromiumPath) {
6667
if (target == 'chrome') {
6768
dataDir = dataDir || 'cordova_simulate_temp_chrome_user_data_dir';
6869
} else if (target == 'edge') {
@@ -73,6 +74,7 @@ function getBrowser(target, dataDir, url) {
7374
const browsers = {
7475
win32: {
7576
chrome: `chrome --user-data-dir=%TEMP%\\${dataDir}`,
77+
chromium: chromiumPath,
7678
opera: 'opera',
7779
firefox: 'firefox',
7880
edge: `msedge ${url} --user-data-dir=%TEMP%\\${dataDir}`

src/simulate.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ var Simulator = require('./server/simulator');
66
var BrowserHelper = require('./browsers/browser');
77
const log = require('./server/utils/log');
88

9-
var launchBrowser = function (target, url, showBrowser) {
10-
return BrowserHelper.launchBrowser({ target: target, url: url, showBrowser: showBrowser });
9+
var launchBrowser = function (target, url, showBrowser, chromiumPath) {
10+
return BrowserHelper.launchBrowser({ target: target, url: url, showBrowser: showBrowser, chromiumPath: chromiumPath });
1111
};
1212

1313
var simulate = function (opts) {
@@ -17,18 +17,27 @@ var simulate = function (opts) {
1717
var target = opts.target || 'default';
1818
var simulator = new Simulator(opts);
1919
var showBrowser = opts.showbrowser;
20+
var chromiumPath = opts.chromiumpath;
2021

2122
if (!showBrowser) {
2223
var noBrowserMessage = 'The argument `showbrowser` is set to false. Please load simulated application in browser manually if needed.';
2324
log.warning(noBrowserMessage);
2425
}
2526

27+
if(process.platform === 'win32' && target.toLowerCase() === 'chromium' && !chromiumPath){
28+
var win32NoPathMessage = 'Chromium path is required on Windows (win32).';
29+
throw new Error(win32NoPathMessage);
30+
}else if(process.platform !== 'win32' && chromiumPath){
31+
var nonWin32PathMessage = 'Chromium path is not supported on this platform.';
32+
log.warning(nonWin32PathMessage);
33+
}
34+
2635
return simulator.startSimulation()
2736
.then(function () {
28-
return launchBrowser(target, simulator.appUrl(), showBrowser);
37+
return launchBrowser(target, simulator.appUrl(), showBrowser, chromiumPath);
2938
})
3039
.then(function () {
31-
return launchBrowser(target, simulator.simHostUrl(), showBrowser);
40+
return launchBrowser(target, simulator.simHostUrl(), showBrowser, chromiumPath);
3241
})
3342
.then(function () {
3443
return simulator;

0 commit comments

Comments
 (0)