зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1705976 - A test that double tapping inside OOP iframe doesn't zoom if the top level document disallows zooming. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D119042
This commit is contained in:
Родитель
1dbe2952b1
Коммит
7d2d0b1c1b
|
@ -1455,15 +1455,19 @@ async function pinchZoomOutWithTouchAtCenter() {
|
|||
}
|
||||
|
||||
// useTouchpad is only currently implemented on macOS
|
||||
async function doubleTapOn(element, x, y, useTouchpad) {
|
||||
let transformEndPromise = promiseTransformEnd();
|
||||
|
||||
function synthesizeDoubleTap(element, x, y, useTouchpad) {
|
||||
if (useTouchpad) {
|
||||
synthesizeNativeTouchpadDoubleTap(element, x, y);
|
||||
} else {
|
||||
synthesizeNativeTap(element, x, y);
|
||||
synthesizeNativeTap(element, x, y);
|
||||
}
|
||||
}
|
||||
// useTouchpad is only currently implemented on macOS
|
||||
async function doubleTapOn(element, x, y, useTouchpad) {
|
||||
let transformEndPromise = promiseTransformEnd();
|
||||
|
||||
synthesizeDoubleTap(element, x, y, useTouchpad);
|
||||
|
||||
// Wait for the APZ:TransformEnd to fire
|
||||
await transformEndPromise;
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="user-scalable=no"/>
|
||||
<title>Check that double tapping inside an oop iframe doesn't work if the top
|
||||
level content document doesn't allow zooming</title>
|
||||
<script src="apz_test_native_event_utils.js"></script>
|
||||
<script src="apz_test_utils.js"></script>
|
||||
<script src="/tests/SimpleTest/paint_listener.js"></script>
|
||||
<script>
|
||||
|
||||
async function test() {
|
||||
let useTouchpad = (location.search == "?touchpad");
|
||||
|
||||
let resolution = getResolution();
|
||||
ok(resolution > 0,
|
||||
"The initial_resolution is " + resolution + ", which is some sane value");
|
||||
|
||||
// Set up a Promise waiting for a TransformEnd which should never happen.
|
||||
promiseTransformEnd().then(() => {
|
||||
ok(false, "No TransformEnd should happen!");
|
||||
});
|
||||
|
||||
// A double tap inside the OOP iframe.
|
||||
synthesizeDoubleTap(document.getElementById("target"), 20, 20, useTouchpad);
|
||||
|
||||
for (let i = 0; i < 10; i++) {
|
||||
await promiseFrame();
|
||||
}
|
||||
|
||||
// Flush state just in case.
|
||||
await promiseApzFlushedRepaints();
|
||||
|
||||
let prev_resolution = resolution;
|
||||
resolution = getResolution();
|
||||
is(resolution, prev_resolution, "No zoom should happen");
|
||||
}
|
||||
|
||||
waitUntilApzStable()
|
||||
.then(test)
|
||||
.then(subtestDone, subtestFailed);
|
||||
|
||||
</script>
|
||||
<style>
|
||||
iframe {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 1px solid black;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<iframe id="target" width="100" height="100" src="http://example.org/"></iframe>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -38,6 +38,11 @@ var disable_default_zoomin_and_doubletap_prefs = [
|
|||
["apz.doubletapzoom.defaultzoomin", "1.0"],
|
||||
];
|
||||
|
||||
var meta_viewport_and_doubletap_prefs = [
|
||||
...doubletap_prefs,
|
||||
["dom.meta-viewport.enabled", true],
|
||||
];
|
||||
|
||||
var subtests = [
|
||||
{"file": "helper_doubletap_zoom_smooth.html", "prefs": longeranimation_visualviewport_and_doubletap_prefs},
|
||||
{"file": "helper_doubletap_zoom_fixedpos_overflow.html", "prefs": logging_and_doubletap_prefs},
|
||||
|
@ -51,6 +56,7 @@ var subtests = [
|
|||
{"file": "helper_doubletap_zoom_noscroll.html", "prefs": visualviewport_and_doubletap_prefs},
|
||||
{"file": "helper_doubletap_zoom_square.html", "prefs": visualviewport_and_doubletap_prefs},
|
||||
{"file": "helper_doubletap_zoom_oopif.html", "prefs": doubletap_prefs},
|
||||
{"file": "helper_disallow_doubletap_zoom_inside_oopif.html", "prefs": meta_viewport_and_doubletap_prefs},
|
||||
];
|
||||
|
||||
if (getPlatform() == "mac") {
|
||||
|
@ -67,6 +73,7 @@ if (getPlatform() == "mac") {
|
|||
{"file": "helper_doubletap_zoom_noscroll.html?touchpad", "prefs": visualviewport_and_doubletap_prefs},
|
||||
{"file": "helper_doubletap_zoom_square.html?touchpad", "prefs": visualviewport_and_doubletap_prefs},
|
||||
{"file": "helper_doubletap_zoom_oopif.html?touchpad", "prefs": doubletap_prefs},
|
||||
{"file": "helper_disallow_doubletap_zoom_inside_oopif.html?touchpad", "prefs": meta_viewport_and_doubletap_prefs},
|
||||
);
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче