diff options
Diffstat (limited to 'browser/extensions/pocket/content/pocket-content-process.js')
-rw-r--r-- | browser/extensions/pocket/content/pocket-content-process.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/browser/extensions/pocket/content/pocket-content-process.js b/browser/extensions/pocket/content/pocket-content-process.js new file mode 100644 index 000000000..9b158a0ed --- /dev/null +++ b/browser/extensions/pocket/content/pocket-content-process.js @@ -0,0 +1,54 @@ +/* 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/. */ +"use strict"; + +// This file is loaded as a process script, it will be loaded in the parent +// process as well as all content processes. + +const { utils: Cu } = Components; +Cu.import("resource://gre/modules/XPCOMUtils.jsm"); +Cu.import("resource://gre/modules/Services.jsm"); +Cu.import("chrome://pocket/content/AboutPocket.jsm"); + +function AboutPocketChildListener() { +} +AboutPocketChildListener.prototype = { + onStartup: function onStartup() { + + // Only do this in content processes since, as the broadcaster of this + // message, the parent process doesn't also receive it. We handlers + // the shutting down separately. + if (Services.appinfo.processType == + Services.appinfo.PROCESS_TYPE_CONTENT) { + + Services.cpmm.addMessageListener("PocketShuttingDown", this, true); + } + + AboutPocket.aboutSaved.register(); + AboutPocket.aboutSignup.register(); + }, + + onShutdown: function onShutdown() { + AboutPocket.aboutSignup.unregister(); + AboutPocket.aboutSaved.unregister(); + + Services.cpmm.removeMessageListener("PocketShuttingDown", this); + Cu.unload("chrome://pocket/content/AboutPocket.jsm"); + }, + + receiveMessage: function receiveMessage(message) { + switch (message.name) { + case "PocketShuttingDown": + this.onShutdown(); + break; + default: + break; + } + + return; + } +}; + +const listener = new AboutPocketChildListener(); +listener.onStartup(); |