mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
93447c88fb
This is a cleanup of the patch used in the Tarako bug. I made it clearer that this is request-level caching, NOT position caching. This is specifically for preventing unnecessary requests to the server. It is unrelated to the W3C PositionOptions and their effect on position caching. Hopefully this detail is clearer in this patch. Updated mochitests that were relying on old logic to succeed The failing mochitests were relying on the provider to have a specific behaviour -behaviours that are incidental to the test case. I updated these to reflect the behaviour of the current system.
70 lines
1.7 KiB
HTML
70 lines
1.7 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=526326
|
|
-->
|
|
<head>
|
|
<title>Test for watchPosition </title>
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script type="text/javascript" src="geolocation_common.js"></script>
|
|
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
</head>
|
|
<body>
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=526326">Mozilla Bug 526326</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none">
|
|
|
|
</div>
|
|
<pre id="test">
|
|
<script class="testbody" type="text/javascript">
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
// ensure we are using the right testing provider
|
|
resume_geolocationProvider(function() {
|
|
force_prompt(true, test1);
|
|
});
|
|
|
|
var watchID;
|
|
var times = 0;
|
|
|
|
function errorCallback(err) {
|
|
ok(err.code == err.TIMEOUT, "ensure error is a timeout.");
|
|
times++;
|
|
|
|
// make sure we got at least 3 times errorCallback
|
|
if (times >= 3) {
|
|
navigator.geolocation.clearWatch(watchID);
|
|
resume_geolocationProvider(function() {
|
|
set_network_request_cache_enabled(true,
|
|
function() { SimpleTest.finish(); } );
|
|
});
|
|
}
|
|
}
|
|
|
|
function successCallback(position) {
|
|
ok(1, "on success");
|
|
// Now that we got a success callback, lets try to ensure
|
|
// that we get a timeout error.
|
|
// The network cache is already off, now stop the sjs from reponding to requests
|
|
stop_geolocationProvider(function(){});
|
|
}
|
|
|
|
var options = {
|
|
maximumAge: 0,
|
|
timeout: 1000
|
|
};
|
|
|
|
function test1() {
|
|
set_network_request_cache_enabled(false,
|
|
function() {
|
|
watchID = navigator.geolocation.watchPosition(successCallback, errorCallback, options);
|
|
});
|
|
}
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|
|
|