gecko-dev/dom/base/test/mozbrowser_api_utils.js
Alexandre Lissy 6798f02654 Bug 1286530 - Clean AvailableIn, CheckAnyPermissions and CheckAllPermissions from WebIDL r=bz,fabrice
MozReview-Commit-ID: 6EQfBM09xUE

--HG--
rename : dom/contacts/tests/test_contacts_cache.xul => dom/contacts/tests/test_contacts_a_cache.xul
rename : dom/contacts/tests/test_contacts_shutdown.xul => dom/contacts/tests/test_contacts_a_shutdown.xul
rename : dom/contacts/tests/test_contacts_upgrade.xul => dom/contacts/tests/test_contacts_a_upgrade.xul
rename : dom/mobilemessage/tests/mochitest/mochitest.ini => dom/mobilemessage/tests/mochitest/chrome.ini
extra : rebase_source : 5f708f2a927fafff66626367ef07080785ba9f55
2016-04-21 15:48:59 +02:00

73 lines
1.7 KiB
JavaScript

const FRAME_URL = "http://example.org/";
const METHODS = {
setVisible: {},
getVisible: {},
setActive: {},
getActive: {},
addNextPaintListener: {},
removeNextPaintListener: {},
sendMouseEvent: {},
sendTouchEvent: {},
goBack: {},
goForward: {},
reload: {},
stop: {},
download: {},
purgeHistory: {},
getScreenshot: {},
zoom: {},
getCanGoBack: {},
getCanGoForward: {},
getContentDimensions: {},
setInputMethodActive: {},
setNFCFocus: {},
findAll: {},
findNext: {},
clearMatch: {},
executeScript: {},
getWebManifest: {},
mute: {},
unmute: {},
getMuted: {},
setVolume: {},
getVolume: {},
};
const ATTRIBUTES = [
"allowedAudioChannels",
];
function once(target, eventName, useCapture = false) {
info("Waiting for event: '" + JSON.stringify(eventName) + "' on " + target + ".");
return new Promise(resolve => {
for (let [add, remove] of [
["addEventListener", "removeEventListener"],
["addMessageListener", "removeMessageListener"],
]) {
if ((add in target) && (remove in target)) {
eventName.forEach(evName => {
target[add](evName, function onEvent(...aArgs) {
info("Got event: '" + evName + "' on " + target + ".");
target[remove](evName, onEvent, useCapture);
resolve(aArgs);
}, useCapture);
});
break;
}
}
});
}
function* loadFrame(attributes = {}) {
let iframe = document.createElement("iframe");
iframe.setAttribute("src", FRAME_URL);
for (let key in attributes) {
iframe.setAttribute(key, attributes[key]);
}
let loaded = once(iframe, [ "load", "mozbrowserloadend" ]);
document.body.appendChild(iframe);
yield loaded;
return iframe;
}