Bug 1215376 - fix linting and test issues from rebase
- Work-around in browser_ext_menus_events.js for
bug 1428213
- Fix indentation issues (eslint)
- Hide the "pageUrl" property for bookmark menu events
(fixes test failure in test_bookmark_contextmenu).
MozReview-Commit-ID: 4YHJci0J7Rh
--- a/browser/components/extensions/ext-menus.js
+++ b/browser/components/extensions/ext-menus.js
@@ -492,17 +492,19 @@ function addMenuEventInfo(info, contextD
if (includeSensitiveData) {
if (contextData.onLink) {
info.linkText = contextData.linkText;
info.linkUrl = contextData.linkUrl;
}
if (contextData.onAudio || contextData.onImage || contextData.onVideo) {
info.srcUrl = contextData.srcUrl;
}
- info.pageUrl = contextData.pageUrl;
+ if (!contextData.onBookmark) {
+ info.pageUrl = contextData.pageUrl;
+ }
if (contextData.inFrame) {
info.frameUrl = contextData.frameUrl;
}
if (contextData.isTextSelected) {
info.selectionText = contextData.selectionText;
}
}
}
--- a/browser/components/extensions/test/browser/browser_ext_menus_events.js
+++ b/browser/components/extensions/test/browser/browser_ext_menus_events.js
@@ -21,16 +21,22 @@ async function grantOptionalPermission(e
async function testShowHideEvent({menuCreateParams, doOpenMenu, doCloseMenu,
expectedShownEvent,
expectedShownEventWithPermissions = null}) {
async function background() {
function awaitMessage(expectedId) {
return new Promise(resolve => {
browser.test.log(`Waiting for message: ${expectedId}`);
browser.test.onMessage.addListener(function listener(id, msg) {
+ // Temporary work-around for https://bugzil.la/1428213
+ // TODO Bug 1428213: remove workaround for onMessage.removeListener
+ if (listener._wasCalled) {
+ return;
+ }
+ listener._wasCalled = true;
browser.test.assertEq(expectedId, id, "Expected message");
browser.test.onMessage.removeListener(listener);
resolve(msg);
});
});
}
let menuCreateParams = await awaitMessage("create-params");
@@ -104,34 +110,34 @@ async function testShowHideEvent({menuCr
await grantOptionalPermission(extension, {
permissions: [],
origins: [PAGE_HOST_PATTERN],
});
await doOpenMenu(extension);
extension.sendMessage("optional-menu-shown-with-permissions");
let shownEvent2 = await extension.awaitMessage("onShown-event-data2");
Assert.deepEqual(shownEvent2, expectedShownEventWithPermissions,
- "expected onShown info when host permissions are enabled");
+ "expected onShown info when host permissions are enabled");
await doCloseMenu();
}
await extension.unload();
await BrowserTestUtils.removeTab(tab);
}
// Make sure that we won't trigger onShown when extensions cannot add menus.
add_task(async function test_no_show_hide_for_unsupported_menu() {
let extension = ExtensionTestUtils.loadExtension({
background() {
let events = [];
browser.menus.onShown.addListener(data => events.push(data));
browser.menus.onHidden.addListener(() => events.push("onHidden"));
browser.test.onMessage.addListener(() => {
browser.test.assertEq("[]", JSON.stringify(events),
- "Should not have any events when the context is unsupported.");
+ "Should not have any events when the context is unsupported.");
browser.test.notifyPass("done listening to menu events");
});
},
manifest: {
permissions: ["menus"],
},
});
--- a/browser/components/extensions/test/browser/browser_ext_menus_refresh.js
+++ b/browser/components/extensions/test/browser/browser_ext_menus_refresh.js
@@ -58,17 +58,17 @@ function loadExtensionWithMenusApi() {
}
// Tests whether browser.menus.refresh works as expected with respect to the
// menu items that are added/updated/removed before/during/after opening a menu:
// - browser.refresh before a menu is shown should not have any effect.
// - browser.refresh while a menu is shown should update the menu.
// - browser.refresh after a menu is hidden should not have any effect.
async function testRefreshMenusWhileVisible({contexts, doOpenMenu, doCloseMenu,
- }) {
+}) {
let extension = loadExtensionWithMenusApi();
await extension.startup();
await extension.callMenuApi("create", {
id: "abc",
title: "first",
contexts,
});
let elem = extension.getXULElementByMenuId("abc");
@@ -221,17 +221,17 @@ add_task(async function refresh_without_
await extension.awaitMessage("onShown fired");
await extension.callMenuApi("create", {
id: "too late",
title: "created after shown",
});
await extension.callMenuApi("refresh");
let elem = extension.getXULElementByMenuId("too late");
is(elem.getAttribute("label"), "created after shown",
- "extension without visible menu items can add new items");
+ "extension without visible menu items can add new items");
await extension.callMenuApi("update", "too late", {title: "the menu item"});
await extension.callMenuApi("refresh");
elem = extension.getXULElementByMenuId("too late");
is(elem.getAttribute("label"), "the menu item", "label should change");
// The previously created menu item should be visible if the menu is closed
// and re-opened.