blob: 5158ec9475c3a32bb508cc59d372777743def82d [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<style>
container, leaf {display: inline;}
</style>
<script src="../resources/runner.js"></script>
</head>
<body>
</body>
<script>
var isDone = false;
var startTime;
function runTest() {
if (startTime) {
PerfTestRunner.measureValueAsync(PerfTestRunner.now() - startTime);
PerfTestRunner.addRunTestEndMarker();
}
if (!isDone) {
PerfTestRunner.addRunTestStartMarker();
startTime = PerfTestRunner.now();
document.body.innerHTML = '';
appendManyElements(document.body, 7);
setTimeout(changeLeafText, 10);
// Re-run the same test.
// Wait to allow the asynchronous accessibility code that's
// covered by traceEventsToMeasure to have a chance to run.
setTimeout(runTest, 1500);
}
}
// Recursively add layers of descendants.
function appendManyElements(start, depth) {
if (depth == 0) {
start.innerHTML = '<leaf>A</leaf>';
}
else {
// Each element receives 3 new children.
for (let count = 0; count < 3; count++) {
let newContainer = document.createElement('container');
appendManyElements(start.appendChild(newContainer), depth - 1);
}
}
}
function changeLeafText(text) {
let elements = document.querySelectorAll('leaf');
for (let count = 0; count < elements.length; count ++)
elements[count].textContent = 'B';
}
PerfTestRunner.startMeasureValuesAsync({
description: 'Test accessibility performance when changing text inside ignored inlines.',
unit: 'ms',
done: function () {
isDone = true;
},
run: function() {
runTest();
},
iterationCount: 6,
tracingCategories: 'accessibility',
traceEventsToMeasure: [
'ProcessDeferredAccessibilityEvents',
'RenderAccessibilityImpl::SendPendingAccessibilityEvents'
]
});
</script>
</html>