Backed out changeset ee53bdc5b1d4 (bug 1419195) for failing in browser_ext_contextMenus.js

This commit is contained in:
Noemi Erli 2019-01-14 18:59:02 +02:00
parent 220d6a0fd2
commit 2e2a998fde
3 changed files with 12 additions and 91 deletions

View File

@ -879,7 +879,10 @@ const menuTracker = {
unregister() {
Services.obs.removeObserver(this, "on-build-contextmenu");
for (const window of windowTracker.browserWindows()) {
this.cleanupWindow(window);
for (const id of this.menuIds) {
const menu = window.document.getElementById(id);
menu.removeEventListener("popupshowing", this);
}
}
windowTracker.removeOpenListener(this.onWindowOpen);
},
@ -894,44 +897,10 @@ const menuTracker = {
const menu = window.document.getElementById(id);
menu.addEventListener("popupshowing", menuTracker);
}
const sidebarHeader = window.document.getElementById("sidebar-switcher-target");
sidebarHeader.addEventListener("SidebarShown", menuTracker.onSidebarShown);
if (window.SidebarUI.currentID === "viewBookmarksSidebar") {
menuTracker.onSidebarShown({currentTarget: window.SidebarUI.browser});
}
},
cleanupWindow(window) {
for (const id of this.menuIds) {
const menu = window.document.getElementById(id);
menu.removeEventListener("popupshowing", this);
}
const sidebarHeader = window.document.getElementById("sidebar-switcher-target");
sidebarHeader.removeEventListener("SidebarShown", this.onSidebarShown);
if (window.SidebarUI.currentID === "viewBookmarksSidebar") {
const menu = window.SidebarUI.browser.contentDocument
.getElementById("placesContext");
menu.removeEventListener("popupshowing", this.onBookmarksContextMenu);
}
},
onSidebarShown(event) {
// The listener is on the sidebar <browser>, so window is the regular
// browser window that contains the sidebar.
const window = event.currentTarget.ownerGlobal;
if (window.SidebarUI.currentID === "viewBookmarksSidebar") {
const menu = window.SidebarUI.browser.contentDocument
.getElementById("placesContext");
menu.addEventListener("popupshowing", menuTracker.onBookmarksContextMenu);
}
},
handleEvent(event) {
const menu = event.target;
if (menu.id === "placesContext") {
const trigger = menu.triggerNode;
if (!trigger._placesNode) {
@ -956,19 +925,6 @@ const menuTracker = {
gMenuBuilder.build({menu, tab, pageUrl, onTab: true});
}
},
onBookmarksContextMenu(event) {
const menu = event.target;
const tree = menu.triggerNode.parentElement;
const cell = tree.boxObject.getCellAt(event.x, event.y);
const node = tree.view.nodeForTreeIndex(cell.row);
gMenuBuilder.build({
menu,
bookmarkId: node.bookmarkGuid,
onBookmark: true,
});
},
};
this.menusInternal = class extends ExtensionAPI {

View File

@ -81,7 +81,6 @@ skip-if = (verify && (os == 'linux' || os == 'mac'))
[browser_ext_connect_and_move_tabs.js]
[browser_ext_contentscript_connect.js]
[browser_ext_contextMenus.js]
support-files = !/browser/components/places/tests/browser/head.js
[browser_ext_contextMenus_checkboxes.js]
[browser_ext_contextMenus_commands.js]
[browser_ext_contextMenus_icons.js]

View File

@ -2,11 +2,6 @@
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
Services.scriptloader.loadSubScript(
"chrome://mochitests/content/browser/browser/components/places/tests/browser/head.js",
this);
/* globals withSidebarTree, synthesizeClickOnSelectedTreeCell */
const PAGE = "http://mochi.test:8888/browser/browser/components/extensions/test/browser/context.html";
add_task(async function() {
@ -519,8 +514,13 @@ add_task(async function testRemoveAllWithTwoExtensions() {
BrowserTestUtils.removeTab(tab);
});
function bookmarkContextMenuExtension() {
return ExtensionTestUtils.loadExtension({
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", "activeTab"],
},
@ -552,20 +552,10 @@ function bookmarkContextMenuExtension() {
title: "Get bookmark",
contexts: ["bookmark"],
}, () => {
browser.test.sendMessage("bookmark-created", newBookmark.id);
browser.test.sendMessage("bookmark-created");
});
},
});
}
add_task(async function test_bookmark_contextmenu() {
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, PAGE);
const bookmarksToolbar = document.getElementById("PersonalToolbar");
setToolbarVisibility(bookmarksToolbar, true);
const extension = bookmarkContextMenuExtension();
await extension.startup();
await extension.awaitMessage("bookmark-created");
let menu = await openChromeContextMenu(
@ -582,30 +572,6 @@ add_task(async function test_bookmark_contextmenu() {
BrowserTestUtils.removeTab(tab);
});
add_task(async function test_bookmark_sidebar_contextmenu() {
await withSidebarTree("bookmarks", async (tree) => {
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, PAGE);
let extension = bookmarkContextMenuExtension();
await extension.startup();
let bookmarkGuid = await extension.awaitMessage("bookmark-created");
let sidebar = window.SidebarUI.browser;
let menu = sidebar.contentDocument.getElementById("placesContext");
tree.selectItems([bookmarkGuid]);
let shown = BrowserTestUtils.waitForEvent(menu, "popupshown");
synthesizeClickOnSelectedTreeCell(tree, {type: "contextmenu"});
await shown;
let menuItem = menu.getElementsByAttribute("label", "Get bookmark")[0];
closeChromeContextMenu("placesContext", menuItem, sidebar.contentWindow);
await extension.awaitMessage("test-finish");
await extension.unload();
BrowserTestUtils.removeTab(tab);
});
});
add_task(async function test_bookmark_context_requires_permission() {
const bookmarksToolbar = document.getElementById("PersonalToolbar");
setToolbarVisibility(bookmarksToolbar, true);