Files
tubestation/browser/devtools/debugger/test/code_frame-script.js
2015-05-22 17:58:46 +02:00

68 lines
1.9 KiB
JavaScript

"use strict";
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
const { loadSubScript } = Cc['@mozilla.org/moz/jssubscript-loader;1'].
getService(Ci.mozIJSSubScriptLoader);
const EventUtils = {};
loadSubScript("chrome://marionette/content/EventUtils.js", EventUtils);
dump("Frame script loaded.\n");
addMessageListener("test:call", function (message) {
dump("Calling function with name " + message.data.name + ".\n");
let data = message.data;
let result = XPCNativeWrapper.unwrap(content)[data.name].apply(undefined, data.args);
if (result && result.then) {
result.then(() => {
sendAsyncMessage("test:call");
});
} else {
sendAsyncMessage("test:call");
}
});
addMessageListener("test:click", function (message) {
dump("Sending mouse click.\n");
let target = message.objects.target;
EventUtils.synthesizeMouseAtCenter(target, {},
target.ownerDocument.defaultView);
});
addMessageListener("test:eval", function (message) {
dump("Evalling string " + message.data.string + ".\n");
let result = content.eval(message.data.string);
if (result.then) {
result.then(() => {
sendAsyncMessage("test:eval");
});
} else {
sendAsyncMessage("test:eval");
}
});
let workers = {}
addMessageListener("test:createWorker", function (message) {
dump("Creating worker with url '" + message.data.url + "'.\n");
let url = message.data.url;
let worker = new content.Worker(message.data.url);
worker.addEventListener("message", function listener() {
worker.removeEventListener("message", listener);
sendAsyncMessage("test:createWorker");
});
workers[url] = worker;
});
addMessageListener("test:terminateWorker", function (message) {
dump("Terminating worker with url '" + message.data.url + "'.\n");
let url = message.data.url;
workers[url].terminate();
delete workers[url];
});