Skip to content

Commit adf2bb3

Browse files
committed
Bug 1963764 - read the correct enterprise policy when deciding whether to hide Report Broken Site (also improve the related tests); r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D260014
1 parent f0688cf commit adf2bb3

File tree

3 files changed

+45
-53
lines changed

3 files changed

+45
-53
lines changed

browser/components/reportbrokensite/ReportBrokenSite.sys.mjs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,7 @@ export var ReportBrokenSite = new (class ReportBrokenSite {
455455
// Altering the disabled attribute on the command does not propagate
456456
// the change to the related menuitems (see bug 805653), so we change them all.
457457
const cmd = document.getElementById("cmd_reportBrokenSite");
458-
const allowedByPolicy = Services.policies.isAllowed(
459-
"DisableFeedbackCommands"
460-
);
458+
const allowedByPolicy = Services.policies.isAllowed("feedbackCommands");
461459
cmd.toggleAttribute("hidden", !allowedByPolicy);
462460
const app = document.ownerGlobal.PanelMultiView.getViewNode(
463461
document,

browser/components/reportbrokensite/test/browser/browser_parent_menuitems.js

Lines changed: 37 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -16,81 +16,68 @@ add_task(async function testMenus() {
1616
ensureReportBrokenSitePreffedOff();
1717

1818
const appMenu = AppMenu();
19-
const menus = [appMenu, ProtectionsPanel(), HelpMenu()];
19+
const helpMenu = HelpMenu();
20+
const protectionsPanel = ProtectionsPanel();
2021

21-
async function forceMenuItemStateUpdate() {
22-
ReportBrokenSite.enableOrDisableMenuitems(window);
23-
24-
// the hidden/disabled state of all of the menuitems may not update until one
25-
// is rendered; then the related <command>'s state is propagated to them all.
26-
await appMenu.open();
27-
await appMenu.close();
22+
async function ensure(menu, fn, test) {
23+
await menu.open();
24+
fn(menu.reportBrokenSite, `${fn.name}(${menu.menuDescription}) ${test} - `);
25+
await menu.close();
2826
}
2927

3028
await BrowserTestUtils.withNewTab("about:blank", async function () {
31-
await forceMenuItemStateUpdate();
32-
for (const { menuDescription, reportBrokenSite } of menus) {
33-
isMenuItemHidden(
34-
reportBrokenSite,
35-
`${menuDescription} option hidden on invalid page when preffed off`
36-
);
37-
}
29+
ReportBrokenSite.enableOrDisableMenuitems(window);
30+
const test = "on invalid page when preffed off";
31+
await ensure(appMenu, isMenuItemDisabled, test);
32+
await ensure(helpMenu, isMenuItemDisabled, test);
33+
ensureProtectionsPanelHidden(test);
3834
});
3935

4036
await BrowserTestUtils.withNewTab(REPORTABLE_PAGE_URL, async function () {
41-
await forceMenuItemStateUpdate();
42-
for (const { menuDescription, reportBrokenSite } of menus) {
43-
isMenuItemHidden(
44-
reportBrokenSite,
45-
`${menuDescription} option hidden on valid page when preffed off`
46-
);
47-
}
37+
ReportBrokenSite.enableOrDisableMenuitems(window);
38+
const test =
39+
"on valid page when preffed off (fallback to original reporter)";
40+
await ensure(appMenu, isMenuItemEnabled, test);
41+
await ensure(helpMenu, isMenuItemEnabled, test);
42+
await ensure(protectionsPanel, isMenuItemEnabled, test);
4843
});
4944

5045
ensureReportBrokenSitePreffedOn();
5146

5247
await BrowserTestUtils.withNewTab("about:blank", async function () {
53-
await forceMenuItemStateUpdate();
54-
for (const { menuDescription, reportBrokenSite } of menus) {
55-
isMenuItemDisabled(
56-
reportBrokenSite,
57-
`${menuDescription} option disabled on invalid page when preffed on`
58-
);
59-
}
48+
ReportBrokenSite.enableOrDisableMenuitems(window);
49+
const test = "on invalid page when preffed on";
50+
await ensure(appMenu, isMenuItemDisabled, test);
51+
await ensure(helpMenu, isMenuItemDisabled, test);
52+
ensureProtectionsPanelHidden(test);
6053
});
6154

6255
await BrowserTestUtils.withNewTab(REPORTABLE_PAGE_URL, async function () {
63-
await forceMenuItemStateUpdate();
64-
for (const { menuDescription, reportBrokenSite } of menus) {
65-
isMenuItemEnabled(
66-
reportBrokenSite,
67-
`${menuDescription} option enabled on valid page when preffed on`
68-
);
69-
}
56+
ReportBrokenSite.enableOrDisableMenuitems(window);
57+
const test = "on valid page when preffed on";
58+
await ensure(appMenu, isMenuItemEnabled, test);
59+
await ensure(helpMenu, isMenuItemEnabled, test);
60+
await ensure(protectionsPanel, isMenuItemEnabled, test);
7061
});
7162

7263
ensureReportBrokenSitePreffedOff();
7364

7465
await BrowserTestUtils.withNewTab(REPORTABLE_PAGE_URL, async function () {
75-
await forceMenuItemStateUpdate();
76-
for (const { menuDescription, reportBrokenSite } of menus) {
77-
isMenuItemHidden(
78-
reportBrokenSite,
79-
`${menuDescription} option hidden again when pref toggled back off`
80-
);
81-
}
66+
ReportBrokenSite.enableOrDisableMenuitems(window);
67+
const test = "still active when pref toggled back off";
68+
await ensure(appMenu, isMenuItemEnabled, test);
69+
await ensure(helpMenu, isMenuItemEnabled, test);
70+
await ensure(protectionsPanel, isMenuItemEnabled, test);
8271
});
8372

8473
ensureReportBrokenSitePreffedOn();
8574
ensureReportBrokenSiteDisabledByPolicy();
8675

8776
await BrowserTestUtils.withNewTab(REPORTABLE_PAGE_URL, async function () {
88-
await forceMenuItemStateUpdate();
89-
for (const { menuDescription, reportBrokenSite } of menus) {
90-
isMenuItemHidden(
91-
reportBrokenSite,
92-
`${menuDescription} option hidden when disabled by DisableFeedbackCommands enterprise policy`
93-
);
94-
}
77+
ReportBrokenSite.enableOrDisableMenuitems(window);
78+
const test = "when disabled by DisableFeedbackCommands enterprise policy";
79+
await ensure(appMenu, isMenuItemHidden, test);
80+
await ensure(helpMenu, isMenuItemHidden, test);
81+
await ensure(protectionsPanel, isMenuItemHidden, test);
9582
});
9683
});

browser/components/reportbrokensite/test/browser/head.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,13 @@ function ensureReasonRequired() {
210210
Services.prefs.setIntPref(PREFS.REASON, 2);
211211
}
212212

213+
function ensureProtectionsPanelHidden(test) {
214+
const { hidden } = document.getElementById(
215+
"tracking-protection-icon-container"
216+
);
217+
ok(hidden, `Protections panel disabled ${test}`);
218+
}
219+
213220
function isMenuItemEnabled(menuItem, itemDesc) {
214221
ok(!menuItem.hidden, `${itemDesc} menu item is shown`);
215222
ok(!menuItem.disabled, `${itemDesc} menu item is enabled`);

0 commit comments

Comments
 (0)