Index: chromium_process.js |
diff --git a/chromium_process.js b/chromium_process.js |
index d6f9b82e93e85217e11b76da9cc07b13fc71552e..eeba015805f928524c5d90fb88cf8a0ffc523806 100644 |
--- a/chromium_process.js |
+++ b/chromium_process.js |
@@ -26,8 +26,8 @@ const https = require("https"); |
const os = require("os"); |
const path = require("path"); |
-const remoteInterface = require("chrome-remote-interface"); |
const extractZip = require("extract-zip"); |
+const remoteInterface = require("chrome-remote-interface"); |
const CHROMIUM_REVISION = 467222; |
@@ -248,13 +248,13 @@ function connectRemoteInterface(attempt) |
}); |
} |
-function runBootstrap(initialPage, bootstrapPath, bootstrapArgs) |
+function runScript(script, scriptName, scriptArgs) |
{ |
return connectRemoteInterface().then(async client => |
{ |
try |
{ |
- let {Runtime, Log, Console, Page} = client; |
+ let {Runtime, Log, Console} = client; |
await Log.enable(); |
Log.entryAdded(({entry}) => |
@@ -268,36 +268,34 @@ function runBootstrap(initialPage, bootstrapPath, bootstrapArgs) |
reportMessage(message.text, message.level); |
}); |
- await Page.navigate({url: initialPage}); |
- |
await Runtime.enable(); |
let compileResult = await Runtime.compileScript({ |
- expression: fs.readFileSync(bootstrapPath, "utf-8"), |
- sourceURL: bootstrapPath, |
+ expression: script, |
+ sourceURL: scriptName, |
persistScript: true |
}); |
if (compileResult.exceptionDetails) |
- throwException(compileResult.exceptionDetails, bootstrapPath); |
+ throwException(compileResult.exceptionDetails, scriptName); |
let runResult = await Runtime.runScript({ |
scriptId: compileResult.scriptId |
}); |
if (runResult.exceptionDetails) |
- throwException(runResult.exceptionDetails, bootstrapPath); |
+ throwException(runResult.exceptionDetails, scriptName); |
let callResult = await Runtime.callFunctionOn({ |
objectId: runResult.result.objectId, |
- functionDeclaration: "function(...args) {return this(...args);}", |
- arguments: bootstrapArgs.map(url => ({value: url})) |
+ functionDeclaration: "function(...args) { return this(...args); }", |
+ arguments: scriptArgs.map(arg => ({value: arg})) |
}); |
if (callResult.exceptionDetails) |
- throwException(callResult.exceptionDetails, bootstrapPath); |
+ throwException(callResult.exceptionDetails, scriptName); |
let promiseResult = await Runtime.awaitPromise({ |
promiseObjectId: callResult.result.objectId |
}); |
if (promiseResult.exceptionDetails) |
- throwException(promiseResult.exceptionDetails, bootstrapPath); |
+ throwException(promiseResult.exceptionDetails, scriptName); |
} |
finally |
{ |
@@ -306,14 +304,14 @@ function runBootstrap(initialPage, bootstrapPath, bootstrapArgs) |
}); |
} |
-module.exports = function(initialPage, bootstrapPath, bootstrapArgs) |
+module.exports = function(script, scriptName, ...scriptArgs) |
{ |
return ensureChromium().then(chromiumPath => |
{ |
let child = startChromium(chromiumPath); |
return Promise.race([ |
child.done, |
- runBootstrap(initialPage, bootstrapPath, bootstrapArgs) |
+ runScript(script, scriptName, scriptArgs) |
]).then(result => |
{ |
child.kill(); |