1a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)// Disable compositor hit testing
2a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)document.addEventListener('touchstart', function() {});
3a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)
4a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)window.addEventListener('load', function() {
5a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)  // Create any shadow DOM nodes requested by the test.
6a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)  var shadowTrees = document.querySelectorAll('[make-shadow-dom]');
7a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)  if (shadowTrees.length > 0 && !HTMLElement.prototype.createShadowRoot) {
8a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    document.body.innerHTML = 'ERROR: Shadow DOM not supported!';
9a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    return;
10a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)  }
11a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)  for (var i = 0; i < shadowTrees.length; i++) {
12a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    var tree = shadowTrees[i];
13a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    var host = tree.previousElementSibling;
14a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    if (!host.hasAttribute('shadow-host')) {
15a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)      document.body.innerHTML = 'ERROR: make-shadow-dom node must follow a shadow-host node';
16a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)      return;
17a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    }
18a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    tree.parentElement.removeChild(tree);
19a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    var shadowRoot = host.createShadowRoot();
20a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    shadowRoot.appendChild(tree);
21a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)  }
22a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)});
23a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)
24a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)/*
25a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * Visualization of hit test locations for manual testing.
26a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) * To be invoked manually (so it doesn't intefere with testing).
27a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles) */
28a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)function addMarker(x, y)
29a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles){
30a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    const kMarkerSize = 6;
31a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    var marker = document.createElement('div');
32a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    marker.className = 'marker';
33a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    marker.style.top = (y - kMarkerSize/2) + 'px';
34a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    marker.style.left = (x - kMarkerSize/2) + 'px';
35a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    document.body.appendChild(marker);
36a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)}
37a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)
38a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)function addMarkers()
39a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles){
40a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)  var tests = document.querySelectorAll('[expected-action]');
41a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)  for (var i = 0; i < tests.length; i++) {
42a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    var r = tests[i].getClientRects()[0];
43a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    addMarker(r.left, r.top);
44a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    addMarker(r.right - 1, r.bottom - 1);
45a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)    addMarker(r.left + r.width / 2, r.top + r.height / 2);
46a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)  }
47a854de003a23bf3c7f95ec0f8154ada64092ff5cTorne (Richard Coles)}
48