Pārlūkot izejas kodu

added "browser-args" switch

Former-commit-id: 516bd832bc4c88e47b3c96637919f12bca6c7608
Gildas 6 gadi atpakaļ
vecāks
revīzija
7eb617c299

+ 1 - 1
cli/back-ends/puppeteer.js

@@ -57,7 +57,7 @@ exports.getPageData = async options => {
 	if (options.browserHeadless !== undefined) {
 		browserOptions.headless = options.browserHeadless && !options.browserDebug;
 	}
-	browserOptions.args = [];
+	browserOptions.args = options.browserArgs ? JSON.parse(options.browserArgs) : [];
 	if (options.browserDisableWebSecurity === undefined || options.browserDisableWebSecurity) {
 		browserOptions.args.push("--disable-web-security");
 	}

+ 4 - 0
cli/back-ends/webdriver-chromium.js

@@ -69,6 +69,10 @@ exports.getPageData = async options => {
 		if (options.webDriverExecutablePath) {
 			process.env["webdriver.chrome.driver"] = options.webDriverExecutablePath;
 		}
+		if (options.browserArgs) {
+			const args = JSON.parse(options.browserArgs);
+			args.forEach(argument => chromeOptions.addArguments(argument));
+		}
 		if (options.browserDisableWebSecurity === undefined || options.browserDisableWebSecurity) {
 			chromeOptions.addArguments("--disable-web-security");
 		}

+ 4 - 0
cli/back-ends/webdriver-gecko.js

@@ -81,6 +81,10 @@ exports.getPageData = async options => {
 		if (options.browserExtensions && options.browserExtensions.length) {
 			options.browserExtensions.forEach(extensionPath => extensions.push(path.resolve(__dirname, "..", extensionPath)));
 		}
+		if (options.browserArgs) {
+			const args = JSON.parse(options.browserArgs);
+			args.forEach(argument => firefoxOptions.addArguments(argument));
+		}
 		if (extensions.length) {
 			firefoxOptions.addExtensions(extensions);
 		}

+ 3 - 0
cli/single-file

@@ -43,6 +43,7 @@ const args = require("yargs")
 		"browser-debug": false,
 		"browser-extensions": [],
 		"browser-scripts": [],
+		"browser-args": "",
 		"compress-CSS": true,
 		"compress-HTML": true,
 		"filename-template": "",
@@ -85,6 +86,8 @@ const args = require("yargs")
 	.array("browser-extensions")
 	.options("browser-scripts", { description: "List of script paths separated by a space and relative to the 'cli' folder. They will be executed in all the frames." })
 	.array("browser-scripts")
+	.options("browser-args", { description: "Arguments provided as a JSON array and passed to the browser (puppeteer, webdriver-gecko, webdriver-chromium)" })
+	.string("browser-args")
 	.options("compress-CSS", { description: "Compress CSS stylesheets" })
 	.boolean("compress-CSS")
 	.options("compress-HTML", { description: "Compress HTML content" })