1<!DOCTYPE html> 2<html> 3<head> 4 <script type="text/javascript" src="../resources/runner.js"></script> 5</head> 6<body> 7 8<div id="wrapper"> 9 <div id="host"></div> 10</div> 11 12<script> 13var numDivsInHost = 100; 14var array = new Array(numDivsInHost); 15 16function setup() 17{ 18 var nDivs = numDivsInHost; 19 20 window.shadowRoot = host.webkitCreateShadowRoot(); 21 shadowRoot.innerHTML = '<h2>Selected</h2><div id="selected"><content select=".selected"></content></div><h2>NonSelected</h2><div id="nonselected"><content></content></div>'; 22 23 for (var i = 0; i < nDivs; ++i) { 24 var div = document.createElement('div'); 25 div.appendChild(document.createTextNode('div' + i)); 26 host.appendChild(div); 27 array[i] = div; 28 } 29} 30 31function run() 32{ 33 var nDivs = numDivsInHost; 34 var array = window.array; 35 36 var selected = shadowRoot.getElementById('selected'); 37 var nonSelected = shadowRoot.getElementById('nonselected'); 38 39 for (var i = 2; i < 100; ++i) { 40 for (var j = 0; j < nDivs; ++j) 41 array[j].className = (j % i == 0) ? 'selected' : ''; 42 selected.offsetLeft; 43 nonSelected.offsetLeft; 44 } 45} 46 47function done() 48{ 49 wrapper.innerHTML = ''; 50} 51 52 53setup(); 54 55PerfTestRunner.measureTime({ 56 description: "Measure distribution and layout performance when className is changed", 57 run: run, 58 done: done 59}); 60</script> 61</body> 62</html> 63