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:
Luca Greco 2017-04-24 16:22:31 +02:00
Родитель 9ecf43e1e4
Коммит 99ef55dcc5
4 изменённых файлов: 55 добавлений и 1 удалений

Просмотреть файл

@ -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>