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

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

Issue 1971473002: Move touch hit testing to PointerEventManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 <script src='../../../../../resources/js-test.js'></script>
2 <style>
3 iframe {
4 width: 300px;
5 height: 300px;
6 top: 100px;
7 left: 50px;
8 border: 0;
9 position: absolute;
10 background: green;
11 }
12 #outerFrame {
13 width: 500px;
14 height: 500px;
15 background: blue;
16 }
17 </style>
18
19 <div id='outerFrame'>
20 <iframe id='innerFrameElement' srcdoc="
21 <body id='innerFrame' style='height:500px; width: 500px; padding: 0; margin: 0 ;'>
22 <script>
23 top.document.testEventList.forEach(function(eventName) {
24 document.documentElement.addEventListener(eventName, function(event) {
25 top.document.events.push(event);
26 });
27 });
28 </script>
29 </body>">
30 </iframe>
31 </div>
32
33 <div id='console'></div>
34
35 <script>
36 var outerFrameX = 20;
37 var outerFrameY = 20;
38 var innerFrameX = 200;
39 var innerFrameY = 200;
40
41 document.testEventList = ['pointerup', 'pointerdown', 'pointermove', 'gotpointer capture', 'lostpointercapture', 'pointercancel',
42 'touchstart', 'touchmove', 'touchend'];
43 document.testEventList.forEach(function(eventName) {
44 document.getElementById('outerFrame').addEventListener(eventName, function(eve nt) {
45 document.events.push(event);
46 });
47 });
48
49 var attributes = [
50 'target'
51 ];
52
53 document.events = [];
54
55 function testScenario(firstFingerInitFrame, secondFingerInitFrame) {
56 var firstFingerX1 = firstFingerInitFrame == "innerFrame" ? innerFrameX : outer FrameX;
57 var firstFingerY1 = firstFingerInitFrame == "innerFrame" ? innerFrameY : outer FrameY;
58 var firstFingerX2 = firstFingerInitFrame == "outerFrame" ? innerFrameX : outer FrameX;
59 var firstFingerY2 = firstFingerInitFrame == "outerFrame" ? innerFrameY : outer FrameY;
60 var secondFingerX1 = secondFingerInitFrame == "innerFrame" ? innerFrameX : out erFrameX;
61 var secondFingerY1 = secondFingerInitFrame == "innerFrame" ? innerFrameY : out erFrameY;
62 var secondFingerX2 = secondFingerInitFrame == "outerFrame" ? innerFrameX : out erFrameX;
63 var secondFingerY2 = secondFingerInitFrame == "outerFrame" ? innerFrameY : out erFrameY;
64 var firstFingerFinalFrame = (firstFingerInitFrame == 'innerFrame') ? 'outerFra me' : 'innerFrame';
65 var secondFingerFinalFrame = (secondFingerInitFrame == 'innerFrame') ? 'outerF rame' : 'innerFrame';
66
67 debug('==== Finger1 in ' + firstFingerInitFrame + ' and Finger2 in ' + secondF ingerInitFrame + ' ====');
68 debug('*** Put first finger down in ' + firstFingerInitFrame + ' and move ***' );
69 eventSender.addTouchPoint(firstFingerX1, firstFingerY1);
70 eventSender.touchStart();
71 eventSender.updateTouchPoint(0, firstFingerX1, firstFingerY1);
72 eventSender.touchMove();
73 dumpEvents();
74
75 debug('*** Put second finger in ' + secondFingerInitFrame + ' and move ***');
76 eventSender.addTouchPoint(secondFingerX1, secondFingerY1);
77 eventSender.touchStart();
78 eventSender.updateTouchPoint(1, secondFingerX1, secondFingerY1);
79 eventSender.touchMove();
80 dumpEvents();
81
82 debug('*** Move first finger to ' + firstFingerFinalFrame + ' ***');
83 eventSender.updateTouchPoint(0, firstFingerX2, firstFingerY2);
84 eventSender.touchMove();
85 dumpEvents();
86
87 debug('*** Move second finger to ' + secondFingerFinalFrame + ' ***');
88 eventSender.updateTouchPoint(1, secondFingerX2, secondFingerY2);
89 eventSender.touchMove();
90 dumpEvents();
91
92 debug('*** Releasing fingers ***');
93 eventSender.releaseTouchPoint(0);
94 eventSender.releaseTouchPoint(1);
95 eventSender.touchEnd();
96 dumpEvents();
97 }
98
99 function runTests() {
100 testScenario('innerFrame', 'outerFrame');
101 testScenario('outerFrame', 'innerFrame');
102 testScenario('innerFrame', 'innerFrame');
103 testScenario('outerFrame', 'outerFrame');
104 testRunner.notifyDone();
105 }
106
107 function dumpEvents()
108 {
109 document.events.forEach(function(event) {
110 if (event.type.includes('pointer')) {
111 debug(event.target.id + ' recieved ' + event.type + ' with id=' + event.po interId);
112 } else if (event.type.startsWith('touch')) {
113 debug(event.type + ' is recieved with changedTouches.length=' + event.chan gedTouches.length + ':');
114 for(var i=0; i<event.changedTouches.length; i++) {
115 debug(' Touch with id=' + event.changedTouches[i].identifier + ' with t arget = ' + event.changedTouches[i].target.id);
116 }
117 }
118 });
119 debug('');
120 document.events = [];
121 }
122
123 if (window.eventSender) {
124 testRunner.waitUntilDone();
125 window.onload = runTests;
126 } else
127 debug('This test requires eventSender');
128
129 description("This test verifies touch and corresponding pointerevent targets ins ide and outside the iframe.");
130
131 </script>
132
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture-in-iframe-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698