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

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

Issue 2098883002: Make PointerEvent an experimental web platform feature. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased, fixed js path. Created 4 years, 5 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.addEventListener(eventName, function(event) {
25
26 // TODO(crbug.com/449649): Due to inconsistency of the frame vs page
27 // event handling in EventHandler the releasePointerCapture and setPoi nterCapture
28 // do not work inside the iframe for touch pointer events.
29
30 top.logEvent(event);
31 });
32 });
33 </script>
34 </body>">
35 </iframe>
36 </div>
37
38 <div id='console'></div>
39
40 <script>
41 var outerFrameX = 20;
42 var outerFrameY = 20;
43 var innerFrameX = 200;
44 var innerFrameY = 200;
45
46 function logEvent(event) {
47 if (event.type.includes('pointer')) {
48 debug(event.target.id + ' recieved ' + event.type + ' with id=' + event.poin terId);
49 } else if (event.type.startsWith('touch')) {
50 debug(event.type + ' is recieved with changedTouches.length=' + event.change dTouches.length + ':');
51 for(var i=0; i<event.changedTouches.length; i++) {
52 debug(' Touch with id=' + event.changedTouches[i].identifier + ' with tar get = ' + event.changedTouches[i].target.id);
53 }
54 }
55 }
56
57 document.testEventList = ['pointerup', 'pointerdown', 'pointermove', 'gotpointer capture', 'lostpointercapture', 'pointercancel',
58 'touchstart', 'touchmove', 'touchend'];
59 document.testEventList.forEach(function(eventName) {
60 document.getElementById('outerFrame').addEventListener(eventName, function(eve nt) {
61 if (document.releaseTouchCapture && event.type == 'pointerdown') {
62 debug('--- Release pointer capture for ' + event.pointerId + ' ---');
63 event.target.releasePointerCapture(event.pointerId);
64 }
65 logEvent(event);
66 });
67 });
68
69 document.releaseTouchCapture = true;
70
71 function testScenario(firstFingerInitFrame, secondFingerInitFrame, releaseTouchC apture) {
72 document.releaseTouchCapture = releaseTouchCapture;
73 var firstFingerX1 = firstFingerInitFrame == "innerFrame" ? innerFrameX : outer FrameX;
74 var firstFingerY1 = firstFingerInitFrame == "innerFrame" ? innerFrameY : outer FrameY;
75 var firstFingerX2 = firstFingerInitFrame == "outerFrame" ? innerFrameX : outer FrameX;
76 var firstFingerY2 = firstFingerInitFrame == "outerFrame" ? innerFrameY : outer FrameY;
77 var secondFingerX1 = secondFingerInitFrame == "innerFrame" ? innerFrameX : out erFrameX;
78 var secondFingerY1 = secondFingerInitFrame == "innerFrame" ? innerFrameY : out erFrameY;
79 var secondFingerX2 = secondFingerInitFrame == "outerFrame" ? innerFrameX : out erFrameX;
80 var secondFingerY2 = secondFingerInitFrame == "outerFrame" ? innerFrameY : out erFrameY;
81 var firstFingerFinalFrame = (firstFingerInitFrame == 'innerFrame') ? 'outerFra me' : 'innerFrame';
82 var secondFingerFinalFrame = (secondFingerInitFrame == 'innerFrame') ? 'outerF rame' : 'innerFrame';
83
84 debug('==== Finger1 in ' + firstFingerInitFrame + ' and Finger2 in ' + secondF ingerInitFrame + (releaseTouchCapture ? ' with releaseTouchCapture' : '') + ' == ==');
85 debug('*** Put first finger down in ' + firstFingerInitFrame + ' and move ***' );
86 eventSender.addTouchPoint(firstFingerX1, firstFingerY1);
87 eventSender.touchStart();
88 eventSender.updateTouchPoint(0, firstFingerX1, firstFingerY1);
89 eventSender.touchMove();
90 debug('');
91
92 debug('*** Put second finger in ' + secondFingerInitFrame + ' and move ***');
93 eventSender.addTouchPoint(secondFingerX1, secondFingerY1);
94 eventSender.touchStart();
95 eventSender.updateTouchPoint(1, secondFingerX1, secondFingerY1);
96 eventSender.touchMove();
97 debug('');
98
99 debug('*** Move first finger to ' + firstFingerFinalFrame + ' ***');
100 eventSender.updateTouchPoint(0, firstFingerX2, firstFingerY2);
101 eventSender.touchMove();
102 debug('');
103
104 debug('*** Move second finger to ' + secondFingerFinalFrame + ' ***');
105 eventSender.updateTouchPoint(1, secondFingerX2, secondFingerY2);
106 eventSender.touchMove();
107 debug('');
108
109 debug('*** Releasing fingers ***');
110 eventSender.releaseTouchPoint(0);
111 eventSender.releaseTouchPoint(1);
112 eventSender.touchEnd();
113 debug('');
114 }
115
116 function runTests() {
117 testScenario('innerFrame', 'outerFrame', false);
118 testScenario('outerFrame', 'innerFrame', false);
119 testScenario('innerFrame', 'innerFrame', false);
120 testScenario('outerFrame', 'outerFrame', false);
121
122 testScenario('innerFrame', 'outerFrame', true);
123 testScenario('outerFrame', 'innerFrame', true);
124 testScenario('innerFrame', 'innerFrame', true);
125 testScenario('outerFrame', 'outerFrame', true);
126 testRunner.notifyDone();
127 }
128
129 if (window.eventSender) {
130 testRunner.waitUntilDone();
131 window.onload = runTests;
132 } else
133 debug('This test requires eventSender');
134
135 description("This test verifies touch and corresponding pointerevent targets ins ide and outside the iframe.");
136
137 </script>
138
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698