chromium/third_party/blink/perf_tests/editing/move_backward_with_may_elements.html

<!DOCTYPE html>
<body>
<script src="../resources/runner.js"></script>
<script src="resources/line-layout-perf-test.js"></script>
<style>
#container {
    width: 400px;
    height: 200px;
    overflow: scroll;
}
</style>
<div id="container"></div>
<script>
const NUMBER_OF_WORDS = 300;
const NUMBER_OF_MOVES = 500;
const container = document.getElementById('container');
const selection = window.getSelection();

for (let wordCount = NUMBER_OF_WORDS; wordCount > 0; --wordCount) {
    const word = document.createElement('span');
    word.textContent = Math.random().toString(36).slice(2) + ' ';
    container.appendChild(word);
}

PerfTestRunner.measureRunsPerSecond({
  setup: () => {
  },
  run: () => {
    container.scrollTo(0, container.scrollHeight);
    selection.collapse(container, container.childNodes.length);
    for (let i = 0; i < NUMBER_OF_MOVES; ++i)
      selection.modify('extend', 'backward', 'character');
  },
});
</script>