chromium/third_party/blink/web_tests/paint/markers/ellipsis-mixed-text-in-ltr-flow-with-markers.html

<!DOCTYPE html>
<script src="../../resources/run-after-layout-and-paint.js"></script>
<style>
div {
    width: 100px;
    height: 20px;
    font: 12px;
    overflow: hidden;
    white-space: pre;
    text-overflow: ellipsis;
    direction: ltr;
}
</style>

<div id="markAllComposition">HelloשלוםHelloשלום</div>
<div id="markStartComposition">HelloשלוםHelloשלום</div>
<div id="markEndComposition">HelloשלוםHelloשלום</div>
<div id="markTrickyComposition">HelloשלוםHelloשלום</div>

<div id="markAllSpelling">HelloשלוםHelloשלום</div>
<div id="markStartSpelling">HelloשלוםHelloשלום</div>
<div id="markEndSpelling">HelloשלוםHelloשלום</div>
<div id="markTrickySpelling">HelloשלוםHelloשלום</div>

<div id="markAllTextMatch">HelloשלוםHelloשלום</div>
<div id="markStartTextMatch">HelloשלוםHelloשלום</div>
<div id="markEndTextMatch">HelloשלוםHelloשלום</div>
<div id="markTrickyTextMatch">HelloשלוםHelloשלום</div>

<script>
function addCompositionMarker(elem, start, end) {
    const range = document.createRange();
    const textNode = elem.firstChild;
    range.setStart(textNode, start);
    range.setEnd(textNode, end);
    if (typeof internals !== 'undefined')
        internals.addCompositionMarker(range, 'orange', 'thin', 'solid', 'transparent', 'lightBlue');
};

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 addTextMatchMarker(elem, start, end) {
    const range = document.createRange();
    const textNode = elem.firstChild;
    range.setStart(textNode, start);
    range.setEnd(textNode, end);
    if (typeof internals !== 'undefined') {
        internals.addTextMatchMarker(range, 'kActive');
        internals.setMarkedTextMatchesAreHighlighted(document, true);
    }
};

onload = runAfterLayoutAndPaint(function() {
    addCompositionMarker(markAllComposition, 0, 18);
    addCompositionMarker(markStartComposition, 0, 13);
    addCompositionMarker(markEndComposition, 4, 18);
    addCompositionMarker(markTrickyComposition, 4, 6);

    addSpellingMarker(markAllSpelling, 0, 18);
    addSpellingMarker(markStartSpelling, 0, 13);
    addSpellingMarker(markEndSpelling, 4, 18);
    addSpellingMarker(markTrickySpelling, 4, 6);

    addTextMatchMarker(markAllTextMatch, 0, 18);
    addTextMatchMarker(markStartTextMatch, 0, 13);
    addTextMatchMarker(markEndTextMatch, 4, 18);
    addTextMatchMarker(markTrickyTextMatch, 4, 6);
}, true);
</script>