Skip to content

Commit c5c06a5

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 180e323 commit c5c06a5

File tree

3 files changed

+48
-51
lines changed

3 files changed

+48
-51
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: 40 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -16,81 +16,73 @@ add_task(async function testMenus() {
1616
ensureReportBrokenSitePreffedOff();
1717

1818
const appMenu = AppMenu();
19-
const menus = [appMenu, ProtectionsPanel(), HelpMenu()];
20-
21-
async function forceMenuItemStateUpdate() {
22-
ReportBrokenSite.enableOrDisableMenuitems(window);
19+
const helpMenu = HelpMenu();
20+
const protectionsPanel = ProtectionsPanel();
2321

22+
async function ensure(menu, fn, test) {
2423
// the hidden/disabled state of all of the menuitems may not update until one
2524
// is rendered; then the related <command>'s state is propagated to them all.
26-
await appMenu.open();
27-
await appMenu.close();
25+
await menu.open();
26+
await menu.close();
27+
28+
await menu.open();
29+
fn(menu.reportBrokenSite, `${fn.name}(${menu.menuDescription}) ${test} - `);
30+
await menu.close();
2831
}
2932

3033
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-
}
34+
ReportBrokenSite.enableOrDisableMenuitems(window);
35+
const test = "on invalid page when preffed off";
36+
await ensure(appMenu, isMenuItemDisabled, test);
37+
await ensure(helpMenu, isMenuItemDisabled, test);
38+
ensureProtectionsPanelHidden(test);
3839
});
3940

4041
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-
}
42+
ReportBrokenSite.enableOrDisableMenuitems(window);
43+
const test =
44+
"on valid page when preffed off (fallback to original reporter)";
45+
await ensure(appMenu, isMenuItemEnabled, test);
46+
await ensure(helpMenu, isMenuItemEnabled, test);
47+
await ensure(protectionsPanel, isMenuItemEnabled, test);
4848
});
4949

5050
ensureReportBrokenSitePreffedOn();
5151

5252
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-
}
53+
ReportBrokenSite.enableOrDisableMenuitems(window);
54+
const test = "on invalid page when preffed on";
55+
await ensure(appMenu, isMenuItemDisabled, test);
56+
await ensure(helpMenu, isMenuItemDisabled, test);
57+
ensureProtectionsPanelHidden(test);
6058
});
6159

6260
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-
}
61+
ReportBrokenSite.enableOrDisableMenuitems(window);
62+
const test = "on valid page when preffed on";
63+
await ensure(appMenu, isMenuItemEnabled, test);
64+
await ensure(helpMenu, isMenuItemEnabled, test);
65+
await ensure(protectionsPanel, isMenuItemEnabled, test);
7066
});
7167

7268
ensureReportBrokenSitePreffedOff();
7369

7470
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-
}
71+
ReportBrokenSite.enableOrDisableMenuitems(window);
72+
const test = "still active when pref toggled back off";
73+
await ensure(appMenu, isMenuItemEnabled, test);
74+
await ensure(helpMenu, isMenuItemEnabled, test);
75+
await ensure(protectionsPanel, isMenuItemEnabled, test);
8276
});
8377

8478
ensureReportBrokenSitePreffedOn();
8579
ensureReportBrokenSiteDisabledByPolicy();
8680

8781
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-
}
82+
ReportBrokenSite.enableOrDisableMenuitems(window);
83+
const test = "when disabled by DisableFeedbackCommands enterprise policy";
84+
await ensure(appMenu, isMenuItemHidden, test);
85+
await ensure(helpMenu, isMenuItemHidden, test);
86+
await ensure(protectionsPanel, isMenuItemHidden, test);
9587
});
9688
});

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)