author | Paolo Amadini <paolo.mozmail@amadzone.org> |
Tue, 09 Jan 2018 15:51:19 +0000 | |
changeset 450363 | 65454ea1fbe49a75318c50d9590633227b7d493b |
parent 450362 | aabf5fcec100b05371d2543fc89e0b8eb05b8f77 |
child 450364 | 11c801abda3c68b438668e2d5f267f5c6371e584 |
push id | 8527 |
push user | Callek@gmail.com |
push date | Thu, 11 Jan 2018 21:05:50 +0000 |
treeherder | mozilla-beta@95342d212a7a [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | Gijs |
bugs | 1425736 |
milestone | 59.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/browser/components/customizableui/test/browser_panelUINotifications.js +++ b/browser/components/customizableui/test/browser_panelUINotifications.js @@ -187,25 +187,16 @@ add_task(async function testMultipleBadg is(menuButton.getAttribute("badge-status"), "fxa-needs-authentication", "Should have fxa-needs-authentication badge status"); AppMenuNotifications.showBadgeOnlyNotification("update-succeeded"); is(menuButton.getAttribute("badge-status"), "update-succeeded", "Should have update-succeeded badge status (update > fxa)"); AppMenuNotifications.showBadgeOnlyNotification("update-failed"); is(menuButton.getAttribute("badge-status"), "update-failed", "Should have update-failed badge status"); - AppMenuNotifications.showBadgeOnlyNotification("download-severe"); - is(menuButton.getAttribute("badge-status"), "download-severe", "Should have download-severe badge status"); - - AppMenuNotifications.showBadgeOnlyNotification("download-warning"); - is(menuButton.getAttribute("badge-status"), "download-warning", "Should have download-warning badge status"); - - AppMenuNotifications.removeNotification(/^download-/); - is(menuButton.getAttribute("badge-status"), "update-failed", "Should have update-failed badge status"); - AppMenuNotifications.removeNotification(/^update-/); is(menuButton.getAttribute("badge-status"), "fxa-needs-authentication", "Should have fxa-needs-authentication badge status"); AppMenuNotifications.removeNotification(/^fxa-/); is(menuButton.hasAttribute("badge-status"), false, "Should not have a badge status"); await PanelUI.show(); is(menuButton.hasAttribute("badge-status"), false, "Should not have a badge status (Hamburger menu opened)");
--- a/browser/components/downloads/DownloadsCommon.jsm +++ b/browser/components/downloads/DownloadsCommon.jsm @@ -36,18 +36,16 @@ const { classes: Cc, interfaces: Ci, uti Cu.import("resource://gre/modules/XPCOMUtils.jsm"); Cu.import("resource://gre/modules/Services.jsm"); XPCOMUtils.defineLazyModuleGetters(this, { NetUtil: "resource://gre/modules/NetUtil.jsm", PluralForm: "resource://gre/modules/PluralForm.jsm", AppConstants: "resource://gre/modules/AppConstants.jsm", - AppMenuNotifications: "resource://gre/modules/AppMenuNotifications.jsm", - CustomizableUI: "resource:///modules/CustomizableUI.jsm", DownloadHistory: "resource://gre/modules/DownloadHistory.jsm", Downloads: "resource://gre/modules/Downloads.jsm", DownloadUIHelper: "resource://gre/modules/DownloadUIHelper.jsm", DownloadUtils: "resource://gre/modules/DownloadUtils.jsm", FileUtils: "resource://gre/modules/FileUtils.jsm", OS: "resource://gre/modules/osfile.jsm", PrivateBrowsingUtils: "resource://gre/modules/PrivateBrowsingUtils.jsm", RecentWindow: "resource:///modules/RecentWindow.jsm", @@ -1054,16 +1052,29 @@ const DownloadsViewPrototype = { /** * Private function used to refresh an individual view. * * @note Subclasses should override this. */ _updateView() { throw Components.results.NS_ERROR_NOT_IMPLEMENTED; }, + + /** + * Computes aggregate values and propagates the changes to our views. + */ + _updateViews() { + // Do not update the status indicators during batch loads of download items. + if (this._loading) { + return; + } + + this._refreshProperties(); + this._views.forEach(this._updateView, this); + }, }; // DownloadsIndicatorData /** * This object registers itself with DownloadsData as a view, and transforms the * notifications it receives into overall status data, that is then broadcast to * the registered download status indicators. @@ -1168,41 +1179,16 @@ DownloadsIndicatorDataCtor.prototype = { this._attentionSuppressed = aValue; this._attention = DownloadsCommon.ATTENTION_NONE; this._updateViews(); return aValue; }, _attentionSuppressed: false, /** - * Computes aggregate values and propagates the changes to our views. - */ - _updateViews() { - // Do not update the status indicators during batch loads of download items. - if (this._loading) { - return; - } - - this._refreshProperties(); - - let widgetGroup = CustomizableUI.getWidget("downloads-button"); - let inMenu = widgetGroup.areaType == CustomizableUI.TYPE_MENU_PANEL; - if (inMenu) { - if (this._attention == DownloadsCommon.ATTENTION_NONE) { - AppMenuNotifications.removeNotification(/^download-/); - } else { - let badgeClass = "download-" + this._attention; - AppMenuNotifications.showBadgeOnlyNotification(badgeClass); - } - } - - this._views.forEach(this._updateView, this); - }, - - /** * Updates the specified view with the current aggregate values. * * @param aView * DownloadsIndicatorView object to be updated. */ _updateView(aView) { aView.hasDownloads = this._hasDownloads; aView.percentComplete = this._percentComplete; @@ -1352,29 +1338,16 @@ DownloadsSummaryData.prototype = { let itemIndex = this._downloads.indexOf(download); this._downloads.splice(itemIndex, 1); this._updateViews(); }, // Propagation of properties to our views /** - * Computes aggregate values and propagates the changes to our views. - */ - _updateViews() { - // Do not update the status indicators during batch loads of download items. - if (this._loading) { - return; - } - - this._refreshProperties(); - this._views.forEach(this._updateView, this); - }, - - /** * Updates the specified view with the current aggregate values. * * @param aView * DownloadsIndicatorView object to be updated. */ _updateView(aView) { aView.showingProgress = this._showingProgress; aView.percentComplete = this._percentComplete;
--- a/browser/themes/shared/customizableui/panelUI.inc.css +++ b/browser/themes/shared/customizableui/panelUI.inc.css @@ -69,47 +69,26 @@ background: #74BF43 url(chrome://browser/skin/update-badge.svg) no-repeat center; border-radius: 50%; } .panel-banner-item[notificationid^=update] { list-style-image: url(chrome://branding/content/icon16.png); } -#PanelUI-menu-button[badge-status="download-warning"] > .toolbarbutton-badge-stack > .toolbarbutton-badge, #PanelUI-menu-button[badge-status="fxa-needs-authentication"] > .toolbarbutton-badge-stack > .toolbarbutton-badge { box-shadow: none; filter: drop-shadow(0 1px 0 hsla(206, 50%, 10%, .15)); } -#PanelUI-menu-button[badge-status="download-warning"] > .toolbarbutton-badge-stack > .toolbarbutton-badge, -#PanelUI-menu-button[badge-status="download-severe"] > .toolbarbutton-badge-stack > .toolbarbutton-badge { - width: 7px; - height: 7px; - min-width: 0; - border-radius: 50%; - /* "!important" is necessary to override the rule in toolbarbutton.css */ - margin-top: -1px !important; - margin-right: -2px !important; -} - -#PanelUI-menu-button[badge-status="download-warning"] > .toolbarbutton-badge-stack > .toolbarbutton-badge { - background: #FFBF00; -} - -#PanelUI-menu-button[badge-status="download-severe"] > .toolbarbutton-badge-stack > .toolbarbutton-badge { - background: #D90000; -} - #PanelUI-menu-button[badge-status="fxa-needs-authentication"] > .toolbarbutton-badge-stack > .toolbarbutton-badge { height: 13px; background: transparent url(chrome://browser/skin/warning.svg) no-repeat center; } -#PanelUI-menu-button[badge-status="download-warning"] > .toolbarbutton-badge-stack > .toolbarbutton-badge:-moz-window-inactive, #PanelUI-menu-button[badge-status="fxa-needs-authentication"] > .toolbarbutton-badge-stack > .toolbarbutton-badge:-moz-window-inactive { filter: none; } #PanelUI-menu-button[badge-status="addon-alert"] > .toolbarbutton-badge-stack > .toolbarbutton-badge { height: 13px; background: #FFBF00 url(chrome://browser/skin/update-badge-failed.svg) no-repeat center; }