blob: 482b36ea20cdf6a736cfd2ad74bed59ff6bdb92e (
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
45
46
47
48
49
50
51
52
53
54
|
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?>
<!--
Test for Geolocation in chrome
-->
<window
id="sample-window"
width="400"
height="400"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
>
<script
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"
></script>
<script>
SimpleTest.waitForExplicitFinish();
async function test() {
/** @type {Geolocation} */
const geolocation = Cc["@mozilla.org/geolocation;1"].getService(
Ci.nsISupports
);
try {
// Watch position
let watchId;
let position = await new Promise((resolve, reject) => {
watchId = geolocation.watchPosition(resolve, reject, { timeout: 0 });
});
ok(position, "watchPosition() callable from chrome");
geolocation.clearWatch(watchId);
// Get position
position = await new Promise((resolve, reject) =>
geolocation.getCurrentPosition(resolve, reject)
);
ok(position, "getCurrentPosition() callable from chrome");
} catch (err) {
ok(
false,
"error occurred trying to get geolocation from chrome: " + err.message
);
} finally {
SimpleTest.finish();
}
}
</script>
<body
xmlns="http://www.w3.org/1999/xhtml"
style="height: 300px; overflow: auto;"
onload="test()"
/>
</window>
|