Commit db20b64e authored by Ella Ge's avatar Ella Ge Committed by Commit Bot

Reland "Re-write test pointerevent_pointermove_in_pointerlock.html"

This reverts commit 02efc0f4.

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 9b7bafff.
> 
> 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/+/1719227Reviewed-by: default avatarElla Ge <eirage@chromium.org>
Reviewed-by: default avatarNoel Gordon <noel@chromium.org>
Commit-Queue: Ella Ge <eirage@chromium.org>
Cr-Commit-Position: refs/heads/master@{#681360}
parent 7f8da333
...@@ -27,61 +27,76 @@ ...@@ -27,61 +27,76 @@
<script> <script>
window.name="outerframe"; window.name="outerframe";
var test_pointermove = async_test("pointermove event received"); var test_pointermove = async_test("pointermove event received");
PhaseEnum = {
Start: 0,
Lock1: 1,
Lock2: 2,
Done: 3,
};
function run() { function run() {
var target0 = document.getElementById("target0"); var target0 = document.getElementById("target0");
var innerframe = document.getElementById('innerframe'); var innerframe = document.getElementById('innerframe');
var target1 = innerframe.contentDocument.getElementById('target1'); var target1 = innerframe.contentDocument.getElementById('target1');
innerframe.contentWindow.name = "innerframe"; innerframe.contentWindow.name = "innerframe";
phase = PhaseEnum.Start;
on_event(document, "pointerlockchange", function(event) { on_event(target0, "click", function(event) {
if (document.pointerLockElement == target0) { target0.requestPointerLock();
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) { on_event(target1, "click", function(event) {
target1.requestPointerLock(); target1.requestPointerLock();
}); });
on_event(innerframe.contentDocument, "pointerlockchange", function(event) { on_event(target0, "pointermove", function (event) {
if (innerframe.contentDocument.pointerLockElement == target1) { if (phase == PhaseEnum.Lock1) {
on_event(target1, "pointermove", function (event) { assert_equals(document.pointerLockElement, target0);
innerframe_pointermoveReceived = true; test_pointermove.step(function() {
test_pointermove.step(function() { assert_equals(event.view.name, "outerframe", "View attribute of pointermove should be the target frame.");
assert_equals(event.view.name, "innerframe", "View attribute of pointermove should be the target frame."); }, "View attribute of pointermove should be the target frame.");
}, "View attribute of pointermove should be the target frame."); document.exitPointerLock();
innerframe.contentDocument.exitPointerLock(); // Click the inner frame target to lock.
test_pointermove.done(); clickInTarget("mouse", target1);
});
}
});
});
} }
}); });
on_event(target0, "click", function(event) { on_event(target1, "pointermove", function (event) {
target0.requestPointerLock(); 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();
}
}); });
var x = innerframe.getBoundingClientRect().x + target1.getBoundingClientRect().x; on_event(document, "pointerlockchange", function(event) {
var y = innerframe.getBoundingClientRect().y + target1.getBoundingClientRect().y; if (phase == PhaseEnum.Start) {
// Inject mouse input assert_equals(document.pointerLockElement, target0);
new test_driver.Actions() phase++;
.pointerMove(5, 5, {origin: target0}) // Send moves in main frame target
.pointerDown() new test_driver.Actions()
.pointerUp() .pointerMove(10, 30, {origin: target0})
.pointerMove(100, 300, {origin: target0}) .send();
.pointerMove(x+10, y+10) }
.pointerDown() });
.pointerUp()
.pointerMove(5, 5, {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> </script>
<div id="complete-notice"> <div id="complete-notice">
</div> </div>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment