summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/dom/Geolocation/script-tests/page-reload-cancel-permission-requests.js
diff options
context:
space:
mode:
Diffstat (limited to 'LayoutTests/fast/dom/Geolocation/script-tests/page-reload-cancel-permission-requests.js')
-rw-r--r--LayoutTests/fast/dom/Geolocation/script-tests/page-reload-cancel-permission-requests.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/LayoutTests/fast/dom/Geolocation/script-tests/page-reload-cancel-permission-requests.js b/LayoutTests/fast/dom/Geolocation/script-tests/page-reload-cancel-permission-requests.js
new file mode 100644
index 0000000..7ac291b
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/script-tests/page-reload-cancel-permission-requests.js
@@ -0,0 +1,44 @@
+description("Tests that when a page is reloaded, the frame is properly detached from the Geolocation object " +
+ "to ensure that no permission requests are in progress.");
+
+window.jsTestIsAsync = true;
+
+var numPendingRequests;
+var isReload = false;
+
+if ("#reload" == location.hash)
+ isReload = true;
+
+if (window.layoutTestController) {
+ numPendingRequests = layoutTestController.numberOfPendingGeolocationPermissionRequests();
+ shouldBe('numPendingRequests', '0');
+
+ if (isReload)
+ finishJSTest();
+}
+
+if (!isReload) {
+ // Kick off a position request and then reload the page, this should set up
+ // a permission request. Permission should be undecided at this point, so the
+ // permission request should still be outstanding by page reload.
+
+ function onIframeReady()
+ {
+ // Make request on remote frame's Geolocation object.
+ iframe.contentWindow.navigator.geolocation.getCurrentPosition(
+ function(p) {
+ testFailed('Permission should not be determined for this page: ' + p);
+ finishJSTest();
+ });
+
+ location.hash = '#reload';
+ location.reload();
+ }
+
+ debug("Create IFrame");
+ var iframe = document.createElement('iframe');
+ iframe.src = 'resources/page-reload-cancel-permission-requests-inner.html';
+ document.body.appendChild(iframe);
+}
+
+window.successfullyParsed = true;