Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/mouse-pointer-capture.html

Issue 1774913004: Firing got/lost pointer capture events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Variable rename Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/mouse-pointer-capture-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/mouse-pointer-capture.html
diff --git a/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/mouse-pointer-capture.html b/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/mouse-pointer-capture.html
index dfaecf2475173c29d0eb614ae1ab93915f8513cf..d0bceb1171a64436c8df5784e560f87fa636d6d3 100644
--- a/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/mouse-pointer-capture.html
+++ b/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/mouse-pointer-capture.html
@@ -6,6 +6,10 @@ div.box {
padding: 20px;
float: left;
}
+#grey {
+ width: 50px;
+ height: 50px;
+}
</style>
<div id="grey" class="box" style="background-color:grey">
@@ -20,7 +24,9 @@ div.box {
<script>
description("Verifies that pointer capture works for mouse.");
-var implicitRelease = false;
+var implicitReleaseOutside = false;
+var explicitRelease = false;
+var removeElement = false;
var pointerMoveCount = 0;
var rect = document.getElementById("green").getBoundingClientRect();
@@ -37,8 +43,14 @@ var y3 = rect.top + 5;
function init() {
var eventList = ["mouseenter", "mouseleave", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup",
- "pointerenter", "pointerleave", "pointerover", "pointerout", "pointermove", "pointerdown", "pointerup"];
+ "pointerenter", "pointerleave", "pointerover", "pointerout", "pointermove", "pointerdown", "pointerup",
+ "gotpointercapture", "lostpointercapture"];
+ document.addEventListener("lostpointercapture", function(event) {
+ if (event.eventPhase == Event.AT_TARGET) {
+ debug("document received " + event.type);
+ }
+ });
["grey", "green", "blue"].forEach(function(id) {
var targetDiv = document.getElementById(id);
eventList.forEach(function(eventName) {
@@ -49,17 +61,21 @@ function init() {
debug(" **** Set Pointer Capture ***** ");
targetDiv.setPointerCapture(event.pointerId);
}
- if (implicitRelease && id == "green" && event.type == "pointermove") {
- if (pointerMoveCount++ > 3) {
+ if (id == "green" && event.type == "pointermove") {
+ if (explicitRelease && pointerMoveCount++ > 3) {
debug(" **** Release Pointer Capture ***** ");
targetDiv.releasePointerCapture(event.pointerId);
- implicitRelease = false;
+ explicitRelease = false;
+ }
+ if (removeElement && pointerMoveCount++ > 3) {
+ debug(" **** Remove Element ***** ");
+ targetDiv.parentNode.removeChild(targetDiv);
+ removeElement = false;
}
}
}
});
});
-
});
}
@@ -75,30 +91,55 @@ function testScenario() {
debug(" **** Move to blue box & jiggle ****");
eventSender.mouseMoveTo(x3, y3);
+
+ if (implicitReleaseOutside) {
+ debug(" **** Release the mouse outside of the page & move back to blue box ****");
+ eventSender.setMouseButtonState(-1, []);
+ }
eventSender.mouseMoveTo(x3+1, y3+1);
eventSender.mouseMoveTo(x3, y3);
-
- debug(" **** Move back to green & again to blue & mouse release ***** ");
- eventSender.mouseMoveTo(x1, y1);
- eventSender.mouseMoveTo(x3, y3);
- eventSender.mouseUp(1);
- debug(" **** Jiggle in blue box ***** ");
- eventSender.mouseMoveTo(x3+1, y3+1);
+ if (!implicitReleaseOutside) {
+ debug(" **** Move back to green & again to blue & mouse release ***** ");
+ eventSender.mouseMoveTo(x1, y1);
+ eventSender.mouseMoveTo(x3, y3);
+ eventSender.mouseUp(1);
+
+ debug(" **** Jiggle in blue box ***** ");
+ eventSender.mouseMoveTo(x3+1, y3+1);
+ }
debug(" **** Move to (0,0) ***** ");
eventSender.mouseMoveTo(0, 0);
+ eventSender.mouseDown(0);
+ eventSender.mouseUp(0);
+ eventSender.leapForward(500);
}
function runTests() {
- debug(" ======= Set pointer capture and release implicitly ======= ");
+ debug(" ======= Set pointer capture and release implicitly =======");
testScenario();
- implicitRelease = true;
+ implicitReleaseOutside = true;
debug("");
- debug(" ======= Set pointer capture and release explicitly ======= ");
+ debug(" ======= Set pointer capture and release implicitly outside of the page =======");
testScenario();
- }
+ implicitReleaseOutside = false;
+
+ explicitRelease = true;
+ pointerMoveCount = 0;
+ debug("");
+ debug(" ======= Set pointer capture and release explicitly =======");
+ testScenario();
+ explicitRelease = false;
+
+ removeElement = true;
+ pointerMoveCount = 0;
+ debug("");
+ debug(" ======= Set pointer capture and remove element =======");
+ testScenario();
+ removeElement = false;
+}
init();
if (window.eventSender)
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/mouse-pointer-capture-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698