diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /layout/style/test/test_mq_any_hover_and_any_pointer.html | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/style/test/test_mq_any_hover_and_any_pointer.html')
-rw-r--r-- | layout/style/test/test_mq_any_hover_and_any_pointer.html | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/layout/style/test/test_mq_any_hover_and_any_pointer.html b/layout/style/test/test_mq_any_hover_and_any_pointer.html new file mode 100644 index 0000000000..1725af0725 --- /dev/null +++ b/layout/style/test/test_mq_any_hover_and_any_pointer.html @@ -0,0 +1,97 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=1483111 +--> +<head> + <meta charset="utf-8"> + <title>Test for Bug 1035774</title> + <script src="/tests/SimpleTest/SimpleTest.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=1483111">Mozilla Bug 1483111</a> +<p id="display"></p> +<div id="content" style="display: none"> + +</div> +<pre id="test"> +</pre> +<script> + +const NO_POINTER = 0x00; +const COARSE_POINTER = 0x01; +const FINE_POINTER = 0x02; +const HOVER_CAPABLE_POINTER = 0x04; + +var isAndroid = navigator.appVersion.includes("Android"); + +add_task(async () => { + await SpecialPowers.pushPrefEnv({ + set: [ ['privacy.resistFingerprinting', true] ] + }); + + // When resistFingerprinting is enabled, we pretend that the system has a + // mouse pointer (or finger on mobile). + let invertIfAndroid = function(b) { return isAndroid ? !b : b; }; + + ok(!matchMedia("(any-pointer: none)").matches, + "Doesn't match (any-pointer: none)"); + ok(matchMedia("(any-pointer)").matches, "Matches (any-pointer)"); + + ok(invertIfAndroid(!matchMedia("(any-pointer: coarse)").matches), + "Doesn't match (any-pointer: coarse)"); + ok(invertIfAndroid(matchMedia("(any-pointer: fine)").matches), "Matches (any-pointer: fine)"); + + ok(invertIfAndroid(!matchMedia("(any-hover: none)").matches), + "Doesn't match (any-hover: none)"); + ok(invertIfAndroid(matchMedia("(any-hover: hover)").matches), + "Matches (any-hover: hover)"); + ok(invertIfAndroid(matchMedia("(any-hover)").matches), "Matches (any-hover)"); + + await SpecialPowers.flushPrefEnv(); +}); + +add_task(async () => { + // No pointer. + await SpecialPowers.pushPrefEnv({ + set: [ ['ui.allPointerCapabilities', NO_POINTER] ] + }); + + ok(matchMedia("(any-pointer: none)").matches, "Matches (any-pointer: none)"); + ok(!matchMedia("(any-pointer: coarse)").matches, + "Doesn't match (any-pointer: coarse)"); + ok(!matchMedia("(any-pointer: fine)").matches, + "Doesn't match (any-pointer: fine)"); + ok(!matchMedia("(any-pointer)").matches, "Matches (any-pointer)"); + + ok(matchMedia("(any-hover: none)").matches, "Matches (any-hover: none)"); + ok(!matchMedia("(any-hover: hover)").matches, + "Doesn't match (any-hover: hover)"); + ok(!matchMedia("(any-hover)").matches, "Doesn't match (any-hover)"); +}); + +add_task(async () => { + // Mouse type pointer and touchscreen + await SpecialPowers.pushPrefEnv({ + set: [ ['ui.allPointerCapabilities', + FINE_POINTER | COARSE_POINTER | HOVER_CAPABLE_POINTER] ] + }); + + ok(!matchMedia("(any-pointer: none)").matches, + "Doesn't match (any-pointer: none)"); + ok(matchMedia("(any-pointer: coarse)").matches, + "Matches (any-pointer: coarse)"); + ok(matchMedia("(any-pointer: fine)").matches, "Matches (any-pointer: fine)"); + ok(matchMedia("(any-pointer)").matches, "Matches (any-pointer)"); + + ok(!matchMedia("(any-hover: none)").matches, + "Doesn't match (any-hover: none)"); + ok(matchMedia("(any-hover: hover)").matches, + "Matches (any-hover: hover)"); + ok(matchMedia("(any-hover)").matches, "Matches (any-hover)"); +}); + +</script> +</body> +</html> |