chromium/third_party/blink/web_tests/paint/markers/marker-invalidation.html

<!DOCTYPE html>
<script src="../../resources/run-after-layout-and-paint.js"></script>
<script>
if (window.testRunner) {
  testRunner.waitUntilDone();
}
</script>
<style>
  div {
    width: 150px;
    height: 30px;
    font-size: 15px;
  }
</style>

<div id="markAllSpelling">aaaaaaaaaa</div>
<div id="markNoSpelling">bbbbbbbbbb</div>

<script>
function addSpellingMarker(elem, start, end) {
    const range = document.createRange();
    const textNode = elem.firstChild;
    range.setStart(textNode, start);
    range.setEnd(textNode, end);
    if (typeof internals !== 'undefined')
        internals.setMarker(document, range, 'spelling');
};

function removeSpellingMarker(elem, start, end) {
    const range = document.createRange();
    const textNode = elem.firstChild;
    range.setStart(textNode, start);
    range.setEnd(textNode, end);
    if (typeof internals !== 'undefined')
        internals.removeMarker(document, range, 'spelling');
};

onload = runAfterLayoutAndPaint(function() {
    addSpellingMarker(markAllSpelling, 0, 10);
    addSpellingMarker(markNoSpelling, 0, 10);

    runAfterLayoutAndPaint(function() {
        removeSpellingMarker(markNoSpelling, 0, 10);
    }, true);

  }, false);
</script>