summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/dom/Geolocation
diff options
context:
space:
mode:
Diffstat (limited to 'LayoutTests/fast/dom/Geolocation')
-rw-r--r--LayoutTests/fast/dom/Geolocation/page-reload-cancel-permission-requests-expected.txt10
-rw-r--r--LayoutTests/fast/dom/Geolocation/page-reload-cancel-permission-requests.html13
-rw-r--r--LayoutTests/fast/dom/Geolocation/resources/page-reload-cancel-permission-requests-inner.html7
-rw-r--r--LayoutTests/fast/dom/Geolocation/resources/window-close-popup.html4
-rw-r--r--LayoutTests/fast/dom/Geolocation/script-tests/page-reload-cancel-permission-requests.js44
-rw-r--r--LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js6
6 files changed, 75 insertions, 9 deletions
diff --git a/LayoutTests/fast/dom/Geolocation/page-reload-cancel-permission-requests-expected.txt b/LayoutTests/fast/dom/Geolocation/page-reload-cancel-permission-requests-expected.txt
new file mode 100644
index 0000000..c7f2d2b
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/page-reload-cancel-permission-requests-expected.txt
@@ -0,0 +1,10 @@
+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.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS numPendingRequests is 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/dom/Geolocation/page-reload-cancel-permission-requests.html b/LayoutTests/fast/dom/Geolocation/page-reload-cancel-permission-requests.html
new file mode 100644
index 0000000..5b6aa5c
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/page-reload-cancel-permission-requests.html
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../js/resources/js-test-style.css">
+<script src="../../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script src="script-tests/page-reload-cancel-permission-requests.js"></script>
+<script src="../../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/fast/dom/Geolocation/resources/page-reload-cancel-permission-requests-inner.html b/LayoutTests/fast/dom/Geolocation/resources/page-reload-cancel-permission-requests-inner.html
new file mode 100644
index 0000000..4a4a715
--- /dev/null
+++ b/LayoutTests/fast/dom/Geolocation/resources/page-reload-cancel-permission-requests-inner.html
@@ -0,0 +1,7 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+ <head>
+ </head>
+ <body onload="window.parent.onIframeReady()">
+ </body>
+</html>
diff --git a/LayoutTests/fast/dom/Geolocation/resources/window-close-popup.html b/LayoutTests/fast/dom/Geolocation/resources/window-close-popup.html
index cfeabae..5370b4c 100644
--- a/LayoutTests/fast/dom/Geolocation/resources/window-close-popup.html
+++ b/LayoutTests/fast/dom/Geolocation/resources/window-close-popup.html
@@ -11,9 +11,7 @@ function loadNext() {
layoutTestController.setMockGeolocationPosition(mockLatitude, mockLongitude, mockAccuracy);
}
- navigator.geolocation.watchPosition(
- function(p) { window.opener.gotPosition(); },
- function(e) { window.opener.failedToCreateWatch(e); });
+ navigator.geolocation.watchPosition(window.opener.gotPosition);
}
</script>
<body onload="loadNext()"></body>
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;
diff --git a/LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js b/LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js
index b27df61..a8f2bda 100644
--- a/LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js
+++ b/LayoutTests/fast/dom/Geolocation/script-tests/window-close-crash.js
@@ -28,12 +28,6 @@ function waitForWindowToClose()
finishJSTest();
}
-function failedToCreateWatch(e)
-{
- testFailed("Failed to create watch: " + e);
- finishJSTest();
-}
-
debug("Main page opening resources/window-close-popup.html");
otherWindow = window.open("resources/window-close-popup.html");