mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-08-18 22:29:01 +00:00
60 lines
1.8 KiB
JavaScript
60 lines
1.8 KiB
JavaScript
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
*/
|
||
|
"use strict";
|
||
|
|
||
|
const TEST_URI = "http://example.com/" +
|
||
|
"browser/dom/tests/browser/position.html";
|
||
|
|
||
|
add_task(function testDismissHanger() {
|
||
|
info("Check that location is not shared when dismissing the geolocation hanger");
|
||
|
|
||
|
let promisePanelShown = waitForPanelShow();
|
||
|
|
||
|
gBrowser.selectedTab = gBrowser.addTab(TEST_URI);
|
||
|
yield waitForPageLoad(gBrowser.selectedTab);
|
||
|
info("Page was loaded");
|
||
|
|
||
|
yield promisePanelShown;
|
||
|
info("Panel is shown");
|
||
|
|
||
|
// click outside the Geolocation hanger to dismiss it
|
||
|
window.document.getElementById("nav-bar").click();
|
||
|
info("Clicked outside the Geolocation panel to dismiss it");
|
||
|
|
||
|
let result = gBrowser.getBrowserForTab(gBrowser.selectedTab)
|
||
|
.contentDocument.body.innerHTML;
|
||
|
ok(result.includes("location..."), "Location is not shared");
|
||
|
});
|
||
|
|
||
|
add_task(function asyncCleanup() {
|
||
|
// close the tab
|
||
|
gBrowser.removeTab(gBrowser.selectedTab);
|
||
|
info("Cleanup: Closed the tab");
|
||
|
});
|
||
|
|
||
|
function waitForPageLoad(aTab) {
|
||
|
return new Promise(resolve => {
|
||
|
function onTabLoad(event) {
|
||
|
aTab.linkedBrowser.removeEventListener("load", onTabLoad, true);
|
||
|
info("Load tab event received");
|
||
|
resolve();
|
||
|
};
|
||
|
|
||
|
aTab.linkedBrowser.addEventListener("load", onTabLoad, true, true);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function waitForPanelShow(aPanel) {
|
||
|
return new Promise(resolve => {
|
||
|
function onPopupShown(event) {
|
||
|
PopupNotifications.panel.removeEventListener("popupshown", onPopupShown, true);
|
||
|
info("Popup shown event received");
|
||
|
resolve();
|
||
|
}
|
||
|
|
||
|
PopupNotifications.panel.addEventListener("popupshown", onPopupShown, true, true);
|
||
|
});
|
||
|
}
|