gecko-dev/editor
Masayuki Nakano c7249ef506 Bug 1637856 - part 2: Get rid of WSRunScanner::mNodeArray r=m_kato
`WSRunScanner` scans around given point in `GetWSNodes()` at construction with
using `HTMLEditUtils` methods and caches editable text nodes between
`mStartReasonContent` and `mEndReasonContent`.  However, it's used only by
`GetNextCharPoint()` and `GetPreviousCharPoint()`, and they shouldn't be
referred after changing the DOM tree.  Therefore, we can scan it directly
only when it needs to scan.

The patch rewrites `GetNextCharPoint()` and `GetPreviousCharPoint()` without
`mNodeArray` and removes `mNodeArray` from its member.  This may increase the
cost of scanning next/previous text node, but improves the scan performance
when it does not treat so wide range and they are called with a point whose
container is not a text node.

This patch unexpectedly changes the behavior of them, that causes the fix of
2 failures in `insertlinebreak.html` and `insertparagraph.html`.  According to
debugger, previously GetNextCharPoint()` in
`ScanNextVisibleNodeOrBlockBoundaryFrom()` called point at `<br>` element
returned no next char, then, `ScanNextVisibleNodeOrBlockBoundaryFrom()` returned
end point which is block boundary of `<listing>` element (it is legacy HTML2
element and treated as `<pre>` element internally).  Therefore, the inserted
`<br>` element was misunderstood as invisible `<br>` at end of a block and
inserted another `<br>` element for making it visible.  However, the redesigned
one fixed this bug with searching correct text node.  Therefore, I cannot
keep the buggy behavior in the new designed methods.

Depends on D75470

Differential Revision: https://phabricator.services.mozilla.com/D75471
2020-05-18 06:46:00 +00:00
..
composer Bug 1623562 - Refactor allowPlugins to use BrowsingContext. r=nika 2020-03-20 04:53:43 +00:00
libeditor Bug 1637856 - part 2: Get rid of WSRunScanner::mNodeArray r=m_kato 2020-05-18 06:46:00 +00:00
reftests Bug 312971 - Unprefix -moz-read-write / -moz-read-only. r=edgar 2020-05-14 16:46:08 +00:00
spellchecker Bug 1634663: part 3) Declare callers of Selection::GetRangeAt in spellchecking code const. r=masayuki 2020-05-02 23:45:59 +00:00
txmgr Bug 1633014 - Fix non-unified build errors in editor/. r=m_kato 2020-04-27 03:36:57 +00:00
AsyncSpellCheckTestHelper.jsm
moz.build Bug 1449522 - Remove nsIEditorStyleSheets. r=masayuki,m_kato 2020-04-17 22:54:48 +00:00
nsIDocumentStateListener.idl Bug 1612477 - part 2: Remove nsIDocumentStateListener.NotifyDocumentCreated() r=m_kato 2020-02-04 06:19:55 +00:00
nsIEditActionListener.idl
nsIEditor.idl Bug 1619914 - part 2: Mark transaction class methods and their caller methods as `MOZ_CAN_RUN_SCRIPT r=m_kato 2020-04-03 08:32:01 +00:00
nsIEditorMailSupport.idl
nsIEditorObserver.idl
nsIEditorSpellCheck.idl
nsIHTMLAbsPosEditor.idl
nsIHTMLEditor.idl Bug 1624007 - Don't check IsSelectionRangeContainerNotContent() for/in GetElementOrParentElement*() r=m_kato 2020-04-09 10:10:36 +00:00
nsIHTMLInlineTableEditor.idl
nsIHTMLObjectResizer.idl
nsITableEditor.idl Bug 1635709: part 17) Annotate CellIndexes's methods with MOZ_CAN_RUN_SCRIPT. r=masayuki 2020-05-14 10:08:44 +00:00