Просмотр исходного кода

added --browser-extensions option

Gildas 7 лет назад
Родитель
Сommit
baade8edd6

+ 5 - 1
cli/back-ends/webdriver-chromium.js

@@ -21,9 +21,10 @@
  *   Source.
  */
 
-/* global require, exports, process, setTimeout, clearTimeout, Buffer */
+/* global __dirname, require, exports, process, setTimeout, clearTimeout, Buffer */
 
 const fs = require("fs");
+const path = require("path");
 
 const chrome = require("selenium-webdriver/chrome");
 const { Builder } = require("selenium-webdriver");
@@ -86,6 +87,9 @@ exports.getPageData = async options => {
 			if (options.browserWaitUntil === undefined || options.browserWaitUntil == "networkidle0" || options.browserWaitUntil == "networkidle2") {
 				extensions.push(encode(require.resolve("./extensions/signed/network_idle-0.0.2-an+fx.xpi")));
 			}
+			if (options.browserExtensions && options.browserExtensions.length) {
+				options.browserExtensions.forEach(extensionPath => extensions.push(encode(path.resolve(__dirname, "..", extensionPath))));
+			}
 			chromeOptions.addExtensions(extensions);
 		}
 		if (options.userAgent) {

+ 5 - 1
cli/back-ends/webdriver-gecko.js

@@ -21,9 +21,10 @@
  *   Source.
  */
 
-/* global require, exports, process, setTimeout, clearTimeout */
+/* global __dirname, require, exports, process, setTimeout, clearTimeout */
 
 const fs = require("fs");
+const path = require("path");
 
 const firefox = require("selenium-webdriver/firefox");
 const { Builder, By, Key } = require("selenium-webdriver");
@@ -80,6 +81,9 @@ exports.getPageData = async options => {
 		if (options.browserWaitUntil === undefined || options.browserWaitUntil == "networkidle0" || options.browserWaitUntil == "networkidle2") {
 			extensions.push(require.resolve("./extensions/signed/network_idle-0.0.2-an+fx.xpi"));
 		}
+		if (options.browserExtensions && options.browserExtensions.length) {
+			options.browserExtensions.forEach(extensionPath => extensions.push(path.resolve(__dirname, "..", extensionPath)));
+		}
 		if (extensions.length) {
 			firefoxOptions.addExtensions(extensions);
 		}

+ 3 - 0
cli/single-file

@@ -40,6 +40,7 @@ const args = require("yargs")
 		"browser-load-max-time": 60000,
 		"browser-wait-until": "networkidle0",
 		"browser-debug": false,
+		"browser-extensions": [],
 		"compress-CSS": true,
 		"compress-HTML": true,
 		"filename-template": "",
@@ -78,6 +79,8 @@ const args = require("yargs")
 	.choices("browser-wait-until", ["networkidle0", "networkidle2", "load", "domcontentloaded"])
 	.options("browser-debug", { description: "Enable debug mode (puppeteer, webdriver-gecko, webdriver-chromium)" })
 	.boolean("browser-debug")
+	.options("browser-extensions", { description: "Extension paths separated by a space (webdriver-gecko, webdriver-chromium)" })
+	.array("browser-extensions")
 	.options("compress-CSS", { description: "Compress CSS stylesheets" })
 	.boolean("compress-CSS")
 	.options("compress-HTML", { description: "Compress HTML content" })

+ 5 - 1
maff2html/back-ends/webdriver-gecko.js

@@ -21,9 +21,10 @@
  *   Source.
  */
 
-/* global require, exports, process, setTimeout, clearTimeout */
+/* global __dirname, require, exports, process, setTimeout, clearTimeout */
 
 const fs = require("fs");
+const path = require("path");
 
 const firefox = require("selenium-webdriver/firefox");
 const { Builder, By, Key } = require("selenium-webdriver");
@@ -81,6 +82,9 @@ exports.getPageData = async options => {
 		if (options.browserWaitUntil === undefined || options.browserWaitUntil == "networkidle0" || options.browserWaitUntil == "networkidle2") {
 			profile.addExtension(require.resolve("./extensions/signed/network_idle-0.0.2-an+fx.xpi"));
 		}
+		if (options.browserExtensions && options.browserExtensions.length) {
+			options.browserExtensions.forEach(extensionPath => profile.addExtension(path.resolve(__dirname, "..", extensionPath)));
+		}
 		if (options.userAgent) {
 			profile.setPreference("general.useragent.override", options.userAgent);
 		}

+ 3 - 0
maff2html/single-file

@@ -39,6 +39,7 @@ const args = require("yargs")
 		"browser-load-max-time": 60000,
 		"browser-wait-until": "load",
 		"browser-debug": false,
+		"browser-extensions": [],
 		"compress-CSS": true,
 		"compress-HTML": true,
 		"filename-template": "",
@@ -74,6 +75,8 @@ const args = require("yargs")
 	.choices("browser-wait-until", ["networkidle0", "networkidle2", "load", "domcontentloaded"])
 	.options("browser-debug", { description: "Enable debug mode" })
 	.boolean("browser-debug")
+	.options("browser-extensions", { description: "Extension paths separated by a space" })
+	.array("browser-extensions")
 	.options("compress-CSS", { description: "Compress CSS stylesheets" })
 	.boolean("compress-CSS")
 	.options("compress-HTML", { description: "Compress HTML content" })