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

Unified 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 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/touch-capture-in-iframe-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/touch-capture-in-iframe.html
diff --git a/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture-in-iframe.html b/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture-in-iframe.html
new file mode 100644
index 0000000000000000000000000000000000000000..29bcac73ca6398b2806d59e672e82b22e967fd63
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture-in-iframe.html
@@ -0,0 +1,132 @@
+<script src='../../../../../resources/js-test.js'></script>
+<style>
+iframe {
+ width: 300px;
+ height: 300px;
+ top: 100px;
+ left: 50px;
+ border: 0;
+ position: absolute;
+ background: green;
+}
+#outerFrame {
+ width: 500px;
+ height: 500px;
+ background: blue;
+}
+</style>
+
+<div id='outerFrame'>
+<iframe id='innerFrameElement' srcdoc="
+ <body id='innerFrame' style='height:500px; width: 500px; padding: 0; margin: 0;'>
+ <script>
+ top.document.testEventList.forEach(function(eventName) {
+ document.documentElement.addEventListener(eventName, function(event) {
+ top.document.events.push(event);
+ });
+ });
+ </script>
+ </body>">
+</iframe>
+</div>
+
+<div id='console'></div>
+
+<script>
+var outerFrameX = 20;
+var outerFrameY = 20;
+var innerFrameX = 200;
+var innerFrameY = 200;
+
+document.testEventList = ['pointerup', 'pointerdown', 'pointermove', 'gotpointercapture', 'lostpointercapture', 'pointercancel',
+ 'touchstart', 'touchmove', 'touchend'];
+document.testEventList.forEach(function(eventName) {
+ document.getElementById('outerFrame').addEventListener(eventName, function(event) {
+ document.events.push(event);
+ });
+});
+
+var attributes = [
+ 'target'
+];
+
+document.events = [];
+
+function testScenario(firstFingerInitFrame, secondFingerInitFrame) {
+ var firstFingerX1 = firstFingerInitFrame == "innerFrame" ? innerFrameX : outerFrameX;
+ var firstFingerY1 = firstFingerInitFrame == "innerFrame" ? innerFrameY : outerFrameY;
+ var firstFingerX2 = firstFingerInitFrame == "outerFrame" ? innerFrameX : outerFrameX;
+ var firstFingerY2 = firstFingerInitFrame == "outerFrame" ? innerFrameY : outerFrameY;
+ var secondFingerX1 = secondFingerInitFrame == "innerFrame" ? innerFrameX : outerFrameX;
+ var secondFingerY1 = secondFingerInitFrame == "innerFrame" ? innerFrameY : outerFrameY;
+ var secondFingerX2 = secondFingerInitFrame == "outerFrame" ? innerFrameX : outerFrameX;
+ var secondFingerY2 = secondFingerInitFrame == "outerFrame" ? innerFrameY : outerFrameY;
+ var firstFingerFinalFrame = (firstFingerInitFrame == 'innerFrame') ? 'outerFrame' : 'innerFrame';
+ var secondFingerFinalFrame = (secondFingerInitFrame == 'innerFrame') ? 'outerFrame' : 'innerFrame';
+
+ debug('==== Finger1 in ' + firstFingerInitFrame + ' and Finger2 in ' + secondFingerInitFrame + ' ====');
+ debug('*** Put first finger down in ' + firstFingerInitFrame + ' and move ***');
+ eventSender.addTouchPoint(firstFingerX1, firstFingerY1);
+ eventSender.touchStart();
+ eventSender.updateTouchPoint(0, firstFingerX1, firstFingerY1);
+ eventSender.touchMove();
+ dumpEvents();
+
+ debug('*** Put second finger in ' + secondFingerInitFrame + ' and move ***');
+ eventSender.addTouchPoint(secondFingerX1, secondFingerY1);
+ eventSender.touchStart();
+ eventSender.updateTouchPoint(1, secondFingerX1, secondFingerY1);
+ eventSender.touchMove();
+ dumpEvents();
+
+ debug('*** Move first finger to ' + firstFingerFinalFrame + ' ***');
+ eventSender.updateTouchPoint(0, firstFingerX2, firstFingerY2);
+ eventSender.touchMove();
+ dumpEvents();
+
+ debug('*** Move second finger to ' + secondFingerFinalFrame + ' ***');
+ eventSender.updateTouchPoint(1, secondFingerX2, secondFingerY2);
+ eventSender.touchMove();
+ dumpEvents();
+
+ debug('*** Releasing fingers ***');
+ eventSender.releaseTouchPoint(0);
+ eventSender.releaseTouchPoint(1);
+ eventSender.touchEnd();
+ dumpEvents();
+}
+
+function runTests() {
+ testScenario('innerFrame', 'outerFrame');
+ testScenario('outerFrame', 'innerFrame');
+ testScenario('innerFrame', 'innerFrame');
+ testScenario('outerFrame', 'outerFrame');
+ testRunner.notifyDone();
+}
+
+function dumpEvents()
+{
+ document.events.forEach(function(event) {
+ if (event.type.includes('pointer')) {
+ debug(event.target.id + ' recieved ' + event.type + ' with id=' + event.pointerId);
+ } else if (event.type.startsWith('touch')) {
+ debug(event.type + ' is recieved with changedTouches.length=' + event.changedTouches.length + ':');
+ for(var i=0; i<event.changedTouches.length; i++) {
+ debug(' Touch with id=' + event.changedTouches[i].identifier + ' with target = ' + event.changedTouches[i].target.id);
+ }
+ }
+ });
+ debug('');
+ document.events = [];
+}
+
+if (window.eventSender) {
+ testRunner.waitUntilDone();
+ window.onload = runTests;
+} else
+ debug('This test requires eventSender');
+
+description("This test verifies touch and corresponding pointerevent targets inside and outside the iframe.");
+
+</script>
+
« 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