Bug 1462673 - Part 0. Copy LightWeightThemeWebInstallListener code from content.js to a jsm. r=mconley
This commit is contained in:
@@ -1012,59 +1012,6 @@ addMessageListener("Bookmarks:GetPageDetails", (message) => {
|
||||
description: PlacesUIUtils.getDescriptionFromDocument(doc) });
|
||||
});
|
||||
|
||||
var LightWeightThemeWebInstallListener = {
|
||||
_previewWindow: null,
|
||||
|
||||
init() {
|
||||
addEventListener("InstallBrowserTheme", this, false, true);
|
||||
addEventListener("PreviewBrowserTheme", this, false, true);
|
||||
addEventListener("ResetBrowserThemePreview", this, false, true);
|
||||
},
|
||||
|
||||
handleEvent(event) {
|
||||
switch (event.type) {
|
||||
case "InstallBrowserTheme": {
|
||||
sendAsyncMessage("LightWeightThemeWebInstaller:Install", {
|
||||
baseURI: event.target.baseURI,
|
||||
principal: event.target.nodePrincipal,
|
||||
themeData: event.target.getAttribute("data-browsertheme"),
|
||||
});
|
||||
break;
|
||||
}
|
||||
case "PreviewBrowserTheme": {
|
||||
sendAsyncMessage("LightWeightThemeWebInstaller:Preview", {
|
||||
baseURI: event.target.baseURI,
|
||||
principal: event.target.nodePrincipal,
|
||||
themeData: event.target.getAttribute("data-browsertheme"),
|
||||
});
|
||||
this._previewWindow = event.target.ownerGlobal;
|
||||
this._previewWindow.addEventListener("pagehide", this, true);
|
||||
break;
|
||||
}
|
||||
case "pagehide": {
|
||||
sendAsyncMessage("LightWeightThemeWebInstaller:ResetPreview");
|
||||
this._resetPreviewWindow();
|
||||
break;
|
||||
}
|
||||
case "ResetBrowserThemePreview": {
|
||||
if (this._previewWindow) {
|
||||
sendAsyncMessage("LightWeightThemeWebInstaller:ResetPreview",
|
||||
{principal: event.target.nodePrincipal});
|
||||
this._resetPreviewWindow();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_resetPreviewWindow() {
|
||||
this._previewWindow.removeEventListener("pagehide", this, true);
|
||||
this._previewWindow = null;
|
||||
}
|
||||
};
|
||||
|
||||
LightWeightThemeWebInstallListener.init();
|
||||
|
||||
let OfflineApps = {
|
||||
_docId: 0,
|
||||
_docIdMap: new Map(),
|
||||
|
||||
56
browser/modules/LightWeightThemeWebInstallListener.jsm
Normal file
56
browser/modules/LightWeightThemeWebInstallListener.jsm
Normal file
@@ -0,0 +1,56 @@
|
||||
/* 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 LightWeightThemeWebInstallListener = {
|
||||
_previewWindow: null,
|
||||
|
||||
init() {
|
||||
addEventListener("InstallBrowserTheme", this, false, true);
|
||||
addEventListener("PreviewBrowserTheme", this, false, true);
|
||||
addEventListener("ResetBrowserThemePreview", this, false, true);
|
||||
},
|
||||
|
||||
handleEvent(event) {
|
||||
switch (event.type) {
|
||||
case "InstallBrowserTheme": {
|
||||
sendAsyncMessage("LightWeightThemeWebInstaller:Install", {
|
||||
baseURI: event.target.baseURI,
|
||||
principal: event.target.nodePrincipal,
|
||||
themeData: event.target.getAttribute("data-browsertheme"),
|
||||
});
|
||||
break;
|
||||
}
|
||||
case "PreviewBrowserTheme": {
|
||||
sendAsyncMessage("LightWeightThemeWebInstaller:Preview", {
|
||||
baseURI: event.target.baseURI,
|
||||
principal: event.target.nodePrincipal,
|
||||
themeData: event.target.getAttribute("data-browsertheme"),
|
||||
});
|
||||
this._previewWindow = event.target.ownerGlobal;
|
||||
this._previewWindow.addEventListener("pagehide", this, true);
|
||||
break;
|
||||
}
|
||||
case "pagehide": {
|
||||
sendAsyncMessage("LightWeightThemeWebInstaller:ResetPreview");
|
||||
this._resetPreviewWindow();
|
||||
break;
|
||||
}
|
||||
case "ResetBrowserThemePreview": {
|
||||
if (this._previewWindow) {
|
||||
sendAsyncMessage("LightWeightThemeWebInstaller:ResetPreview",
|
||||
{principal: event.target.nodePrincipal});
|
||||
this._resetPreviewWindow();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_resetPreviewWindow() {
|
||||
this._previewWindow.removeEventListener("pagehide", this, true);
|
||||
this._previewWindow = null;
|
||||
}
|
||||
};
|
||||
|
||||
LightWeightThemeWebInstallListener.init();
|
||||
@@ -70,6 +70,12 @@ with Files("ExtensionsUI.jsm"):
|
||||
with Files("LaterRun.jsm"):
|
||||
BUG_COMPONENT = ("Firefox", "Tours")
|
||||
|
||||
with Files("LightWeightThemeWebInstallListener.jsm"):
|
||||
BUG_COMPONENT = ("Firefox", "Theme")
|
||||
|
||||
with Files("OpenInTabsUtils.jsm"):
|
||||
BUG_COMPONENT = ("Firefox", "Tabbed Browser")
|
||||
|
||||
with Files("PageInfoListener.jsm"):
|
||||
BUG_COMPONENT = ("Firefox", "Page Info Window")
|
||||
|
||||
@@ -94,9 +100,6 @@ with Files("SiteDataManager.jsm"):
|
||||
with Files("SitePermissions.jsm"):
|
||||
BUG_COMPONENT = ("Firefox", "Site Identity and Permission Panels")
|
||||
|
||||
with Files("OpenInTabsUtils.jsm"):
|
||||
BUG_COMPONENT = ("Firefox", "Tabbed Browser")
|
||||
|
||||
with Files("ThemeVariableMap.jsm"):
|
||||
BUG_COMPONENT = ("Toolkit", "WebExtensions: Themes")
|
||||
|
||||
@@ -146,6 +149,7 @@ EXTRA_JS_MODULES += [
|
||||
'FormSubmitObserver.jsm',
|
||||
'FormValidationHandler.jsm',
|
||||
'LaterRun.jsm',
|
||||
'LightWeightThemeWebInstallListener.jsm',
|
||||
'OpenInTabsUtils.jsm',
|
||||
'PageActions.jsm',
|
||||
'PageInfoListener.jsm',
|
||||
|
||||
Reference in New Issue
Block a user