mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
48 lines
1.5 KiB
JavaScript
48 lines
1.5 KiB
JavaScript
// 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.ensureShadowRoot) {
|
|
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.ensureShadowRoot();
|
|
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);
|
|
}
|
|
}
|