Source code

Revision control

Copy as Markdown

Other Tools

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import { MegalistViewModel } from "resource://gre/modules/megalist/MegalistViewModel.sys.mjs";
const lazy = {};
ChromeUtils.defineLazyGetter(lazy, "logConsole", function () {
return console.createInstance({
prefix: "MegalistParent",
maxLogLevel: Services.prefs.getBoolPref(
"browser.contextual-password-manager.log",
false
)
? "Debug"
: "Warn",
});
});
/**
* MegalistParent integrates MegalistViewModel into Parent/Child model.
*/
export class MegalistParent extends JSWindowActorParent {
#viewModel;
actorCreated() {
this.#viewModel = new MegalistViewModel((...args) =>
this.sendAsyncMessage(...args)
);
}
didDestroy() {
this.#viewModel.willDestroy();
this.#viewModel = null;
}
receiveMessage(message) {
let currentWindowGlobal = this.browsingContext.currentWindowGlobal;
if (
!currentWindowGlobal ||
!currentWindowGlobal.isInProcess ||
currentWindowGlobal.documentURI?.spec !==
"chrome://global/content/megalist/megalist.html"
) {
lazy.logConsole.debug(
"MegalistParent: received message from the wrong content process type."
);
return null;
}
return this.#viewModel?.handleViewMessage(message);
}
authExpirationTime() {
return this.#viewModel.authExpirationTime;
}
}