зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1348396 - Only show a badge on PanelUI while in fullscreen r=enndeakin+6102,rstrong
Previously we were showing a doorhanger when the user moused to the top of the screen while in fullscreen mode. However, the doorhanger would disappear before the user had a chance to interact with it. We decided it's best anyway to simply display a badge when the user is in fullscreen, and to reshow the doorhanger when the user exits fullscreen. MozReview-Commit-ID: ENRtXC4wqvZ --HG-- extra : rebase_source : 4609fbc2d0bd38fe16a23151d94d265761cd57b0
This commit is contained in:
Родитель
9d02da70b5
Коммит
6c660b95af
|
@ -686,8 +686,14 @@ const PanelUI = {
|
||||||
this._showMenuItem(this.notifications[0]);
|
this._showMenuItem(this.notifications[0]);
|
||||||
}
|
}
|
||||||
} else if (doorhangers.length > 0) {
|
} else if (doorhangers.length > 0) {
|
||||||
this._clearBadge();
|
if (window.fullScreen) {
|
||||||
this._showNotificationPanel(doorhangers[0]);
|
this._hidePopup();
|
||||||
|
this._showBadge(doorhangers[0]);
|
||||||
|
this._showMenuItem(doorhangers[0]);
|
||||||
|
} else {
|
||||||
|
this._clearBadge();
|
||||||
|
this._showNotificationPanel(doorhangers[0]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this._hidePopup();
|
this._hidePopup();
|
||||||
this._showBadge(this.notifications[0]);
|
this._showBadge(this.notifications[0]);
|
||||||
|
|
|
@ -303,3 +303,42 @@ add_task(function* testMultipleNonBadges() {
|
||||||
ok(updateManualAction.called, "update-manual main action callback was called");
|
ok(updateManualAction.called, "update-manual main action callback was called");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
add_task(function* testFullscreen() {
|
||||||
|
let doc = document;
|
||||||
|
|
||||||
|
is(PanelUI.notificationPanel.state, "closed", "update-manual doorhanger is closed.");
|
||||||
|
let mainActionCalled = false;
|
||||||
|
let mainAction = {
|
||||||
|
callback: () => { mainActionCalled = true; }
|
||||||
|
};
|
||||||
|
PanelUI.showNotification("update-manual", mainAction);
|
||||||
|
|
||||||
|
isnot(PanelUI.notificationPanel.state, "closed", "update-manual doorhanger is showing.");
|
||||||
|
let notifications = [...PanelUI.notificationPanel.children].filter(n => !n.hidden);
|
||||||
|
is(notifications.length, 1, "PanelUI doorhanger is only displaying one notification.");
|
||||||
|
let doorhanger = notifications[0];
|
||||||
|
is(doorhanger.id, "PanelUI-update-manual-notification", "PanelUI is displaying the update-manual notification.");
|
||||||
|
|
||||||
|
let popuphiddenPromise = BrowserTestUtils.waitForEvent(PanelUI.notificationPanel, "popuphidden");
|
||||||
|
EventUtils.synthesizeKey("VK_F11", {});
|
||||||
|
yield popuphiddenPromise;
|
||||||
|
yield new Promise(executeSoon);
|
||||||
|
is(PanelUI.notificationPanel.state, "closed", "update-manual doorhanger is closed.");
|
||||||
|
|
||||||
|
window.FullScreen.showNavToolbox();
|
||||||
|
is(PanelUI.menuButton.getAttribute("badge-status"), "update-manual", "Badge is displaying on PanelUI button.");
|
||||||
|
|
||||||
|
let popupshownPromise = BrowserTestUtils.waitForEvent(PanelUI.notificationPanel, "popupshown");
|
||||||
|
EventUtils.synthesizeKey("VK_F11", {});
|
||||||
|
yield popupshownPromise;
|
||||||
|
yield new Promise(executeSoon);
|
||||||
|
isnot(PanelUI.notificationPanel.state, "closed", "update-manual doorhanger is showing.");
|
||||||
|
isnot(PanelUI.menuButton.getAttribute("badge-status"), "update-manual", "Badge is not displaying on PanelUI button.");
|
||||||
|
|
||||||
|
let mainActionButton = doc.getAnonymousElementByAttribute(doorhanger, "anonid", "button");
|
||||||
|
mainActionButton.click();
|
||||||
|
ok(mainActionCalled, "Main action callback was called");
|
||||||
|
is(PanelUI.notificationPanel.state, "closed", "update-manual doorhanger is closed.");
|
||||||
|
is(PanelUI.menuButton.hasAttribute("badge-status"), false, "Should not have a badge status");
|
||||||
|
});
|
||||||
|
|
Загрузка…
Ссылка в новой задаче