Bug 1569019 [wpt PR 18090] - Reland "Re-write test pointerevent_pointermove_in_pointerlock.html", a=testonly

Automatic update from web-platform-tests
Reland "Re-write test pointerevent_pointermove_in_pointerlock.html"

This reverts commit 02efc0f4be0797b2c151e4aa598b125a6eccf191.

Reason for revert: [Cherry-picked & WIP] reland with fixing the test.

Original change's description:
> Revert "Re-write test pointerevent_pointermove_in_pointerlock.html"
>
> This reverts commit 9b7bafff73e59dc5d0cfcd0f499aa20be66bca54.
>
> Reason for revert: Causing leak failures on WebKit Linux Leak bot
>
> https://luci-milo.appspot.com/p/chromium/builders/ci/WebKit%20Linux%20Leak/2348
>
> Original change's description:
> > Re-write test pointerevent_pointermove_in_pointerlock.html
> >
> > The test was failing in wpt because it passing non-integer value to
> > test driver. This CL changes it to use "origin" instead.
> > This CL rewrites the test to makes it cleaner, instead of adding event
> > listener inside event listener.
> > This CL also changes the test to send the "move" events after receiving
> > pointerlockchange.
> >
> > Bug: 986277
> > Change-Id: I0f51523c3c90791339877b2e51afa8e9a4cc9d4d
> > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1717195
> > Reviewed-by: Lan Wei <lanwei@chromium.org>
> > Commit-Queue: Ella Ge <eirage@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#680563}
>
> TBR=lanwei@chromium.org,eirage@chromium.org
>
> Change-Id: Ia53d1066363ceaf804f61ada369a4126c859f875
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: 986277
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1716038
> Reviewed-by: Noel Gordon <noel@chromium.org>
> Commit-Queue: Noel Gordon <noel@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#680743}

TBR=noel@chromium.org,lanwei@chromium.org,eirage@chromium.org

Bug: 986277
Change-Id: I9b104597d2965261104e5842855ab235bdec8081
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1719227
Reviewed-by: Ella Ge <eirage@chromium.org>
Reviewed-by: Noel Gordon <noel@chromium.org>
Commit-Queue: Ella Ge <eirage@chromium.org>
Cr-Commit-Position: refs/heads/master@{#681360}

--

wpt-commits: 2bf3a6d07ee2350d763954327a73a5098fe4122a
wpt-pr: 18090
This commit is contained in:
Ella Ge 2019-08-01 14:37:01 +00:00 committed by moz-wptsync-bot
parent 9b564e15fb
commit 9ff8bec13c

View File

@ -27,61 +27,76 @@
<script>
window.name="outerframe";
var test_pointermove = async_test("pointermove event received");
PhaseEnum = {
Start: 0,
Lock1: 1,
Lock2: 2,
Done: 3,
};
function run() {
var target0 = document.getElementById("target0");
var innerframe = document.getElementById('innerframe');
var target1 = innerframe.contentDocument.getElementById('target1');
innerframe.contentWindow.name = "innerframe";
on_event(document, "pointerlockchange", function(event) {
if (document.pointerLockElement == target0) {
on_event(target0, "pointermove", function (event) {
test_pointermove.step(function() {
assert_equals(event.view.name, "outerframe", "View attribute of pointermove should be the target frame.");
}, "View attribute of pointermove should be the target frame.");
document.exitPointerLock();
on_event(target1, "click", function(event) {
target1.requestPointerLock();
});
on_event(innerframe.contentDocument, "pointerlockchange", function(event) {
if (innerframe.contentDocument.pointerLockElement == target1) {
on_event(target1, "pointermove", function (event) {
innerframe_pointermoveReceived = true;
test_pointermove.step(function() {
assert_equals(event.view.name, "innerframe", "View attribute of pointermove should be the target frame.");
}, "View attribute of pointermove should be the target frame.");
innerframe.contentDocument.exitPointerLock();
test_pointermove.done();
});
}
});
});
}
});
phase = PhaseEnum.Start;
on_event(target0, "click", function(event) {
target0.requestPointerLock();
});
var x = innerframe.getBoundingClientRect().x + target1.getBoundingClientRect().x;
var y = innerframe.getBoundingClientRect().y + target1.getBoundingClientRect().y;
// Inject mouse input
new test_driver.Actions()
.pointerMove(5, 5, {origin: target0})
.pointerDown()
.pointerUp()
.pointerMove(100, 300, {origin: target0})
.pointerMove(x+10, y+10)
.pointerDown()
.pointerUp()
.pointerMove(5, 5, {origin: target0})
.send();
on_event(target1, "click", function(event) {
target1.requestPointerLock();
});
on_event(target0, "pointermove", function (event) {
if (phase == PhaseEnum.Lock1) {
assert_equals(document.pointerLockElement, target0);
test_pointermove.step(function() {
assert_equals(event.view.name, "outerframe", "View attribute of pointermove should be the target frame.");
}, "View attribute of pointermove should be the target frame.");
document.exitPointerLock();
// Click the inner frame target to lock.
clickInTarget("mouse", target1);
}
});
on_event(target1, "pointermove", function (event) {
if (phase == PhaseEnum.Lock2) {
assert_equals(innerframe.contentDocument.pointerLockElement, target1);
test_pointermove.step(function() {
assert_equals(event.view.name, "innerframe", "View attribute of pointermove should be the target frame.");
}, "View attribute of pointermove should be the target frame.");
innerframe.contentDocument.exitPointerLock();
test_pointermove.done();
}
});
on_event(document, "pointerlockchange", function(event) {
if (phase == PhaseEnum.Start) {
assert_equals(document.pointerLockElement, target0);
phase++;
// Send moves in main frame target
new test_driver.Actions()
.pointerMove(10, 30, {origin: target0})
.send();
}
});
on_event(innerframe.contentDocument, "pointerlockchange", function(event) {
if (phase == PhaseEnum.Lock1) {
assert_equals(innerframe.contentDocument.pointerLockElement, target1);
phase++;
// Send moves in inner frame target
new test_driver.Actions()
.pointerMove(10, 30, {origin: target0})
.send();
}
});
// Click the outer frame target to lock.
clickInTarget("mouse", target0);
}
</script>
<div id="complete-notice">
</div>