Skip to content
Permalink
27462e86ef
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
105 lines (84 sloc) 2.87 KB
var fs = require('fs');
var ChromeBrowser = function(baseBrowserDecorator, args) {
baseBrowserDecorator(this);
var flags = args.flags || [];
this._getOptions = function(url) {
// Chrome CLI options
// http://peter.sh/experiments/chromium-command-line-switches/
return [
'--user-data-dir=' + this._tempDir,
'--no-default-browser-check',
'--no-first-run',
'--disable-default-apps',
'--disable-popup-blocking',
'--disable-translate'
].concat(flags, [url]);
};
};
// Return location of chrome.exe file for a given Chrome directory (available: "Chrome", "Chrome SxS").
function getChromeExe(chromeDirName) {
if (process.platform !== 'win32') {
return null;
}
var windowsChromeDirectory, i, prefix;
var suffix = '\\Google\\'+ chromeDirName + '\\Application\\chrome.exe';
var prefixes = [process.env.LOCALAPPDATA, process.env.PROGRAMFILES, process.env['PROGRAMFILES(X86)']];
for (i = 0; i < prefixes.length; i++) {
prefix = prefixes[i];
if (fs.existsSync(prefix + suffix)) {
windowsChromeDirectory = prefix + suffix;
break;
}
}
return windowsChromeDirectory;
}
ChromeBrowser.prototype = {
name: 'Chrome',
DEFAULT_CMD: {
linux: 'google-chrome',
darwin: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
win32: getChromeExe('Chrome')
},
ENV_CMD: 'CHROME_BIN'
};
ChromeBrowser.$inject = ['baseBrowserDecorator', 'args'];
var ChromeCanaryBrowser = function(baseBrowserDecorator, args) {
ChromeBrowser.call(this, baseBrowserDecorator, args);
var parentOptions = this._getOptions;
this._getOptions = function(url) {
// disable crankshaft optimizations, as it causes lot of memory leaks (as of Chrome 23.0)
return parentOptions.call(this, url).concat(['--js-flags="--nocrankshaft --noopt"']);
};
};
ChromeCanaryBrowser.prototype = {
name: 'ChromeCanary',
DEFAULT_CMD: {
linux: 'google-chrome-canary',
darwin: '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary',
win32: getChromeExe('Chrome SxS')
},
ENV_CMD: 'CHROME_CANARY_BIN'
};
ChromeCanaryBrowser.$inject = ['baseBrowserDecorator', 'args'];
var DartiumBrowser = function(baseBrowserDecorator, args) {
ChromeBrowser.call(this, baseBrowserDecorator, args);
var checkedFlag = '--checked';
var dartFlags = process.env['DART_FLAGS'] || '';
var flags = dartFlags.split(' ')
if(flags.indexOf(checkedFlag) == -1) {
flags.push(checkedFlag);
process.env['DART_FLAGS'] = flags.join(' ');
}
};
DartiumBrowser.prototype = {
name: 'Dartium',
DEFAULT_CMD: {},
ENV_CMD: 'DARTIUM_BIN'
};
DartiumBrowser.$inject = ['baseBrowserDecorator', 'args'];
// PUBLISH DI MODULE
module.exports = {
'launcher:Chrome': ['type', ChromeBrowser],
'launcher:ChromeCanary': ['type', ChromeCanaryBrowser],
'launcher:Dartium': ['type', DartiumBrowser]
};