• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html>
2<html>
3<head>
4<script type="text/javascript" src="../resources/runner.js"></script>
5</head>
6<body>
7<div id="root"><div id="child1"></div><div id="child2"></div></div>
8<script>
9function createTreeOfTrees(root, depth, eachTreeHeight)
10{
11    var node = root;
12    var i;
13    for (i = 0; i < eachTreeHeight; ++i) {
14        var child = document.createElement('div');
15        node.appendChild(child);
16        node = child;
17    }
18    if (depth == 1)
19        return;
20      var child = document.createElement('div');
21      node.appendChild(child);
22      var shadowRoot = child.createShadowRoot();
23      createTreeOfTrees(shadowRoot, depth - 1, eachTreeHeight);
24}
25
26function leftMostLeaf(root)
27{
28    var node = root;
29    while (node.firstChild)
30        node = node.firstChild
31    if (!node.shadowRoot)
32        return node;
33    return leftMostLeaf(node.shadowRoot)
34}
35
36function rightMostLeaf(root)
37{
38    var node = root;
39    while (node.lastChild)
40        node = node.lastChild
41    if (!node.shadowRoot)
42        return node;
43    return rightMostLeaf(node.shadowRoot)
44}
45
46var root = document.getElementById('root');
47createTreeOfTrees(document.getElementById('child1'), 50, 20);
48createTreeOfTrees(document.getElementById('child2'), 50, 20);
49var leaf1 = leftMostLeaf(root);
50var leaf2 = rightMostLeaf(root);
51
52function run()
53{
54    leaf1.dispatchEvent(new MouseEvent('mousemove', {
55        relatedTarget: leaf2
56    }));
57}
58
59PerfTestRunner.measureRunsPerSecond({
60    description: "Measure mousemove events dispatching in shadow trees",
61    run: run
62});
63</script>
64</body>
65</html>
66