blob: b746f42b80b3fdf30a0e2d93e6541f2eedaacb1d [file] [log] [blame]
<!doctype html>
<body>
<script src="../resources/runner.js"></script>
<script src="../layout/resources/line-layout-perf-test.js"></script>
<div id="container"></div>
<script>
const kNumberOfWords = 10000 * 30;
const kCount = 10;
const container = document.getElementById('container');
const selection = window.getSelection();
container.textContent = (() => {
const words = [];
for (let i = 0; i < kNumberOfWords; ++i)
words.push(TextGenerator.createWord(i % 12 + 3));
return words.join(' ');
})();
let isDone = false;
let startTime = 0;
let counter = 0;
function runTest() {
if (startTime !== 0 && counter % kCount === 0) {
PerfTestRunner.measureValueAsync(PerfTestRunner.now() - startTime);
PerfTestRunner.addRunTestEndMarker(); // For tracing metrics
}
if (isDone)
return;
window.requestAnimationFrame(() => {
if (counter % kCount === 0) {
PerfTestRunner.addRunTestStartMarker();
startTime = PerfTestRunner.now(); // For tracing metrics
}
selection.collapse(container, 0);
if (counter % 2 === 1)
selection.extend(container, 1);
++counter;
runTest();
});
}
PerfTestRunner.startMeasureValuesAsync({
unit: 'ms',
run: function() {
runTest();
},
done: function() {
container.textContent = '';
isDone = true;
},
iterationCount: 10,
tracingCategories: 'blink',
traceEventsToMeasure: [
'LocalFrameView::RunPrePaintLifecyclePhase',
'LocalFrameView::RunPaintLifecyclePhase'
],
});
</script>