It always set to "start of next line" when new range was added. However, after bug 1815802, it does nothing when adding range is one of its ranges. Therefore, if interline position is set to "end of line" by our internal code, like editor, `getSelection().addRange(getSelection().getRangeAt(0))` keeps the last interline position. Differential Revision: https://phabricator.services.mozilla.com/D182300
22 lines
698 B
HTML
22 lines
698 B
HTML
<!doctype html>
|
|
<html class="reftest-wait">
|
|
<meta charset="utf-8">
|
|
<title>Selection.addRange() should always reset interline position</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<style>
|
|
div[contenteditable] {
|
|
padding: 1em;
|
|
}
|
|
</style>
|
|
<script>
|
|
SimpleTest.waitForFocus(async () => {
|
|
const editingHost = document.querySelector("div[contenteditable]");
|
|
editingHost.focus();
|
|
getSelection().collapse(editingHost, 2);
|
|
SpecialPowers.wrap(getSelection()).interlinePosition = false;
|
|
getSelection().addRange(getSelection().getRangeAt(0));
|
|
document.documentElement.removeAttribute("class");
|
|
});
|
|
</script>
|
|
<div contenteditable="true" spellcheck="false">abc<br><br></div>
|