fune/devtools/client/debugger/test/mochitest/code_frame-script.js
Carsten "Tomcat" Book 33e27d2555 Backed out 18 changesets (bug 1245153) for multiple test failures
Backed out changeset 18d54b8d4ae8 (bug 1245153)
Backed out changeset 98b6d0c053c0 (bug 1245153)
Backed out changeset c29a348930a4 (bug 1245153)
Backed out changeset f79252e92acc (bug 1245153)
Backed out changeset 9f3f1c358e47 (bug 1245153)
Backed out changeset 3b9e9a027fa7 (bug 1245153)
Backed out changeset 6da8099573f3 (bug 1245153)
Backed out changeset 63a56310a1b5 (bug 1245153)
Backed out changeset 5fe42d498a2a (bug 1245153)
Backed out changeset b3be2d2f3ac1 (bug 1245153)
Backed out changeset ad5bf32d8fef (bug 1245153)
Backed out changeset 68a6dda373d2 (bug 1245153)
Backed out changeset 6ebd9fde50c0 (bug 1245153)
Backed out changeset e41a5b41859a (bug 1245153)
Backed out changeset 048d70070751 (bug 1245153)
Backed out changeset eff85dc0eaa9 (bug 1245153)
Backed out changeset dc6460e0f336 (bug 1245153)
Backed out changeset 36526a2e8b00 (bug 1245153)

--HG--
rename : testing/marionette/event.js => testing/marionette/EventUtils.js
rename : testing/marionette/action.js => testing/marionette/actions.js
rename : testing/marionette/atom.js => testing/marionette/atoms/atoms.js
rename : testing/marionette/element.js => testing/marionette/elements.js
rename : testing/marionette/frame.js => testing/marionette/frame-manager.js
rename : testing/marionette/interaction.js => testing/marionette/interactions.js
2016-02-11 17:05:41 +01:00

97 lines
2.6 KiB
JavaScript

"use strict";
var { 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");
var workers = {}
this.call = function (name, args) {
dump("Calling function with name " + name + ".\n");
dump("args " + JSON.stringify(args) + "\n");
return XPCNativeWrapper.unwrap(content)[name].apply(undefined, args);
};
this._eval = function (string) {
dump("Evalling string.\n");
return content.eval(string);
};
this.generateMouseClick = function (path) {
dump("Generating mouse click.\n");
let target = eval(path);
EventUtils.synthesizeMouseAtCenter(target, {},
target.ownerDocument.defaultView);
};
this.createWorker = function (url) {
dump("Creating worker with url '" + url + "'.\n");
return new Promise(function (resolve, reject) {
let worker = new content.Worker(url);
worker.addEventListener("message", function listener() {
worker.removeEventListener("message", listener);
workers[url] = worker;
resolve();
});
});
};
this.terminateWorker = function (url) {
dump("Terminating worker with url '" + url + "'.\n");
workers[url].terminate();
delete workers[url];
};
this.postMessageToWorker = function (url, message) {
dump("Posting message to worker with url '" + url + "'.\n");
return new Promise(function (resolve) {
let worker = workers[url];
worker.postMessage(message);
worker.addEventListener("message", function listener() {
worker.removeEventListener("message", listener);
resolve();
});
});
};
addMessageListener("jsonrpc", function ({ data: { method, params, id } }) {
method = this[method];
Promise.resolve().then(function () {
return method.apply(undefined, params);
}).then(function (result) {
sendAsyncMessage("jsonrpc", {
result: result,
error: null,
id: id
});
}, function (error) {
sendAsyncMessage("jsonrpc", {
result: null,
error: error.message.toString(),
id: id
});
});
});
addMessageListener("test:postMessageToWorker", function (message) {
dump("Posting message '" + message.data.message + "' to worker with url '" +
message.data.url + "'.\n");
let worker = workers[message.data.url];
worker.postMessage(message.data.message);
worker.addEventListener("message", function listener() {
worker.removeEventListener("message", listener);
sendAsyncMessage("test:postMessageToWorker");
});
});