fune/docshell/test/browser/file_bug1328501_framescript.js
Victor Porof bcdc3a9567 Bug 1561435 - Format docshell/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D35900

--HG--
extra : source : b08f475f1140b9e650b316ee2813c13ec9947678
2019-07-05 09:59:46 +02:00

40 lines
1 KiB
JavaScript

// Forward iframe loaded event.
/* eslint-env mozilla/frame-script */
addEventListener(
"frames-loaded",
e => sendAsyncMessage("test:frames-loaded"),
true,
true
);
let requestObserver = {
observe(subject, topic, data) {
if (topic == "http-on-opening-request") {
// Get DOMWindow on all child docshells to force about:blank
// content viewers being created.
getChildDocShells().map(ds => {
ds
.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsILoadContext).associatedWindow;
});
}
},
QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver]),
};
Services.obs.addObserver(requestObserver, "http-on-opening-request");
addEventListener("unload", e => {
if (e.target == this) {
Services.obs.removeObserver(requestObserver, "http-on-opening-request");
}
});
function getChildDocShells() {
let docShellsEnum = docShell.getDocShellEnumerator(
Ci.nsIDocShellTreeItem.typeAll,
Ci.nsIDocShell.ENUMERATE_FORWARDS
);
return Array.from(docShellsEnum);
}