Index: Source/web/tests/data/touch-action-tests.js |
diff --git a/Source/web/tests/data/touch-action-tests.js b/Source/web/tests/data/touch-action-tests.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a4dc17e3d59b5c243ea09de65796b4a802d3f5e7 |
--- /dev/null |
+++ b/Source/web/tests/data/touch-action-tests.js |
@@ -0,0 +1,48 @@ |
+// Disable compositor hit testing |
+document.addEventListener('touchstart', function() {}); |
+ |
+window.addEventListener('load', function() { |
+ // Create any shadow DOM nodes requested by the test. |
+ var shadowTrees = document.querySelectorAll('[make-shadow-dom]'); |
+ if (shadowTrees.length > 0 && !HTMLElement.prototype.createShadowRoot) { |
+ document.body.innerHTML = 'ERROR: Shadow DOM not supported!'; |
+ return; |
+ } |
+ for (var i = 0; i < shadowTrees.length; i++) { |
+ var tree = shadowTrees[i]; |
+ var host = tree.previousElementSibling; |
+ if (!host.hasAttribute('shadow-host')) { |
+ document.body.innerHTML = 'ERROR: make-shadow-dom node must follow a shadow-host node'; |
+ return; |
+ } |
+ tree.parentElement.removeChild(tree); |
+ var shadowRoot = host.createShadowRoot(); |
+ shadowRoot.applyAuthorStyles = true; |
+ shadowRoot.appendChild(tree); |
+ } |
+}); |
+ |
+/* |
+ * Visualization of hit test locations for manual testing. |
+ * To be invoked manually (so it doesn't intefere with testing). |
+ */ |
+function addMarker(x, y) |
+{ |
+ const kMarkerSize = 6; |
+ var marker = document.createElement('div'); |
+ marker.className = 'marker'; |
+ marker.style.top = (y - kMarkerSize/2) + 'px'; |
+ marker.style.left = (x - kMarkerSize/2) + 'px'; |
+ document.body.appendChild(marker); |
+} |
+ |
+function addMarkers() |
+{ |
+ var tests = document.querySelectorAll('[expected-action]'); |
+ for (var i = 0; i < tests.length; i++) { |
+ var r = tests[i].getClientRects()[0]; |
+ addMarker(r.left, r.top); |
+ addMarker(r.right - 1, r.bottom - 1); |
+ addMarker(r.left + r.width / 2, r.top + r.height / 2); |
+ } |
+} |