Loading browser/actors/LightWeightThemeInstallChild.jsmdeleted 100644 → 0 +0 −51 Original line number Diff line number Diff line /* 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 = ["LightWeightThemeInstallChild"]; const {ActorChild} = ChromeUtils.import("resource://gre/modules/ActorChild.jsm"); class LightWeightThemeInstallChild extends ActorChild { handleEvent(event) { 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; } case "PreviewBrowserTheme": { mm.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": { mm.sendAsyncMessage("LightWeightThemeWebInstaller:ResetPreview"); this._resetPreviewWindow(); break; } case "ResetBrowserThemePreview": { if (this._previewWindow) { mm.sendAsyncMessage("LightWeightThemeWebInstaller:ResetPreview", {principal: event.target.nodePrincipal}); this._resetPreviewWindow(); } break; } } } _resetPreviewWindow() { this._previewWindow.removeEventListener("pagehide", this, true); this._previewWindow = null; } } browser/actors/moz.build +0 −4 Original line number Diff line number Diff line Loading @@ -10,9 +10,6 @@ with Files("**"): with Files("LightweightThemeChild.jsm"): BUG_COMPONENT = ("WebExtensions", "Themes") with Files("LightWeightThemeInstallChild.jsm"): BUG_COMPONENT = ("Firefox", "Theme") with Files("PageInfoChild.jsm"): BUG_COMPONENT = ("Firefox", "Page Info Window") Loading @@ -35,7 +32,6 @@ FINAL_TARGET_FILES.actors += [ 'DOMFullscreenChild.jsm', 'FormValidationChild.jsm', 'LightweightThemeChild.jsm', 'LightWeightThemeInstallChild.jsm', 'LinkHandlerChild.jsm', 'NetErrorChild.jsm', 'OfflineAppsChild.jsm', Loading browser/app/profile/firefox.js +0 −1 Original line number Diff line number Diff line Loading @@ -184,7 +184,6 @@ pref("extensions.webextensions.themes.icons.buttons", "back,forward,reload,stop, pref("lightweightThemes.update.enabled", true); pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes"); pref("lightweightThemes.recommendedThemes", "[{\"id\":\"recommended-1\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/a-web-browser-renaissance/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.header.jpg\",\"textcolor\":\"#000000\",\"accentcolor\":\"#834d29\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.icon.jpg\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.preview.jpg\",\"author\":\"Sean.Martell\",\"version\":\"0\"},{\"id\":\"recommended-2\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/space-fantasy/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.header.jpg\",\"textcolor\":\"#ffffff\",\"accentcolor\":\"#d9d9d9\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.icon.jpg\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.preview.jpg\",\"author\":\"fx5800p\",\"version\":\"1.0\"},{\"id\":\"recommended-4\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/pastel-gradient/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.header.png\",\"textcolor\":\"#000000\",\"accentcolor\":\"#000000\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.icon.png\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.preview.png\",\"author\":\"darrinhenein\",\"version\":\"1.0\"}]"); #if defined(MOZ_WIDEVINE_EME) pref("browser.eme.ui.enabled", true); Loading browser/base/content/browser-addons.js +0 −153 Original line number Diff line number Diff line Loading @@ -671,156 +671,3 @@ var gExtensionsNotifications = { } }, }; var LightWeightThemeWebInstaller = { init() { let mm = window.messageManager; mm.addMessageListener("LightWeightThemeWebInstaller:Install", this); mm.addMessageListener("LightWeightThemeWebInstaller:Preview", this); mm.addMessageListener("LightWeightThemeWebInstaller:ResetPreview", this); XPCOMUtils.defineLazyPreferenceGetter(this, "_apiTesting", "extensions.webapi.testing", false); }, receiveMessage(message) { // ignore requests from background tabs if (message.target != gBrowser.selectedBrowser) { return; } let data = message.data; switch (message.name) { case "LightWeightThemeWebInstaller:Install": { this._installRequest(data.themeData, data.principal, data.baseURI); break; } case "LightWeightThemeWebInstaller:Preview": { this._preview(data.themeData, data.principal, data.baseURI); break; } case "LightWeightThemeWebInstaller:ResetPreview": { this._resetPreview(data && data.principal); break; } } }, handleEvent(event) { switch (event.type) { case "TabSelect": { this._resetPreview(); break; } } }, get _manager() { let temp = {}; ChromeUtils.import("resource://gre/modules/LightweightThemeManager.jsm", temp); delete this._manager; return this._manager = temp.LightweightThemeManager; }, _installRequest(dataString, principal, baseURI) { // Don't allow installing off null principals. if (!principal.URI) { return; } let data = this._manager.parseTheme(dataString, baseURI); if (!data) { return; } // A notification bar with the option to undo is normally shown after a // theme is installed. But the discovery pane served from the url(s) // below has its own toggle switch for quick undos, so don't show the // notification in that case. let notify = this._shouldShowUndoPrompt(principal); if (this._isAllowed(principal)) { this._install(data, notify); return; } let strings = { header: gNavigatorBundle.getFormattedString("webextPerms.header", ["<>"]), addonName: data.name, text: gNavigatorBundle.getFormattedString("lwthemeInstallRequest.message2", [principal.URI.host]), acceptText: gNavigatorBundle.getString("lwthemeInstallRequest.allowButton2"), acceptKey: gNavigatorBundle.getString("lwthemeInstallRequest.allowButton.accesskey2"), cancelText: gNavigatorBundle.getString("webextPerms.cancel.label"), cancelKey: gNavigatorBundle.getString("webextPerms.cancel.accessKey"), msgs: [], }; ExtensionsUI.showPermissionsPrompt(gBrowser.selectedBrowser, strings, null, "installWeb").then(answer => { if (answer) { LightWeightThemeWebInstaller._install(data, notify); } }); }, _install(newLWTheme, notify) { let listener = { onEnabled(aAddon) { if (notify) { ExtensionsUI.showInstallNotification(gBrowser.selectedBrowser, newLWTheme); } }, }; AddonManager.addAddonListener(listener); this._manager.currentTheme = newLWTheme; AddonManager.removeAddonListener(listener); }, _preview(dataString, principal, baseURI) { if (!this._isAllowed(principal)) return; let data = this._manager.parseTheme(dataString, baseURI); if (!data) return; this._resetPreview(); gBrowser.tabContainer.addEventListener("TabSelect", this); this._manager.previewTheme(data); }, _resetPreview(principal) { if (!this._isAllowed(principal)) return; gBrowser.tabContainer.removeEventListener("TabSelect", this); this._manager.resetPreview(); }, _isAllowed(principal) { if (!principal || !principal.URI || !principal.URI.schemeIs("https")) { return false; } let pm = Services.perms; return pm.testPermission(principal.URI, "install") == pm.ALLOW_ACTION; }, _shouldShowUndoPrompt(principal) { if (!principal || !principal.URI) { return true; } let prePath = principal.URI.prePath; if (prePath == "https://discovery.addons.mozilla.org") { return false; } if (this._apiTesting && (prePath == "https://discovery.addons.allizom.org" || prePath == "https://discovery.addons-dev.allizom.org")) { return false; } return true; }, }; browser/base/content/browser-compacttheme.js +4 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,10 @@ * 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/. */ ChromeUtils.defineModuleGetter( this, "LightweightThemeManager", "resource://gre/modules/LightweightThemeManager.jsm"); /** * Enables compacttheme.css when needed. */ Loading Loading
browser/actors/LightWeightThemeInstallChild.jsmdeleted 100644 → 0 +0 −51 Original line number Diff line number Diff line /* 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 = ["LightWeightThemeInstallChild"]; const {ActorChild} = ChromeUtils.import("resource://gre/modules/ActorChild.jsm"); class LightWeightThemeInstallChild extends ActorChild { handleEvent(event) { 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; } case "PreviewBrowserTheme": { mm.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": { mm.sendAsyncMessage("LightWeightThemeWebInstaller:ResetPreview"); this._resetPreviewWindow(); break; } case "ResetBrowserThemePreview": { if (this._previewWindow) { mm.sendAsyncMessage("LightWeightThemeWebInstaller:ResetPreview", {principal: event.target.nodePrincipal}); this._resetPreviewWindow(); } break; } } } _resetPreviewWindow() { this._previewWindow.removeEventListener("pagehide", this, true); this._previewWindow = null; } }
browser/actors/moz.build +0 −4 Original line number Diff line number Diff line Loading @@ -10,9 +10,6 @@ with Files("**"): with Files("LightweightThemeChild.jsm"): BUG_COMPONENT = ("WebExtensions", "Themes") with Files("LightWeightThemeInstallChild.jsm"): BUG_COMPONENT = ("Firefox", "Theme") with Files("PageInfoChild.jsm"): BUG_COMPONENT = ("Firefox", "Page Info Window") Loading @@ -35,7 +32,6 @@ FINAL_TARGET_FILES.actors += [ 'DOMFullscreenChild.jsm', 'FormValidationChild.jsm', 'LightweightThemeChild.jsm', 'LightWeightThemeInstallChild.jsm', 'LinkHandlerChild.jsm', 'NetErrorChild.jsm', 'OfflineAppsChild.jsm', Loading
browser/app/profile/firefox.js +0 −1 Original line number Diff line number Diff line Loading @@ -184,7 +184,6 @@ pref("extensions.webextensions.themes.icons.buttons", "back,forward,reload,stop, pref("lightweightThemes.update.enabled", true); pref("lightweightThemes.getMoreURL", "https://addons.mozilla.org/%LOCALE%/firefox/themes"); pref("lightweightThemes.recommendedThemes", "[{\"id\":\"recommended-1\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/a-web-browser-renaissance/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.header.jpg\",\"textcolor\":\"#000000\",\"accentcolor\":\"#834d29\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.icon.jpg\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/1.preview.jpg\",\"author\":\"Sean.Martell\",\"version\":\"0\"},{\"id\":\"recommended-2\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/space-fantasy/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.header.jpg\",\"textcolor\":\"#ffffff\",\"accentcolor\":\"#d9d9d9\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.icon.jpg\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/2.preview.jpg\",\"author\":\"fx5800p\",\"version\":\"1.0\"},{\"id\":\"recommended-4\",\"homepageURL\":\"https://addons.mozilla.org/firefox/addon/pastel-gradient/\",\"headerURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.header.png\",\"textcolor\":\"#000000\",\"accentcolor\":\"#000000\",\"iconURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.icon.png\",\"previewURL\":\"resource:///chrome/browser/content/browser/defaultthemes/4.preview.png\",\"author\":\"darrinhenein\",\"version\":\"1.0\"}]"); #if defined(MOZ_WIDEVINE_EME) pref("browser.eme.ui.enabled", true); Loading
browser/base/content/browser-addons.js +0 −153 Original line number Diff line number Diff line Loading @@ -671,156 +671,3 @@ var gExtensionsNotifications = { } }, }; var LightWeightThemeWebInstaller = { init() { let mm = window.messageManager; mm.addMessageListener("LightWeightThemeWebInstaller:Install", this); mm.addMessageListener("LightWeightThemeWebInstaller:Preview", this); mm.addMessageListener("LightWeightThemeWebInstaller:ResetPreview", this); XPCOMUtils.defineLazyPreferenceGetter(this, "_apiTesting", "extensions.webapi.testing", false); }, receiveMessage(message) { // ignore requests from background tabs if (message.target != gBrowser.selectedBrowser) { return; } let data = message.data; switch (message.name) { case "LightWeightThemeWebInstaller:Install": { this._installRequest(data.themeData, data.principal, data.baseURI); break; } case "LightWeightThemeWebInstaller:Preview": { this._preview(data.themeData, data.principal, data.baseURI); break; } case "LightWeightThemeWebInstaller:ResetPreview": { this._resetPreview(data && data.principal); break; } } }, handleEvent(event) { switch (event.type) { case "TabSelect": { this._resetPreview(); break; } } }, get _manager() { let temp = {}; ChromeUtils.import("resource://gre/modules/LightweightThemeManager.jsm", temp); delete this._manager; return this._manager = temp.LightweightThemeManager; }, _installRequest(dataString, principal, baseURI) { // Don't allow installing off null principals. if (!principal.URI) { return; } let data = this._manager.parseTheme(dataString, baseURI); if (!data) { return; } // A notification bar with the option to undo is normally shown after a // theme is installed. But the discovery pane served from the url(s) // below has its own toggle switch for quick undos, so don't show the // notification in that case. let notify = this._shouldShowUndoPrompt(principal); if (this._isAllowed(principal)) { this._install(data, notify); return; } let strings = { header: gNavigatorBundle.getFormattedString("webextPerms.header", ["<>"]), addonName: data.name, text: gNavigatorBundle.getFormattedString("lwthemeInstallRequest.message2", [principal.URI.host]), acceptText: gNavigatorBundle.getString("lwthemeInstallRequest.allowButton2"), acceptKey: gNavigatorBundle.getString("lwthemeInstallRequest.allowButton.accesskey2"), cancelText: gNavigatorBundle.getString("webextPerms.cancel.label"), cancelKey: gNavigatorBundle.getString("webextPerms.cancel.accessKey"), msgs: [], }; ExtensionsUI.showPermissionsPrompt(gBrowser.selectedBrowser, strings, null, "installWeb").then(answer => { if (answer) { LightWeightThemeWebInstaller._install(data, notify); } }); }, _install(newLWTheme, notify) { let listener = { onEnabled(aAddon) { if (notify) { ExtensionsUI.showInstallNotification(gBrowser.selectedBrowser, newLWTheme); } }, }; AddonManager.addAddonListener(listener); this._manager.currentTheme = newLWTheme; AddonManager.removeAddonListener(listener); }, _preview(dataString, principal, baseURI) { if (!this._isAllowed(principal)) return; let data = this._manager.parseTheme(dataString, baseURI); if (!data) return; this._resetPreview(); gBrowser.tabContainer.addEventListener("TabSelect", this); this._manager.previewTheme(data); }, _resetPreview(principal) { if (!this._isAllowed(principal)) return; gBrowser.tabContainer.removeEventListener("TabSelect", this); this._manager.resetPreview(); }, _isAllowed(principal) { if (!principal || !principal.URI || !principal.URI.schemeIs("https")) { return false; } let pm = Services.perms; return pm.testPermission(principal.URI, "install") == pm.ALLOW_ACTION; }, _shouldShowUndoPrompt(principal) { if (!principal || !principal.URI) { return true; } let prePath = principal.URI.prePath; if (prePath == "https://discovery.addons.mozilla.org") { return false; } if (this._apiTesting && (prePath == "https://discovery.addons.allizom.org" || prePath == "https://discovery.addons-dev.allizom.org")) { return false; } return true; }, };
browser/base/content/browser-compacttheme.js +4 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,10 @@ * 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/. */ ChromeUtils.defineModuleGetter( this, "LightweightThemeManager", "resource://gre/modules/LightweightThemeManager.jsm"); /** * Enables compacttheme.css when needed. */ Loading