Bug 1446956 - Test that activeTab is not granted for bookmarks menu r?mixedpuppy
This ensures that the check that was introduced by
bug 1370499 still
continues to work even though it was refactored by the previous commit.
MozReview-Commit-ID: GdbIPA6vxIB
--- a/browser/components/extensions/test/browser/browser_ext_contextMenus.js
+++ b/browser/components/extensions/test/browser/browser_ext_contextMenus.js
@@ -510,34 +510,42 @@ add_task(async function testRemoveAllWit
await closeContextMenu();
await first.unload();
await second.unload();
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_bookmark_contextmenu() {
+ let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, PAGE);
+
const bookmarksToolbar = document.getElementById("PersonalToolbar");
setToolbarVisibility(bookmarksToolbar, true);
const extension = ExtensionTestUtils.loadExtension({
manifest: {
- permissions: ["contextMenus", "bookmarks"],
+ permissions: ["contextMenus", "bookmarks", "activeTab"],
},
async background() {
const url = "https://example.com/";
const title = "Example";
let newBookmark = await browser.bookmarks.create({
url,
title,
parentId: "toolbar_____",
});
- browser.contextMenus.onClicked.addListener(async (info) => {
+ browser.contextMenus.onClicked.addListener(async (info, tab) => {
+ browser.test.assertEq(undefined, tab, "click event in bookmarks menu is not associated with any tab");
browser.test.assertEq(newBookmark.id, info.bookmarkId, "Bookmark ID matches");
+ await browser.test.assertRejects(
+ browser.tabs.executeScript({code: "'some code';"}),
+ /Missing host permission for the tab/,
+ "Content script should not run, activeTab should not be granted to bookmark menu events");
+
let [bookmark] = await browser.bookmarks.get(info.bookmarkId);
browser.test.assertEq(title, bookmark.title, "Bookmark title matches");
browser.test.assertEq(url, bookmark.url, "Bookmark url matches");
browser.test.assertFalse(info.hasOwnProperty("pageUrl"), "Context menu does not expose pageUrl");
await browser.bookmarks.remove(info.bookmarkId);
browser.test.sendMessage("test-finish");
});
browser.contextMenus.create({
@@ -555,16 +563,18 @@ add_task(async function test_bookmark_co
"#PersonalToolbar .bookmark-item:last-child");
let menuItem = menu.getElementsByAttribute("label", "Get bookmark")[0];
closeChromeContextMenu("placesContext", menuItem);
await extension.awaitMessage("test-finish");
await extension.unload();
setToolbarVisibility(bookmarksToolbar, false);
+
+ BrowserTestUtils.removeTab(tab);
});
add_task(async function test_bookmark_context_requires_permission() {
const bookmarksToolbar = document.getElementById("PersonalToolbar");
setToolbarVisibility(bookmarksToolbar, true);
const extension = ExtensionTestUtils.loadExtension({
manifest: {