Make nsIFrame::PeekOffsetForCharacter
treat non-editable frames as non-selectable
When PeekOffsetForCharacter
find a non-editable content, it should never
return the frame because user must want to move caret only in editable content
when the previous position is editable. Additionally, when a non-selectable
frame is skipped, caret will be moved enough, so it should not skip any editable
content. Finally, the found frame may cause a line break. Therefore, this
patch overwrites the result of SelectablePeekReport::PeekOffsetForCharacter
from FOUND
to CONTINUE_UNSELECTABLE
when non-editable content is found.
The remaining failures of the new WPT should be handled in bug 449685 because
they are caused by no frame for invisible preceding/trailing white spaces around
the block element boundary.
Depends on D223909
Differential Revision: https://phabricator.services.mozilla.com/D224183
bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1921705
gecko-commit: 755750429ced683c63011ab7eee8672d52c45e5d
gecko-reviewers: emilio