blob: 8734990f5b0a8a66e1ba8ada33c9c0903a37e38d [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="../resources/runner.js"></script>
</head>
<body>
<div id="root"></div>
<script>
function createComposedTree(root, depth, branch, eachTreeHeight)
{
var node = root;
var i;
for (i = 0; i < eachTreeHeight; ++i) {
var child = document.createElement('div');
node.appendChild(child);
node = child;
}
if (depth == 1)
return;
for (i = 0; i < branch; ++i) {
var child = document.createElement('div');
node.appendChild(child);
var shadowRoot = child.attachShadow({ mode: 'open' });
createComposedTree(shadowRoot, depth - 1, branch, eachTreeHeight);
}
}
function leftMostLeaf(root)
{
var node = root;
while (node.firstChild)
node = node.firstChild
if (!node.shadowRoot)
return node;
return leftMostLeaf(node.shadowRoot)
}
function rightMostLeaf(root)
{
var node = root;
while (node.lastChild)
node = node.lastChild
if (!node.shadowRoot)
return node;
return rightMostLeaf(node.shadowRoot)
}
var root = document.getElementById('root');
createComposedTree(root, 10, 2, 50);
var leaf1 = leftMostLeaf(root);
var leaf2 = rightMostLeaf(root);
function run()
{
leaf1.dispatchEvent(new MouseEvent('mousemove', {
relatedTarget: leaf2
}));
}
PerfTestRunner.measureRunsPerSecond({
description: "Measure mousemove events dispatching in shadow trees",
run: run
});
</script>
</body>
</html>