Bug 1378784 - Listen for TextZoomChange in addition to the FullZoomChange events to update the zoom UI when the zoom changes. r?dao
We were already listening for FullZoomChange. TextZoomChange is very similar, but is only triggered when the user has chosen 'Zoom Text Only' from the View > Zoom menu.
MozReview-Commit-ID: H8orEwS1ZhE
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -33,17 +33,17 @@ XPCOMUtils.defineLazyGetter(this, "exten
LoginManagerParent:false, NewTabUtils:false, PageThumbs:false,
PluralForm:false, Preferences:false, PrivateBrowsingUtils:false,
ProcessHangMonitor:false, PromiseUtils:false, ReaderMode:false,
ReaderParent:false, RecentWindow:false, SessionStore:false,
ShortcutUtils:false, SimpleServiceDiscovery:false, SitePermissions:false,
Social:false, TabCrashHandler:false, Task:false, TelemetryStopwatch:false,
Translation:false, UITour:false, UpdateUtils:false, Weave:false,
WebNavigationFrames: false, fxAccounts:false, gDevTools:false,
- gDevToolsBrowser:false, webrtcUI:false, FullZoomUI:false,
+ gDevToolsBrowser:false, webrtcUI:false, ZoomUI:false,
Marionette:false,
*/
/**
* IF YOU ADD OR REMOVE FROM THIS LIST, PLEASE UPDATE THE LIST ABOVE AS WELL.
* XXX Bug 1325373 is for making eslint detect these automatically.
*/
[
@@ -54,17 +54,16 @@ XPCOMUtils.defineLazyGetter(this, "exten
["CastingApps", "resource:///modules/CastingApps.jsm"],
["CharsetMenu", "resource://gre/modules/CharsetMenu.jsm"],
["Color", "resource://gre/modules/Color.jsm"],
["ContentSearch", "resource:///modules/ContentSearch.jsm"],
["Deprecated", "resource://gre/modules/Deprecated.jsm"],
["E10SUtils", "resource:///modules/E10SUtils.jsm"],
["ExtensionsUI", "resource:///modules/ExtensionsUI.jsm"],
["FormValidationHandler", "resource:///modules/FormValidationHandler.jsm"],
- ["FullZoomUI", "resource:///modules/FullZoomUI.jsm"],
["GMPInstallManager", "resource://gre/modules/GMPInstallManager.jsm"],
["LightweightThemeManager", "resource://gre/modules/LightweightThemeManager.jsm"],
["Log", "resource://gre/modules/Log.jsm"],
["LoginManagerParent", "resource://gre/modules/LoginManagerParent.jsm"],
["NewTabUtils", "resource://gre/modules/NewTabUtils.jsm"],
["PageThumbs", "resource://gre/modules/PageThumbs.jsm"],
["PluralForm", "resource://gre/modules/PluralForm.jsm"],
["Preferences", "resource://gre/modules/Preferences.jsm"],
@@ -86,16 +85,17 @@ XPCOMUtils.defineLazyGetter(this, "exten
["UITour", "resource:///modules/UITour.jsm"],
["UpdateUtils", "resource://gre/modules/UpdateUtils.jsm"],
["Weave", "resource://services-sync/main.js"],
["WebNavigationFrames", "resource://gre/modules/WebNavigationFrames.js"],
["fxAccounts", "resource://gre/modules/FxAccounts.jsm"],
["gDevTools", "resource://devtools/client/framework/gDevTools.jsm"],
["gDevToolsBrowser", "resource://devtools/client/framework/gDevTools.jsm"],
["webrtcUI", "resource:///modules/webrtcUI.jsm"],
+ ["ZoomUI", "resource:///modules/ZoomUI.jsm"],
].forEach(([name, resource]) => XPCOMUtils.defineLazyModuleGetter(this, name, resource));
XPCOMUtils.defineLazyModuleGetter(this, "SafeBrowsing",
"resource://gre/modules/SafeBrowsing.jsm");
if (AppConstants.MOZ_CRASHREPORTER) {
XPCOMUtils.defineLazyModuleGetter(this, "PluginCrashReporter",
"resource:///modules/ContentCrashHandlers.jsm");
@@ -1268,17 +1268,17 @@ var gBrowserInit = {
LanguageDetectionListener.init();
BrowserOnClick.init();
FeedHandler.init();
CompactTheme.init();
AboutPrivateBrowsingListener.init();
TrackingProtection.init();
RefreshBlocker.init();
CaptivePortalWatcher.init();
- FullZoomUI.init(window);
+ ZoomUI.init(window);
let mm = window.getGroupMessageManager("browsers");
mm.loadFrameScript("chrome://browser/content/tab-content.js", true);
mm.loadFrameScript("chrome://browser/content/content.js", true);
mm.loadFrameScript("chrome://browser/content/content-UITour.js", true);
mm.loadFrameScript("chrome://global/content/manifestMessages.js", true);
// initialize observers and listeners
rename from browser/modules/FullZoomUI.jsm
rename to browser/modules/ZoomUI.jsm
--- a/browser/modules/FullZoomUI.jsm
+++ b/browser/modules/ZoomUI.jsm
@@ -1,26 +1,28 @@
// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
/* 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.EXPORTED_SYMBOLS = [ "FullZoomUI" ];
+this.EXPORTED_SYMBOLS = [ "ZoomUI" ];
Components.utils.import("resource://gre/modules/Services.jsm");
-var FullZoomUI = {
+var ZoomUI = {
init(aWindow) {
aWindow.addEventListener("EndSwapDocShells", onEndSwapDocShells, true);
- aWindow.addEventListener("FullZoomChange", onFullZoomChange);
+ aWindow.addEventListener("FullZoomChange", onZoomChange);
+ aWindow.addEventListener("TextZoomChange", onZoomChange);
aWindow.addEventListener("unload", () => {
aWindow.removeEventListener("EndSwapDocShells", onEndSwapDocShells, true);
- aWindow.removeEventListener("FullZoomChange", onFullZoomChange);
+ aWindow.removeEventListener("FullZoomChange", onZoomChange);
+ aWindow.removeEventListener("TextZoomChange", onZoomChange);
}, {once: true});
},
}
function fullZoomLocationChangeObserver(aSubject, aTopic) {
// If the tab was the last one in its window and has been dragged to another
// window, the original browser's window will be unavailable here. Since that
// window is closing, we can just ignore this notification.
@@ -30,17 +32,17 @@ function fullZoomLocationChangeObserver(
updateZoomUI(aSubject, false);
}
Services.obs.addObserver(fullZoomLocationChangeObserver, "browser-fullZoom:location-change");
function onEndSwapDocShells(event) {
updateZoomUI(event.originalTarget);
}
-function onFullZoomChange(event) {
+function onZoomChange(event) {
let browser;
if (event.target.nodeType == event.target.DOCUMENT_NODE) {
// In non-e10s, the event is dispatched on the contentDocument
// so we need to jump through some hoops to get to the <xul:browser>.
let gBrowser = event.currentTarget.gBrowser;
let topDoc = event.target.defaultView.top.document;
browser = gBrowser.getBrowserForDocument(topDoc);
} else {
--- a/browser/modules/moz.build
+++ b/browser/modules/moz.build
@@ -68,19 +68,16 @@ with Files("DirectoryLinksProvider.jsm")
BUG_COMPONENT = ("Firefox", "New Tab Page")
with Files("E10SUtils.jsm"):
BUG_COMPONENT = ("Core", "Security: Process Sandboxing")
with Files("ExtensionsUI.jsm"):
BUG_COMPONENT = ("Toolkit", "WebExtensions: General")
-with Files("FullZoomUI.jsm"):
- BUG_COMPONENT = ("Firefox", "Toolbars and Customization")
-
with Files("LaterRun.jsm"):
BUG_COMPONENT = ("Firefox", "Tours")
with Files("PermissionUI.jsm"):
BUG_COMPONENT = ("Firefox", "Site Identity and Permission Panels")
with Files("PluginContent.jsm"):
BUG_COMPONENT = ("Core", "Plug-ins")
@@ -113,16 +110,19 @@ with Files("WindowsPreviewPerTab.jsm"):
BUG_COMPONENT = ("Core", "Widget: Win32")
with Files("offlineAppCache.jsm"):
BUG_COMPONENT = ("Firefox", "Preferences")
with Files("webrtcUI.jsm"):
BUG_COMPONENT = ("Firefox", "Device Permissions")
+with Files("ZoomUI.jsm"):
+ BUG_COMPONENT = ("Firefox", "Toolbars and Customization")
+
BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini']
XPCSHELL_TESTS_MANIFESTS += [
'test/unit/social/xpcshell.ini',
'test/unit/xpcshell.ini',
]
EXTRA_JS_MODULES += [
@@ -139,31 +139,31 @@ EXTRA_JS_MODULES += [
'ContentSearch.jsm',
'ContentWebRTC.jsm',
'DirectoryLinksProvider.jsm',
'E10SUtils.jsm',
'ExtensionsUI.jsm',
'Feeds.jsm',
'FormSubmitObserver.jsm',
'FormValidationHandler.jsm',
- 'FullZoomUI.jsm',
'LaterRun.jsm',
'offlineAppCache.jsm',
'PermissionUI.jsm',
'PluginContent.jsm',
'ProcessHangMonitor.jsm',
'ReaderParent.jsm',
'RecentWindow.jsm',
'RemotePrompt.jsm',
'Sanitizer.jsm',
'SitePermissions.jsm',
'Social.jsm',
'SocialService.jsm',
'TransientPrefs.jsm',
'webrtcUI.jsm',
+ 'ZoomUI.jsm',
]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
EXTRA_JS_MODULES += [
'Windows8WindowFrameColor.jsm',
'WindowsJumpLists.jsm',
'WindowsPreviewPerTab.jsm',
]