Telegram Web, preconfigured for usage in I2P.
http://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.3 KiB
83 lines
2.3 KiB
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', |
|
'--start-maximized' |
|
].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']; |
|
|
|
|
|
// PUBLISH DI MODULE |
|
module.exports = { |
|
'launcher:Chrome': ['type', ChromeBrowser], |
|
'launcher:ChromeCanary': ['type', ChromeCanaryBrowser] |
|
};
|
|
|