products/Sources/formale Sprachen/C/Firefox/layout/style/test/test_mq_hover_and_pointer.html
<!
DOCTYPE HTML >
<
html >
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=1035774
-->
<
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=1035774 " >Mozil
la Bug 1035774</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("(pointer: none)" ).matches,
"Doesn't match (pointer: none)" );
ok(matchMedia("(pointer)" ).matches, "Matches (pointer)" );
ok(invertIfAndroid(!matchMedia("(pointer: coarse)" ).matches),
"Doesn't match (pointer: coarse)" );
ok(invertIfAndroid(matchMedia("(pointer: fine)" ).matches), "Matches (pointer: fine)" );
ok(invertIfAndroid(!matchMedia("(hover: none)" ).matches), "Doesn't match (hover: none)" );
ok(invertIfAndroid(matchMedia("(hover: hover)" ).matches), "Matches (hover: hover)" );
ok(invertIfAndroid(matchMedia("(hover)" ).matches), "Matches (hover)" );
await SpecialPowers.flushPrefEnv();
});
add_task(async () => {
// No pointer.
await SpecialPowers.pushPrefEnv({
set: [ ['ui.primaryPointerCapabilities' , NO_POINTER] ]
});
ok(matchMedia("(pointer: none)" ).matches, "Matches (pointer: none)" );
ok(!matchMedia("(pointer: coarse)" ).matches,
"Doesn't match (pointer: coarse)" );
ok(!matchMedia("(pointer: fine)" ).matches, "Doesn't match (pointer: fine)" );
ok(!matchMedia("(pointer)" ).matches, "Matches (pointer)" );
ok(matchMedia("(hover: none)" ).matches, "Matches (hover: none)" );
ok(!matchMedia("(hover: hover)" ).matches, "Doesn't match (hover: hover)" );
ok(!matchMedia("(hover)" ).matches, "Doesn't match (hover)" );
});
add_task(async () => {
// Mouse type pointer.
await SpecialPowers.pushPrefEnv({
set: [ ['ui.primaryPointerCapabilities' , FINE_POINTER | HOVER_CAPABLE_POINTER] ]
});
ok(!matchMedia("(pointer: none)" ).matches,
"Doesn't match (pointer: none)" );
ok(!matchMedia("(pointer: coarse)" ).matches,
"Doesn't match (pointer: coarse)" );
ok(matchMedia("(pointer: fine)" ).matches, "Matches (pointer: fine)" );
ok(matchMedia("(pointer)" ).matches, "Matches (pointer)" );
ok(!matchMedia("(hover: none)" ).matches, "Doesn't match (hover: none)" );
ok(matchMedia("(hover: hover)" ).matches, "Matches (hover: hover)" );
ok(matchMedia("(hover)" ).matches, "Matches (hover)" );
});
add_task(async () => {
// Mouse type pointer.
await SpecialPowers.pushPrefEnv({
set: [ ['ui.primaryPointerCapabilities' ,
FINE_POINTER |
HOVER_CAPABLE_POINTER] ]
});
ok(!matchMedia("(pointer: none)" ).matches,
"Doesn't match (pointer: none)" );
ok(!matchMedia("(pointer: coarse)" ).matches,
"Doesn't match (pointer: coarse)" );
ok(matchMedia("(pointer: fine)" ).matches, "Matches (pointer: fine)" );
ok(matchMedia("(pointer)" ).matches, "Matches (pointer)" );
ok(!matchMedia("(hover: none)" ).matches, "Doesn't match (hover: none)" );
ok(matchMedia("(hover: hover)" ).matches, "Matches (hover: hover)" );
ok(matchMedia("(hover)" ).matches, "Matches (hover)" );
});
add_task(async () => {
// Touch screen.
await SpecialPowers.pushPrefEnv({
set: [ ['ui.primaryPointerCapabilities' , COARSE_POINTER] ]
});
ok(!matchMedia("(pointer: none)" ).matches, "Doesn't match (pointer: none)" );
ok(matchMedia("(pointer: coarse)" ).matches, "Matches (pointer: coarse)" );
ok(!matchMedia("(pointer: fine)" ).matches, "Doesn't match (pointer: fine)" );
ok(matchMedia("(pointer)" ).matches, "Matches (pointer)" );
ok(matchMedia("(hover: none)" ).matches, "Match (hover: none)" );
ok(!matchMedia("(hover: hover)" ).matches, "Doesn't match (hover: hover)" );
ok(!matchMedia("(hover)" ).matches, "Doesn't match (hover)" );
});
</script >
</body >
</html >
Messung V0.5 C=94 H=98 G=95
¤ Dauer der Verarbeitung: 0.19 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland