Bug 1475304 - Remove broadcasters that only have one observer;r=Gijs,r=johannh
MozReview-Commit-ID: KbYBy2RjK1i
--- a/browser/base/content/browser-feeds.js
+++ b/browser/base/content/browser-feeds.js
@@ -222,22 +222,22 @@ var FeedHandler = {
// We might default to a livebookmarks modal dialog,
// so reset that if the user happens to click it again
gBrowser.selectedBrowser.feeds = feeds;
}
},
get _feedMenuitem() {
delete this._feedMenuitem;
- return this._feedMenuitem = document.getElementById("singleFeedMenuitemState");
+ return this._feedMenuitem = document.getElementById("subscribeToPageMenuitem");
},
get _feedMenupopup() {
delete this._feedMenupopup;
- return this._feedMenupopup = document.getElementById("multipleFeedsMenuState");
+ return this._feedMenupopup = document.getElementById("subscribeToPageMenupopup");
},
/**
* Update the browser UI to show whether or not feeds are available when
* a page is loaded or the user switches tabs to a page that has feeds.
*/
updateFeeds() {
if (this._updateFeedTimeout)
--- a/browser/base/content/browser-menubar.inc
+++ b/browser/base/content/browser-menubar.inc
@@ -394,29 +394,30 @@
command="Browser:ShowAllBookmarks"
key="manBookmarkKb"/>
<menuseparator id="organizeBookmarksSeparator"/>
<menuitem id="menu_bookmarkThisPage"
command="Browser:AddBookmarkAs"
observes="bookmarkThisPageBroadcaster"
key="addBookmarkAsKb"/>
<menuitem id="subscribeToPageMenuitem"
+ disabled="true"
#ifndef XP_MACOSX
class="menuitem-iconic"
#endif
label="&subscribeToPageMenuitem.label;"
oncommand="return FeedHandler.subscribeToFeed(null, event);"
onclick="checkForMiddleClick(this, event);"
- observes="singleFeedMenuitemState"/>
+ />
<menu id="subscribeToPageMenupopup"
+ hidden="true"
#ifndef XP_MACOSX
class="menu-iconic"
#endif
- label="&subscribeToPageMenupopup.label;"
- observes="multipleFeedsMenuState">
+ label="&subscribeToPageMenupopup.label;">
<menupopup id="subscribeToPageSubmenuMenupopup"
onpopupshowing="return FeedHandler.buildFeedList(event.target);"
oncommand="return FeedHandler.subscribeToFeed(null, event);"
onclick="checkForMiddleClick(this, event);"/>
</menu>
<menuitem id="menu_bookmarkAllTabs"
label="&addCurPagesCmd.label;"
class="show-only-for-keyboard"
@@ -506,18 +507,22 @@
observes="sync-reauth-state"
oncommand="gSync.openSignInAgainPage('menubar');"/>
<menuseparator id="devToolsSeparator"/>
<menu id="webDeveloperMenu"
label="&webDeveloperMenu.label;"
accesskey="&webDeveloperMenu.accesskey;">
<menupopup id="menuWebDeveloperPopup">
<menuitem id="menu_pageSource"
- observes="devtoolsMenuBroadcaster_PageSource"
- accesskey="&pageSourceCmd.accesskey;"/>
+ label="&pageSourceCmd.label;"
+ key="key_viewSource"
+ command="View:PageSource"
+ accesskey="&pageSourceCmd.accesskey;">
+ <observes element="canViewSource" attribute="disabled"/>
+ </menuitem>
</menupopup>
</menu>
<menuitem id="menu_pageInfo"
accesskey="&pageInfoCmd.accesskey;"
label="&pageInfoCmd.label;"
#ifndef XP_WIN
key="key_viewInfo"
#endif
@@ -604,24 +609,24 @@
accesskey="&helpSafeMode.accesskey;"
label="&helpSafeMode.label;"
stopaccesskey="&helpSafeMode.stop.accesskey;"
stoplabel="&helpSafeMode.stop.label;"
oncommand="safeModeRestart();"/>
<menuitem id="menu_HelpPopup_reportPhishingtoolmenu"
label="&reportDeceptiveSiteMenu.title;"
accesskey="&reportDeceptiveSiteMenu.accesskey;"
- observes="reportPhishingBroadcaster"
+ disabled="true"
oncommand="openUILink(gSafeBrowsing.getReportURL('Phish'), event, {triggeringPrincipal: Services.scriptSecurityManager.createNullPrincipal({})});"
onclick="checkForMiddleClick(this, event);"
hidden="true"/>
<menuitem id="menu_HelpPopup_reportPhishingErrortoolmenu"
label="&safeb.palm.notdeceptive.label;"
accesskey="&safeb.palm.notdeceptive.accesskey;"
- observes="reportPhishingErrorBroadcaster"
+ disabled="true"
oncommand="ReportFalseDeceptiveSite();"
onclick="checkForMiddleClick(this, event);"
hidden="true"/>
<menuseparator id="aboutSeparator"/>
<menuitem id="aboutName"
accesskey="&aboutProduct2.accesskey;"
label="&aboutProduct2.label;"
oncommand="openAboutDialog();"/>
--- a/browser/base/content/browser-safebrowsing.js
+++ b/browser/base/content/browser-safebrowsing.js
@@ -13,40 +13,38 @@ var gSafeBrowsing = {
// This is because when the DocShell loads an error page, the
// currentURI stays at the original target, while the documentURI
// will point to the internal error page we loaded instead.
var docURI = gBrowser.selectedBrowser.documentURI;
var isPhishingPage =
docURI && docURI.spec.startsWith("about:blocked?e=deceptiveBlocked");
// Show/hide the appropriate menu item.
- document.getElementById("menu_HelpPopup_reportPhishingtoolmenu")
- .hidden = isPhishingPage;
- document.getElementById("menu_HelpPopup_reportPhishingErrortoolmenu")
- .hidden = !isPhishingPage;
+ const reportMenu = document.getElementById("menu_HelpPopup_reportPhishingtoolmenu");
+ reportMenu.hidden = isPhishingPage;
+ const reportErrorMenu = document.getElementById("menu_HelpPopup_reportPhishingErrortoolmenu");
+ reportErrorMenu.hidden = !isPhishingPage;
// Now look at the currentURI to learn which page we were trying
// to browse to.
const uri = gBrowser.currentURI;
const isReportablePage = uri && (uri.schemeIs("http") || uri.schemeIs("https"));
const disabledByPolicy = !Services.policies.isAllowed("feedbackCommands");
- const reportBroadcaster = document.getElementById("reportPhishingBroadcaster");
if (disabledByPolicy || isPhishingPage || !isReportablePage) {
- reportBroadcaster.setAttribute("disabled", "true");
+ reportMenu.setAttribute("disabled", "true");
} else {
- reportBroadcaster.removeAttribute("disabled");
+ reportMenu.removeAttribute("disabled");
}
- const reportErrorBroadcaster = document.getElementById("reportPhishingErrorBroadcaster");
if (disabledByPolicy || !isPhishingPage || !isReportablePage) {
- reportErrorBroadcaster.setAttribute("disabled", "true");
+ reportErrorMenu.setAttribute("disabled", "true");
} else {
- reportErrorBroadcaster.removeAttribute("disabled");
+ reportErrorMenu.removeAttribute("disabled");
}
},
/**
* Used to report a phishing page or a false positive
*
* @param name
* String One of "PhishMistake", "MalwareMistake", or "Phish"
--- a/browser/base/content/browser-sets.inc
+++ b/browser/base/content/browser-sets.inc
@@ -128,39 +128,19 @@
type="checkbox" group="sidebar"
sidebarurl="chrome://browser/content/places/historySidebar.xul"
oncommand="SidebarUI.toggle('viewHistorySidebar');"/>
<broadcaster id="bookmarkThisPageBroadcaster"
label="&bookmarkThisPageCmd.label;"
bookmarklabel="&bookmarkThisPageCmd.label;"
editlabel="&editThisBookmarkCmd.label;"/>
-
- <!-- popup blocking menu items -->
- <broadcaster id="blockedPopupAllowSite"
- accesskey="&allowPopups.accesskey;"
- oncommand="gPopupBlockerObserver.toggleAllowPopupsForSite(event);"/>
- <broadcaster id="blockedPopupEditSettings"
-#ifdef XP_WIN
- label="&editPopupSettings.label;"
-#else
- label="&editPopupSettingsUnix.label;"
-#endif
- accesskey="&editPopupSettings.accesskey;"
- oncommand="gPopupBlockerObserver.editPopupSettings();"/>
- <broadcaster id="blockedPopupDontShowMessage"
- accesskey="&dontShowMessage.accesskey;"
- type="checkbox"
- oncommand="gPopupBlockerObserver.dontShowMessage();"/>
- <broadcaster id="blockedPopupsSeparator"/>
<broadcaster id="isImage"/>
<broadcaster id="canViewSource"/>
<broadcaster id="isFrameImage"/>
- <broadcaster id="singleFeedMenuitemState" disabled="true"/>
- <broadcaster id="multipleFeedsMenuState" hidden="true"/>
<!-- Sync broadcasters -->
<!-- A broadcaster of a number of attributes suitable for "sync now" UI -
A 'syncstatus' attribute is set while actively syncing, and the label
attribute which changes from "sync now" to "syncing" etc. -->
<broadcaster id="sync-status" onmouseover="gSync.refreshSyncButtonsTooltip();"/>
<!-- broadcasters of the "hidden" attribute to reflect setup state for
menus -->
@@ -168,26 +148,16 @@
<broadcaster id="sync-unverified-state" hidden="true"/>
<broadcaster id="sync-syncnow-state" hidden="true"/>
<broadcaster id="sync-reauth-state" hidden="true"/>
<broadcaster id="viewTabsSidebar" autoCheck="false" sidebartitle="&syncedTabs.sidebar.label;"
type="checkbox" group="sidebar"
sidebarurl="chrome://browser/content/syncedtabs/sidebar.xhtml"
oncommand="SidebarUI.toggle('viewTabsSidebar');"/>
<broadcaster id="workOfflineMenuitemState"/>
-
- <broadcaster id="devtoolsMenuBroadcaster_PageSource"
- label="&pageSourceCmd.label;"
- key="key_viewSource"
- command="View:PageSource">
- <observes element="canViewSource" attribute="disabled"/>
- </broadcaster>
- <broadcaster id="reportPhishingBroadcaster" disabled="true"/>
- <broadcaster id="reportPhishingErrorBroadcaster" disabled="true"/>
- <broadcaster id="trackingProtectionBroadcaster" enabled="false"/>
</broadcasterset>
<keyset id="mainKeyset">
<key id="key_newNavigator"
key="&newNavigatorCmd.key;"
command="cmd_newNavigator"
modifiers="accel" reserved="true"/>
<key id="key_newNavigatorTab" key="&tabCmd.commandkey;" modifiers="accel"
--- a/browser/base/content/browser-trackingprotection.js
+++ b/browser/base/content/browser-trackingprotection.js
@@ -36,17 +36,17 @@ var TrackingProtection = {
this.content = $("#tracking-protection-content");
this.icon = $("#tracking-protection-icon");
this.appMenuContainer = $("#appMenu-tp-container");
this.appMenuSeparator = $("#appMenu-tp-separator");
this.iconBox = $("#tracking-protection-icon-box");
this.animatedIcon = $("#tracking-protection-icon-animatable-image");
this.animatedIcon.addEventListener("animationend", () => this.iconBox.removeAttribute("animate"));
- this.broadcaster = $("#trackingProtectionBroadcaster");
+ this.appMenuButton = $("#appMenu-tp-toggle");
this.enableTooltip =
gNavigatorBundle.getString("trackingProtection.toggle.enable.tooltip");
this.disableTooltip =
gNavigatorBundle.getString("trackingProtection.toggle.disable.tooltip");
this.enableTooltipPB =
gNavigatorBundle.getString("trackingProtection.toggle.enable.pbmode.tooltip");
this.disableTooltipPB =
@@ -126,24 +126,24 @@ var TrackingProtection = {
this.enabledGlobally =
Services.prefs.getBoolPref(this.PREF_ENABLED_GLOBALLY);
this.enabledInPrivateWindows =
Services.prefs.getBoolPref(this.PREF_ENABLED_IN_PRIVATE_WINDOWS);
this.content.setAttribute("enabled", this.enabled);
if (PrivateBrowsingUtils.isWindowPrivate(window)) {
- this.broadcaster.setAttribute("enabled", this.enabledInPrivateWindows);
- this.broadcaster.setAttribute("aria-pressed", this.enabledInPrivateWindows);
- this.broadcaster.setAttribute("tooltiptext", this.enabledInPrivateWindows ?
+ this.appMenuButton.setAttribute("enabled", this.enabledInPrivateWindows);
+ this.appMenuButton.setAttribute("aria-pressed", this.enabledInPrivateWindows);
+ this.appMenuButton.setAttribute("tooltiptext", this.enabledInPrivateWindows ?
this.disableTooltipPB : this.enableTooltipPB);
} else {
- this.broadcaster.setAttribute("enabled", this.enabledGlobally);
- this.broadcaster.setAttribute("aria-pressed", this.enabledGlobally);
- this.broadcaster.setAttribute("tooltiptext", this.enabledGlobally ?
+ this.appMenuButton.setAttribute("enabled", this.enabledGlobally);
+ this.appMenuButton.setAttribute("aria-pressed", this.enabledGlobally);
+ this.appMenuButton.setAttribute("tooltiptext", this.enabledGlobally ?
this.disableTooltip : this.enableTooltip);
}
},
enabledHistogramAdd(value) {
if (PrivateBrowsingUtils.isWindowPrivate(window)) {
return;
}
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -750,17 +750,17 @@ var gPopupBlockerObserver = {
// showable popup addresses to the menu.
if (foundUsablePopupURI)
blockedPopupsSeparator.removeAttribute("hidden");
}, null);
},
onPopupHiding(aEvent) {
let item = aEvent.target.lastChild;
- while (item && item.getAttribute("observes") != "blockedPopupsSeparator") {
+ while (item && item.id != "blockedPopupsSeparator") {
let next = item.previousSibling;
item.remove();
item = next;
}
},
showBlockedPopup(aEvent) {
var target = aEvent.target;
--- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul
@@ -399,20 +399,32 @@
class="viewCustomizeToolbar"
label="&viewCustomizeToolbar.label;"
accesskey="&viewCustomizeToolbar.accesskey;"/>
</menupopup>
<menupopup id="blockedPopupOptions"
onpopupshowing="gPopupBlockerObserver.fillPopupList(event);"
onpopuphiding="gPopupBlockerObserver.onPopupHiding(event);">
- <menuitem observes="blockedPopupAllowSite"/>
- <menuitem observes="blockedPopupEditSettings"/>
- <menuitem observes="blockedPopupDontShowMessage"/>
- <menuseparator observes="blockedPopupsSeparator"/>
+ <menuitem id="blockedPopupAllowSite"
+ accesskey="&allowPopups.accesskey;"
+ oncommand="gPopupBlockerObserver.toggleAllowPopupsForSite(event);"/>
+ <menuitem
+#ifdef XP_WIN
+ label="&editPopupSettings.label;"
+#else
+ label="&editPopupSettingsUnix.label;"
+#endif
+ accesskey="&editPopupSettings.accesskey;"
+ oncommand="gPopupBlockerObserver.editPopupSettings();"/>
+ <menuitem id="blockedPopupDontShowMessage"
+ accesskey="&dontShowMessage.accesskey;"
+ type="checkbox"
+ oncommand="gPopupBlockerObserver.dontShowMessage();"/>
+ <menuseparator id="blockedPopupsSeparator"/>
</menupopup>
<menupopup id="autohide-context"
onpopupshowing="FullScreen.getAutohide(this.firstChild);">
<menuitem type="checkbox" label="&fullScreenAutohide.label;"
accesskey="&fullScreenAutohide.accesskey;"
oncommand="FullScreen.setAutohide();"/>
<menuseparator/>
--- a/browser/base/content/test/popups/browser_popup_blocker.js
+++ b/browser/base/content/test/popups/browser_popup_blocker.js
@@ -51,17 +51,17 @@ add_task(async function test_opening_blo
// Pressing "allow" should open all blocked popups.
let popupTabs = [];
function onTabOpen(event) {
popupTabs.push(event.target);
}
gBrowser.tabContainer.addEventListener("TabOpen", onTabOpen);
// Press the button.
- let allow = menu.querySelector("[observes='blockedPopupAllowSite']");
+ let allow = document.getElementById("blockedPopupAllowSite");
allow.doCommand();
await BrowserTestUtils.waitForCondition(() =>
popupTabs.length == 2 &&
popupTabs.every(aTab => aTab.linkedBrowser.currentURI.spec != "about:blank"));
gBrowser.tabContainer.removeEventListener("TabOpen", onTabOpen);
ok(popupTabs[0].linkedBrowser.currentURI.spec.endsWith("popup_blocker_a.html"), "Popup a");
--- a/browser/components/customizableui/content/panelUI.inc.xul
+++ b/browser/components/customizableui/content/panelUI.inc.xul
@@ -214,17 +214,17 @@
tooltiptext="&trackingProtection.tooltip;"
class="subviewbutton subviewbutton-iconic"
oncommand="TrackingProtection.openPreferences('appMenu-trackingprotection');"
label="&trackingProtection.title;"/>
<toolbarseparator orient="vertical"/>
<toolbarbutton id="appMenu-tp-toggle"
closemenu="none"
class="subviewkeynav"
- observes="trackingProtectionBroadcaster"
+ enabled="false"
oncommand="TrackingProtection.onGlobalToggleCommand();" />
</toolbaritem>
<toolbarseparator id="appMenu-tp-separator" hidden="true" />
<toolbarbutton id="appMenu-new-window-button"
class="subviewbutton subviewbutton-iconic"
label="&newNavigatorCmd.label;"
key="key_newNavigator"
command="cmd_newNavigator"/>
--- a/security/manager/pki/resources/content/clientauthask.xul
+++ b/security/manager/pki/resources/content/clientauthask.xul
@@ -28,21 +28,20 @@
<groupbox>
<description style="font-weight: bold;">&clientAuthAsk.message1;</description>
<description id="hostname"/>
<description id="organization"/>
<description id="issuer"/>
</groupbox>
<groupbox>
<description style="font-weight: bold;">&clientAuthAsk.message2;</description>
- <broadcaster id="certSelected" oncommand="onCertSelected();"/>
<!-- The items in this menulist must never be sorted,
but remain in the order filled by the application
-->
- <menulist id="nicknames" observes="certSelected">
+ <menulist id="nicknames" oncommand="onCertSelected();">
<menupopup/>
</menulist>
<description>&clientAuthAsk.message3;</description>
<textbox readonly="true" id="details" multiline="true"
style="height: 11em;"/>
<checkbox id="rememberBox" checked="true"/>
</groupbox>