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

Side by Side Diff: third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture.html

Issue 1838973003: Send lostpointercapture on touch capturing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE HTML>
2 <script src="../../../../../resources/js-test.js"></script>
3 <style>
4 div.box {
5 margin: 5px;
6 padding: 20px;
7 float: left;
8 }
9 #grey {
10 width: 50px;
11 height: 50px;
12 }
13 </style>
14
15 <div id="grey" class="box" style="background-color:grey">
16 <div id="green" class="box" style="background-color:green;">
17 </div>
18 </div>
19 <div id="blue" class="box" style="background-color:blue;">
20 </div>
21
22 <div id="console"></div>
23
24 <script>
25 description("Verifies that pointer capture works for touch.");
26
27 var touchCancel = false;
28
29 var rect = document.getElementById("green").getBoundingClientRect();
30 var x1 = rect.left + 5;
31 var y1 = rect.top + 5;
32
33 var rect = document.getElementById("grey").getBoundingClientRect();
34 var x2 = rect.left + 5;
35 var y2 = rect.top + 5;
36
37 var rect = document.getElementById("blue").getBoundingClientRect();
38 var x3 = rect.left + 5;
39 var y3 = rect.top + 5;
40
41 function init() {
42 var eventList = ["pointerenter", "pointerleave", "pointerover", "pointerout", "pointermove", "pointerdown", "pointerup", "pointercancel",
mustaq 2016/03/30 21:21:54 Please add touchstart/end/move in this list.
Navid Zolghadr 2016/03/31 16:22:25 Done.
43 "gotpointercapture", "lostpointercapture"];
44
45 document.addEventListener("lostpointercapture", function(event) {
46 if (event.eventPhase == Event.AT_TARGET) {
47 debug("document received " + event.type);
48 }
49 });
50 ["grey", "green", "blue"].forEach(function(id) {
51 var targetDiv = document.getElementById(id);
52 eventList.forEach(function(eventName) {
53 targetDiv.addEventListener(eventName, function(event) {
54 if (event.eventPhase == Event.AT_TARGET) {
55 debug(id + " received " + event.type);
56 }
57 });
58 });
59 });
60 }
61
62 function testScenario() {
63 debug(" **** First touch on green box & jiggle ***** ");
64 eventSender.addTouchPoint(x1, y1)
65 eventSender.touchStart();
66 eventSender.updateTouchPoint(0, x1+1, y1+1);
67 eventSender.touchMove();
68
69 debug(" **** Move to grey box & jiggle ***** ");
mustaq 2016/03/30 21:21:54 The "grey" touch activity doesn't add any value I
Navid Zolghadr 2016/03/31 16:22:25 Done.
70 eventSender.updateTouchPoint(0, x2, y2);
71 eventSender.touchMove();
72 eventSender.updateTouchPoint(0, x2+1, y2+1);
73 eventSender.touchMove();
74
75 debug(" **** Move to blue box & jiggle ****");
76 eventSender.updateTouchPoint(0, x3, y3);
77 eventSender.touchMove();
78 eventSender.updateTouchPoint(0, x3+1, y3+1);
79 eventSender.touchMove();
80
81 if (touchCancel) {
82 debug(" **** Cancel touch ***** ");
83 eventSender.cancelTouchPoint(0);
84 eventSender.touchCancel();
85 } else {
86 debug(" **** Release touch ***** ");
87 eventSender.releaseTouchPoint(0);
88 eventSender.touchEnd();
89 }
90
91 debug("");
92 }
93
94 function runTests() {
95 debug(" ======= Touch and release =======");
96 testScenario();
97
98 touchCancel = true
99 debug(" ======= Touch and cancel =======");
100 testScenario();
101 touchCancel = false;
102
mustaq 2016/03/30 21:21:54 Please add a multitouch case: touch+drag on G & B,
Navid Zolghadr 2016/03/31 16:22:25 Is this what you meant?
103 }
104
105 init();
106 if (window.eventSender)
107 runTests();
108 else
109 debug("This test requires eventSender");
110
111 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698