summaryrefslogtreecommitdiffstats
path: root/LayoutTests/fast/dom/Geolocation/script-tests/page-reload-cancel-permission-requests.js
blob: 7ac291b2fd943acc4ded67cab5717b33e064621c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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;