зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1358314 - Fix 'Open Link in New Tab' context menu item after tab navigated in non-e10s mode. r=kmag
MozReview-Commit-ID: KIG3QTx4J6b --HG-- extra : rebase_source : 302b896c87b2516bd7181493abf70fda0d390ee7
This commit is contained in:
Родитель
9ecf43e1e4
Коммит
99ef55dcc5
|
@ -1033,8 +1033,11 @@ nsContextMenu.prototype = {
|
|||
}
|
||||
|
||||
if (!this.isRemote) {
|
||||
params.frameOuterWindowID = WebNavigationFrames.getFrameId(this.target.ownerGlobal);
|
||||
// Propagate the frameOuterWindowID value saved when
|
||||
// the context menu has been opened.
|
||||
params.frameOuterWindowID = this.frameOuterWindowID;
|
||||
}
|
||||
|
||||
// If we want to change userContextId, we must be sure that we don't
|
||||
// propagate the referrer.
|
||||
if ("userContextId" in params &&
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
[DEFAULT]
|
||||
support-files =
|
||||
dummy_page.html
|
||||
test_bug1358314.html
|
||||
|
||||
[browser_abandonment_telemetry.js]
|
||||
[browser_allow_process_switches_despite_related_browser.js]
|
||||
[browser_contextmenu_openlink_after_tabnavigated.js]
|
||||
[browser_tabCloseProbes.js]
|
||||
[browser_tabSpinnerProbe.js]
|
||||
skip-if = !e10s # Tab spinner is e10s only.
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
"use strict";
|
||||
|
||||
const example_base = "http://example.com/browser/browser/base/content/test/tabs/";
|
||||
|
||||
add_task(function* test_contextmenu_openlink_after_tabnavigated() {
|
||||
let url = example_base + "test_bug1358314.html";
|
||||
|
||||
const tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, url);
|
||||
|
||||
const contextMenu = document.getElementById("contentAreaContextMenu");
|
||||
let awaitPopupShown = BrowserTestUtils.waitForEvent(contextMenu, "popupshown");
|
||||
yield BrowserTestUtils.synthesizeMouse("a", 0, 0, {
|
||||
type: "contextmenu",
|
||||
button: 2,
|
||||
}, gBrowser.selectedBrowser);
|
||||
yield awaitPopupShown;
|
||||
info("Popup Shown");
|
||||
|
||||
info("Navigate the tab with the opened context menu");
|
||||
gBrowser.selectedBrowser.loadURI("about:blank");
|
||||
yield BrowserTestUtils.browserLoaded(gBrowser.selectedBrowser);
|
||||
|
||||
let awaitNewTabOpen = BrowserTestUtils.waitForNewTab(gBrowser, "http://example.com/");
|
||||
|
||||
info("Click the 'open link in new tab' menu item");
|
||||
let openLinkMenuItem = contextMenu.querySelector("#context-openlinkintab");
|
||||
openLinkMenuItem.click();
|
||||
|
||||
info("Wait for the new tab to be opened");
|
||||
const newTab = yield awaitNewTabOpen;
|
||||
yield BrowserTestUtils.browserLoaded(newTab.linkedBrowser);
|
||||
const newTabURL = yield ContentTask.spawn(newTab.linkedBrowser, null, function* () {
|
||||
return content.location.href;
|
||||
});
|
||||
is(newTabURL, "http://example.com/", "Got the expected URL loaded in the new tab");
|
||||
|
||||
BrowserTestUtils.removeTab(newTab);
|
||||
BrowserTestUtils.removeTab(tab);
|
||||
});
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
<p>Test page</p>
|
||||
<a href="/">Link</a>
|
||||
</body>
|
||||
</html>
|
Загрузка…
Ссылка в новой задаче