|  | <!DOCTYPE html> | 
|  | <html> | 
|  | <head> | 
|  | <script type="text/javascript" src="../resources/runner.js"></script> | 
|  | </head> | 
|  | <body> | 
|  |  | 
|  | <div id="wrapper"> | 
|  | <div id="host"></div> | 
|  | </div> | 
|  |  | 
|  | <script> | 
|  | var numDivsInHost = 100; | 
|  | var nLoops = 1000; | 
|  |  | 
|  | function setup() | 
|  | { | 
|  | var nDivs = numDivsInHost; | 
|  |  | 
|  | for (var i = 0; i < nDivs; ++i) { | 
|  | var div = document.createElement('div'); | 
|  | div.appendChild(document.createTextNode('div' + i)); | 
|  | if (i % 2 == 0) | 
|  | div.className = 'selected'; | 
|  | host.appendChild(div); | 
|  | } | 
|  |  | 
|  | var shadowRoot = host.createShadowRoot(); | 
|  | shadowRoot.innerHTML = '<div id="host2"><shadow><content></content></shadow></div>'; | 
|  |  | 
|  | var host2 = shadowRoot.getElementById('host2'); | 
|  | var shadowRoot2 = host2.createShadowRoot(); | 
|  | shadowRoot2.innerHTML = '<content select=".selected"></content>'; | 
|  | } | 
|  |  | 
|  | function run() | 
|  | { | 
|  | var host = document.getElementById('host'); | 
|  | var nLoops = window.nLoops; | 
|  |  | 
|  | var div = document.createElement('div'); | 
|  | for (var i = 0; i < nLoops; ++i) { | 
|  | host.appendChild(div); | 
|  | host.removeChild(div); | 
|  | PerfTestRunner.forceLayout(); | 
|  | } | 
|  | } | 
|  |  | 
|  | function done() | 
|  | { | 
|  | wrapper.innerHTML = ''; | 
|  | } | 
|  |  | 
|  | setup(); | 
|  |  | 
|  | PerfTestRunner.measureTime({ | 
|  | description: "Measure performance of shadow reprojection and distribution", | 
|  | run: run, | 
|  | done: done | 
|  | }); | 
|  | </script> | 
|  | </body> | 
|  | </html> |