fune/docshell/test/browser/file_bug422543_script.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

96 lines
2.1 KiB
JavaScript

/* eslint-env mozilla/frame-script */
function SHistoryListener() {}
SHistoryListener.prototype = {
retval: true,
last: "initial",
OnHistoryNewEntry(aNewURI) {
this.last = "newentry";
},
OnHistoryGotoIndex() {
this.last = "gotoindex";
},
OnHistoryPurge() {
this.last = "purge";
},
OnHistoryReload() {
this.last = "reload";
return this.retval;
},
OnHistoryReplaceEntry() {},
QueryInterface: ChromeUtils.generateQI([
Ci.nsISHistoryListener,
Ci.nsISupportsWeakReference,
]),
};
let testAPI = {
shistory: null,
listeners: [new SHistoryListener(), new SHistoryListener()],
init() {
this.shistory = docShell.QueryInterface(Ci.nsIWebNavigation).sessionHistory;
for (let listener of this.listeners) {
this.shistory.legacySHistory.addSHistoryListener(listener);
}
},
cleanup() {
for (let listener of this.listeners) {
this.shistory.legacySHistory.removeSHistoryListener(listener);
}
this.shistory = null;
sendAsyncMessage("bug422543:cleanup:return", {});
},
getListenerStatus() {
sendAsyncMessage(
"bug422543:getListenerStatus:return",
this.listeners.map(l => l.last)
);
},
resetListeners() {
for (let listener of this.listeners) {
listener.last = "initial";
}
sendAsyncMessage("bug422543:resetListeners:return", {});
},
notifyReload() {
let history = this.shistory.legacySHistory;
let rval = history.notifyOnHistoryReload();
sendAsyncMessage("bug422543:notifyReload:return", { rval });
},
setRetval({ num, val }) {
this.listeners[num].retval = val;
sendAsyncMessage("bug422543:setRetval:return", {});
},
};
addMessageListener("bug422543:cleanup", () => {
testAPI.cleanup();
});
addMessageListener("bug422543:getListenerStatus", () => {
testAPI.getListenerStatus();
});
addMessageListener("bug422543:notifyReload", () => {
testAPI.notifyReload();
});
addMessageListener("bug422543:resetListeners", () => {
testAPI.resetListeners();
});
addMessageListener("bug422543:setRetval", msg => {
testAPI.setRetval(msg.data);
});
testAPI.init();