| <!doctype html> |
| <script src="../resources/runner.js"></script> |
| <div id="sample"></div> |
| <script> |
| const kElements = 10000; |
| |
| const metaElements = (() => { |
| const result = []; |
| for (let count = 0; count < kElements; ++count) |
| result.push('<meta>', '</meta>'); |
| return result; |
| })(); |
| const sample = document.getElementById('sample'); |
| sample.innerHTML = [ |
| '<h1 id="before">first line of renderered text</h1>', |
| '<div hidden>', ...metaElements, '</div>', |
| '<h1 id="target">second line of renderered text</h1>', |
| '<div hidden>', ...metaElements, '</div>', |
| '<h1 id="after">third line of renderered text</h1>', |
| ].join(''); |
| |
| const selection = window.getSelection(); |
| |
| PerfTestRunner.measureTime({ |
| description: 'Measures performance of move-up through non-renderered elements', |
| setup: () => { |
| selection.removeAllRanges(); |
| const target = document.getElementById('target'); |
| selection.collapse(target.firstChild, 5); |
| selection.extend(target.firstChild, 10); |
| }, |
| run: () => { |
| selection.modify('extend', 'backward', 'line'); |
| }, |
| }); |
| </script> |