Bug 1472491: Part 5h - Add LightWeightThemeChild actor. r=felipe
MozReview-Commit-ID: CmUbpPZxNeS
rename from browser/modules/LightWeightThemeWebInstallListener.jsm
rename to browser/actors/LightWeightThemeInstallChild.jsm
--- a/browser/modules/LightWeightThemeWebInstallListener.jsm
+++ b/browser/actors/LightWeightThemeInstallChild.jsm
@@ -1,19 +1,19 @@
/* 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/. */
-var EXPORTED_SYMBOLS = ["LightWeightThemeWebInstallListener"];
+var EXPORTED_SYMBOLS = ["LightWeightThemeInstallChild"];
+
+ChromeUtils.import("resource://gre/modules/ActorChild.jsm");
-var LightWeightThemeWebInstallListener = {
- _previewWindow: null,
-
+class LightWeightThemeInstallChild extends ActorChild {
handleEvent(event) {
- let mm = getMessageManagerForContent(event.target.ownerGlobal);
+ let {mm} = this;
switch (event.type) {
case "InstallBrowserTheme": {
mm.sendAsyncMessage("LightWeightThemeWebInstaller:Install", {
baseURI: event.target.baseURI,
principal: event.target.nodePrincipal,
themeData: event.target.getAttribute("data-browsertheme"),
});
break;
@@ -37,19 +37,15 @@ var LightWeightThemeWebInstallListener =
if (this._previewWindow) {
mm.sendAsyncMessage("LightWeightThemeWebInstaller:ResetPreview",
{principal: event.target.nodePrincipal});
this._resetPreviewWindow();
}
break;
}
}
- },
+ }
_resetPreviewWindow() {
this._previewWindow.removeEventListener("pagehide", this, true);
this._previewWindow = null;
}
-};
-
-function getMessageManagerForContent(content) {
- return content.docShell.messageManager;
}
--- a/browser/actors/moz.build
+++ b/browser/actors/moz.build
@@ -1,21 +1,25 @@
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# 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/.
+with Files("LightWeightThemeInstallChild.jsm"):
+ BUG_COMPONENT = ("Firefox", "Theme")
+
with Files("PageInfoChild.jsm"):
BUG_COMPONENT = ("Firefox", "Page Info Window")
with Files("PageStyleChild.jsm"):
BUG_COMPONENT = ("Firefox", "Menus")
FINAL_TARGET_FILES.actors += [
'AboutReaderChild.jsm',
'BrowserTabChild.jsm',
'ClickHandlerChild.jsm',
'ContentSearchChild.jsm',
'ContextMenuChild.jsm',
+ 'LightWeightThemeInstallChild.jsm',
'PageInfoChild.jsm',
'PageStyleChild.jsm',
]
--- a/browser/base/content/content.js
+++ b/browser/base/content/content.js
@@ -39,19 +39,16 @@ XPCOMUtils.defineLazyGetter(this, "Login
XPCOMUtils.defineLazyProxy(this, "formSubmitObserver", () => {
return new FormSubmitObserver(content, this);
}, {
// stub QI
QueryInterface: ChromeUtils.generateQI([Ci.nsIFormSubmitObserver, Ci.nsISupportsWeakReference])
});
-XPCOMUtils.defineLazyProxy(this, "LightWeightThemeWebInstallListener",
- "resource:///modules/LightWeightThemeWebInstallListener.jsm");
-
Services.obs.addObserver(formSubmitObserver, "invalidformsubmit", true);
// NOTE: Much of this logic is duplicated in BrowserCLH.js for Android.
addMessageListener("RemoteLogins:fillForm", function(message) {
// intercept if ContextMenu.jsm had sent a plain object for remote targets
message.objects.inputElement = ContextMenuChild.getTarget(global, message, "inputElement");
LoginManagerContent.receiveMessage(message, content);
});
@@ -261,20 +258,16 @@ var PageMetadataMessenger = {
sendAsyncMessage("PageMetadata:MicroformatsResult", result);
break;
}
}
}
};
PageMetadataMessenger.init();
-addEventListener("InstallBrowserTheme", LightWeightThemeWebInstallListener, false, true);
-addEventListener("PreviewBrowserTheme", LightWeightThemeWebInstallListener, false, true);
-addEventListener("ResetBrowserThemePreview", LightWeightThemeWebInstallListener, false, true);
-
let OfflineApps = {
_docId: 0,
_docIdMap: new Map(),
_docManifestSet: new Set(),
_observerAdded: false,
registerWindow(aWindow) {
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -82,16 +82,27 @@ let ACTORS = {
"ContentSearchClient": {capture: true, wantUntrusted: true},
},
messages: [
"ContentSearch",
]
},
},
+ LightWeightThemeInstall: {
+ child: {
+ module: "resource:///actors/LightWeightThemeInstallChild.jsm",
+ events: {
+ "InstallBrowserTheme": {wantUntrusted: true},
+ "PreviewBrowserTheme": {wantUntrusted: true},
+ "ResetBrowserThemePreview": {wantUntrusted: true},
+ },
+ },
+ },
+
PageInfo: {
child: {
module: "resource:///actors/PageInfoChild.jsm",
messages: ["PageInfo:getData"],
},
},
PageStyle: {
--- a/browser/modules/moz.build
+++ b/browser/modules/moz.build
@@ -62,19 +62,16 @@ with Files("ExtensionsUI.jsm"):
BUG_COMPONENT = ("WebExtensions", "General")
with Files("LaterRun.jsm"):
BUG_COMPONENT = ("Firefox", "Tours")
with Files("LightweightThemeChildHelper.jsm"):
BUG_COMPONENT = ("WebExtensions", "Themes")
-with Files("LightWeightThemeWebInstallListener.jsm"):
- BUG_COMPONENT = ("Firefox", "Theme")
-
with Files("OpenInTabsUtils.jsm"):
BUG_COMPONENT = ("Firefox", "Tabbed Browser")
with Files("PermissionUI.jsm"):
BUG_COMPONENT = ("Firefox", "Site Identity and Permission Panels")
with Files("PluginContent.jsm"):
BUG_COMPONENT = ("Core", "Plug-ins")
@@ -141,17 +138,16 @@ EXTRA_JS_MODULES += [
'ContentWebRTC.jsm',
'ExtensionsUI.jsm',
'Feeds.jsm',
'FormSubmitObserver.jsm',
'FormValidationHandler.jsm',
'HomePage.jsm',
'LaterRun.jsm',
'LightweightThemeChildHelper.jsm',
- 'LightWeightThemeWebInstallListener.jsm',
'NetErrorContent.jsm',
'OpenInTabsUtils.jsm',
'PageActions.jsm',
'PermissionUI.jsm',
'PingCentre.jsm',
'PluginContent.jsm',
'ProcessHangMonitor.jsm',
'ReaderParent.jsm',