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

Unified Diff: third_party/WebKit/LayoutTests/fast/events/touch/touch-handler-count.html

Issue 1884863003: Non passive touch end or touch cancel listeners should not block scroll. (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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/fast/events/touch/touch-handler-count.html
diff --git a/third_party/WebKit/LayoutTests/fast/events/touch/touch-handler-count.html b/third_party/WebKit/LayoutTests/fast/events/touch/touch-handler-count.html
index 7cf88e8f7ec042942d72359252892e7fcb3d6351..99c036514df4a694aa1531f15f3a34195c5f152e 100644
--- a/third_party/WebKit/LayoutTests/fast/events/touch/touch-handler-count.html
+++ b/third_party/WebKit/LayoutTests/fast/events/touch/touch-handler-count.html
@@ -36,17 +36,24 @@ debug("Test setting touch handlers on the document.");
document.ontouchmove = function() {}
document.ontouchend = function() {}
document.ontouchcancel = function() {}
- shouldBe('window.internals.touchEventHandlerCount(document)', '4');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
document.ontouchstart = function() { }
- shouldBe('window.internals.touchEventHandlerCount(document)', '4');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
document.ontouchstart = null;
- shouldBe('window.internals.touchEventHandlerCount(document)', '3');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
document.ontouchstart = null;
- shouldBe('window.internals.touchEventHandlerCount(document)', '3');
- document.ontouchmove = null;
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
document.ontouchend = null;
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
+ document.ontouchmove = null;
document.ontouchcancel = null;
shouldBe('window.internals.touchEventHandlerCount(document)', '0');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '0');
})();
debug("Test addEventListener/removeEventListener on the window.");
@@ -82,17 +89,24 @@ debug("Test setting touch handlers on the window.");
window.ontouchmove = function() {}
window.ontouchend = function() {}
window.ontouchcancel = function() {}
- shouldBe('window.internals.touchEventHandlerCount(document)', '4');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
window.ontouchstart = function() { }
- shouldBe('window.internals.touchEventHandlerCount(document)', '4');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
window.ontouchstart = null;
- shouldBe('window.internals.touchEventHandlerCount(document)', '3');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
window.ontouchstart = null;
- shouldBe('window.internals.touchEventHandlerCount(document)', '3');
- window.ontouchmove = null;
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
window.ontouchend = null;
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
+ window.ontouchmove = null;
window.ontouchcancel = null;
shouldBe('window.internals.touchEventHandlerCount(document)', '0');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '0');
})();
debug("Test addEventListener/removeEventListener on a div.");
@@ -131,17 +145,24 @@ debug("Test setting touch handlers on a div.");
div.ontouchmove = function() { }
div.ontouchend = function() { }
div.ontouchcancel = function() { }
- shouldBe('window.internals.touchEventHandlerCount(document)', '4');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
div.ontouchstart = function() { }
- shouldBe('window.internals.touchEventHandlerCount(document)', '4');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
div.ontouchstart = null;
- shouldBe('window.internals.touchEventHandlerCount(document)', '3');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
div.ontouchstart = null;
- shouldBe('window.internals.touchEventHandlerCount(document)', '3');
- div.ontouchmove = null;
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
div.ontouchend = null;
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
+ div.ontouchmove = null;
div.ontouchcancel = null;
shouldBe('window.internals.touchEventHandlerCount(document)', '0');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '0');
})();
debug("Test redudant addEventListener on a div.");
@@ -167,29 +188,34 @@ debug("Test addEventListener/removeEventListener on a new div.");
var listener = function() { }
shouldBe('window.internals.touchEventHandlerCount(document)', '0');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '0');
div.addEventListener('touchstart', listener, true);
div.addEventListener('touchmove', listener, true);
shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '0');
touchtarget.appendChild(div);
shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '0');
div.addEventListener('touchend', listener, true);
- shouldBe('window.internals.touchEventHandlerCount(document)', '3');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
div.removeEventListener('touchstart', listener, true);
- shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
touchtarget.removeChild(div);
- shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
div.removeEventListener('touchmove', listener, false);
- shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
div.removeEventListener('touchmove', listener, true);
div.removeEventListener('touchend', listener, true);
shouldBe('window.internals.touchEventHandlerCount(document)', '0');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '0');
})();
debug("Test setting touch handlers on a new div.");
@@ -205,19 +231,24 @@ debug("Test setting touch handlers on a new div.");
touchtarget.appendChild(div);
shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '0');
div.ontouchend = function() { }
- shouldBe('window.internals.touchEventHandlerCount(document)', '3');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
div.ontouchstart = null;
- shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
touchtarget.removeChild(div);
- shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
div.ontouchend = null;
div.ontouchmove = null;
shouldBe('window.internals.touchEventHandlerCount(document)', '0');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '0');
})();
var nestedDocument;
@@ -228,7 +259,8 @@ debug("Test that nested Documents' touch handlers are properly tracked in their
var touchtarget = document.getElementById('touchtarget');
touchtarget.ontouchend = function() {};
- shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '0');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
touchtarget.appendChild(iframe);
@@ -236,25 +268,34 @@ debug("Test that nested Documents' touch handlers are properly tracked in their
nestedDocument.open('text/html', 'replace');
nestedDocument.write('<!DOCTYPE html>\n<script>\nwindow.ontouchstart=function(){};\n</' + 'script>\n' +
'<div id=twoHandlers ontouchmove="function(){}" ontouchcancel="function(){}"></div>');
- shouldBe('window.internals.touchEventHandlerCount(nestedDocument)', '4');
- shouldBe('window.internals.touchEventHandlerCount(document)', '4');
+ shouldBe('window.internals.touchEventHandlerCount(nestedDocument)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(nestedDocument)', '2');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
nestedDocument.write('<script>window.ontouchstart=undefined</' + 'script>\n');
- shouldBe('window.internals.touchEventHandlerCount(nestedDocument)', '3');
- shouldBe('window.internals.touchEventHandlerCount(document)', '3');
+ shouldBe('window.internals.touchEventHandlerCount(nestedDocument)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(nestedDocument)', '2');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
nestedDocument.write('<script>document.addEventListener("touchmove", function(){});</' + 'script>\n');
- shouldBe('window.internals.touchEventHandlerCount(nestedDocument)', '4');
- shouldBe('window.internals.touchEventHandlerCount(document)', '4');
+ shouldBe('window.internals.touchEventHandlerCount(nestedDocument)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(nestedDocument)', '2');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '2');
nestedDocument.write('<script>document.getElementById("twoHandlers").remove();</' + 'script>\n');
gc();
- shouldBe('window.internals.touchEventHandlerCount(nestedDocument)', '2');
- shouldBe('window.internals.touchEventHandlerCount(document)', '2');
+ shouldBe('window.internals.touchEventHandlerCount(nestedDocument)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(nestedDocument)', '1');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
nestedDocument.close();
touchtarget.removeChild(iframe);
- shouldBe('window.internals.touchEventHandlerCount(document)', '1');
+ shouldBe('window.internals.touchEventHandlerCount(document)', '0');
+ shouldBe('window.internals.touchEndOrCancelEventHandlerCount(document)', '1');
})();
</script>
</body>

Powered by Google App Engine
This is Rietveld 408576698