mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 10:15:41 +00:00
Backed out changeset ee53bdc5b1d4 (bug 1419195) for failing in browser_ext_contextMenus.js
This commit is contained in:
parent
220d6a0fd2
commit
2e2a998fde
@ -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 {
|
||||
|
@ -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]
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user