fune/browser/base/content/test/urlbar/urlbarAddonIframe.js
Jared Wein ecab54a7c9 Bug 1325464 - Enable object-shorthand rule and run 'mach eslint --fix' with the rule enabled. r=MattN
MozReview-Commit-ID: 7E7LPorrEje

--HG--
extra : rebase_source : 0572a35415a766a3f31d266760ecd07f0dcc3f72
2016-12-29 18:34:54 -05:00

52 lines
1.5 KiB
JavaScript

// Listen for messages from the test.
addEventListener("TestEvent", event => {
let type = event.detail.type;
dump("urlbarAddonIframe.js got TestEvent, type=" + type +
" messageID=" + event.detail.messageID + "\n");
switch (type) {
case "function":
callUrlbarFunction(event.detail);
break;
case "event":
expectEvent(event.detail);
break;
}
});
// Calls a urlbar API function.
function callUrlbarFunction(detail) {
let args = detail.data;
let methodName = args.shift();
dump("urlbarAddonIframe.js calling urlbar." + methodName + "\n");
let rv = urlbar[methodName](...args);
ack(detail, rv);
}
// Waits for an event of a specified type to happen.
function expectEvent(detail) {
let type = detail.data;
dump("urlbarAddonIframe.js expecting event of type " + type + "\n");
// Ack that the message was received and an event listener was added.
ack(detail, null, 0);
addEventListener(type, function onEvent(event) {
dump("urlbarAddonIframe.js got event of type " + type + "\n");
if (event.type != type) {
return;
}
dump("urlbarAddonIframe.js got expected event\n");
removeEventListener(type, onEvent);
// Ack that the event was received.
ack(detail, event.detail, 1);
});
}
// Sends an ack to the test.
function ack(originalEventDetail, ackData = null, ackIndex = 0) {
dispatchEvent(new CustomEvent("TestEventAck", {
detail: {
messageID: originalEventDetail.messageID,
ackIndex,
data: ackData,
},
}));
}