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

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
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..21360354caf4457fdccfd1e168ad0ac7bba8b3ff
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/virtual/pointerevent/fast/events/pointerevents/touch-capture-in-iframe.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML>
+<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>
+
+<body>
+<div id='outerFrame'>
+<iframe id='target' 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>
+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 runTests() {
+ // touch events inside iframe
+
+ debug('*** First touch down in innerFrame and move ***');
+ eventSender.addTouchPoint(200, 200)
+ eventSender.touchStart();
+ eventSender.updateTouchPoint(0, 200, 200);
+ eventSender.touchMove();
+ dumpEvents();
+ debug('');
+
+ debug('*** Second touch down in outerFrame ***');
+ eventSender.addTouchPoint(20, 20)
+ eventSender.touchStart();
+ dumpEvents();
+ debug('');
+
+ debug('*** Second touch move in outerFrame ***');
+ eventSender.updateTouchPoint(1, 40, 40);
+ eventSender.touchMove();
+ dumpEvents();
+ debug('');
+
+ debug('*** Second touch move into innerFrame ***');
+ eventSender.updateTouchPoint(1, 100, 200);
+ eventSender.touchMove();
+ dumpEvents();
+ debug('');
+
+ debug('*** First touch move in innerFrame ***');
+ eventSender.updateTouchPoint(0, 250, 250);
+ eventSender.touchMove();
+ dumpEvents();
+ debug('');
+
+ debug('*** First touch move out of innerFrame ***');
+ eventSender.updateTouchPoint(0, 20, 20);
+ eventSender.touchMove();
+ dumpEvents();
+ debug('');
+
+ debug('*** Releasing touches ***');
+ eventSender.releaseTouchPoint(0);
+ eventSender.releaseTouchPoint(1);
+ eventSender.touchEnd();
+ dumpEvents();
+ debug('');
+
+ testRunner.notifyDone();
+}
+
+function dumpEvents()
+{
+ document.events.forEach(function(event) {
+ if (event.type.includes('pointer')) {
+ debug(event.target.id + ' recieved ' + event.type);
+ } 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);
+ }
+ }
+ });
+ document.events = [];
+}
+
+if (window.eventSender) {
+ testRunner.waitUntilDone();
+ window.onload = runTests;
+} else
+ debug('This test requires eventSender');
+
+description("This test verifies clientX/Y of pointer events inside iframe.");
+
+</script>
+</body>

Powered by Google App Engine
This is Rietveld 408576698