54 lines
1.5 KiB
HTML
54 lines
1.5 KiB
HTML
<?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>
|