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
|
<!DOCTYPE html>
<meta charset="utf8">
<!--<script src="/tests/SimpleTest/SimpleTest.js"></script>-->
<script>
var SimpleTest = window.parent.SimpleTest;
function forceFail() {
SimpleTest.ok(
false,
"privacy.resistFingerprinting is true, should not receive any gamepad events"
);
}
window.addEventListener("gamepadconnected", forceFail);
window.addEventListener("gamepaddisconnected", forceFail);
window.addEventListener("gamepadbuttondown", forceFail);
window.addEventListener("load", async () => {
const service = navigator.requestGamepadServiceTest();
const buttonIndex = await service.addGamepad(
"test gamepad", // id
service.standardMapping,
service.noHand,
4, // buttons
2,
0,
0,
0
);
// Press a button to make the gamepad visible to the page.
await service.newButtonEvent(buttonIndex, 0, true, true);
const { length } = navigator.getGamepads();
SimpleTest.is(
length,
0,
"privacy.resistFingerprinting is true, navigator.getGamepads() should always return an empty array"
);
// Attempt to force gamepad events to be fired, by simulating gamepad disconnect
await service.removeGamepad(buttonIndex);
SimpleTest.finish();
});
</script>
|