mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 14:20:14 +02:00
This reduces the amount of places where we need to specify the mozilla/frame-script environment. It does have the side effect of allowing those globals in the whole file, but that is what specifying the environment would do, and this is also for mochitest test files only. MozReview-Commit-ID: 1LLFbn6fFJR --HG-- extra : rebase_source : 82a6934d90bbbbd25f91b7b06bf4f9354e38865a
41 lines
1.6 KiB
JavaScript
41 lines
1.6 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
add_task(function* () {
|
|
let firstLocation = "http://example.org/browser/browser/base/content/test/general/dummy_page.html";
|
|
yield BrowserTestUtils.openNewForegroundTab(gBrowser, firstLocation);
|
|
|
|
yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function* () {
|
|
// Push the state before maximizing the window and clicking below.
|
|
content.history.pushState("page2", "page2", "page2");
|
|
|
|
// While in the child process, add a listener for the popstate event here. This
|
|
// event will fire when the mouse click happens.
|
|
content.addEventListener("popstate", function() {
|
|
sendAsyncMessage("Test:PopStateOccurred", { location: content.document.location.href });
|
|
}, {once: true});
|
|
});
|
|
|
|
window.maximize();
|
|
|
|
// Find where the nav-bar is vertically.
|
|
var navBar = document.getElementById("nav-bar");
|
|
var boundingRect = navBar.getBoundingClientRect();
|
|
var yPixel = boundingRect.top + Math.floor(boundingRect.height / 2);
|
|
var xPixel = 0; // Use the first pixel of the screen since it is maximized.
|
|
|
|
let resultLocation = yield new Promise(resolve => {
|
|
window.messageManager.addMessageListener("Test:PopStateOccurred", function statePopped(message) {
|
|
window.messageManager.removeMessageListener("Test:PopStateOccurred", statePopped);
|
|
resolve(message.data.location);
|
|
});
|
|
|
|
EventUtils.synthesizeMouseAtPoint(xPixel, yPixel, {}, window);
|
|
});
|
|
|
|
is(resultLocation, firstLocation, "Clicking the first pixel should have navigated back.");
|
|
window.restore();
|
|
|
|
gBrowser.removeCurrentTab();
|
|
});
|