gecko-dev/editor
Masayuki Nakano 92ead719bd Bug 1566795 - part 5: Make the for loop of HTMLEditor::RemoveInlinePropertyInternal() partially selected text nodes r=m_kato
If selection range is not in **one** text node, `RemoveInlinePropertyInternal()`
collects target nodes with `SubtreeContentIterator`.  It only collects topmost
nodes which are **entirely** contained in the range (it's enough because their
descendants will be handled by `RemoveStyleInside()` recursively).

The reasons why it uses `SubtreeContentIterator` rather than
`PreContentIterator` must be:
1. Performance reason.
2. Assuming there are no multiple text nodes.
3. Not expects that user removes text node styles come from parent block.

The reason 2 is wrong because when removing a style, all browsers don't
join text nodes which was in removing element with adjacent text nodes.
(I.e., we cannot change this behavior for compatibility.)

The reason 3 is of course wrong we're struggling with this scenario.

Therefore, `RemoveInlinePropertyInternal()` needs to collect partially
selected text nodes by itself (if there are).  Then, we can merge the
single text node selected case with the `for` loop.

Differential Revision: https://phabricator.services.mozilla.com/D47864

--HG--
extra : moz-landing-system : lando
2019-10-08 09:24:47 +00:00
..
composer Bug 1585156 - Remove useless inclusions of nsIDOMWindow.h and nsIDOMWindowUtils.h r=smaug 2019-09-30 22:06:47 +00:00
libeditor Bug 1566795 - part 5: Make the for loop of HTMLEditor::RemoveInlinePropertyInternal() partially selected text nodes r=m_kato 2019-10-08 09:24:47 +00:00
reftests Bug 1586018 - Remove a11y tree tests, reftests and crashtests only related to textbox. r=surkov,emilio 2019-10-03 18:01:08 +00:00
spellchecker Bug 1581774 - revert part of rev 5e2fad03c885 from bug 1507543 for Thunderbirds since it breaks the spellcheck. r=m_kato 2019-09-26 09:42:42 +02:00
txmgr Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan 2019-05-01 08:47:10 +00:00
AsyncSpellCheckTestHelper.jsm Bug 1561435 - Format editor/, a=automatic-formatting 2019-07-05 10:45:46 +02:00
moz.build Bug 1577969 - Get rid of nsIHTMLEditor.getLinkedObject and nsIURIRefObject. r=masayuki 2019-09-02 12:15:41 +00:00
nsIDocumentStateListener.idl Bug 1549925 - Mark all methods of nsIDocumentStateListener as can_run_script r=m_kato 2019-05-09 07:37:51 +00:00
nsIEditActionListener.idl Bug 1545822 - Clean up some whitespace in XPIDL files. r=froydnj 2019-04-21 01:47:00 +00:00
nsIEditor.idl Bug 1568777 - Make first argument of nsIEditor.unmask() optional r=m_kato 2019-07-29 12:21:02 +00:00
nsIEditorMailSupport.idl Bug 1545822 - Clean up some whitespace in XPIDL files. r=froydnj 2019-04-21 01:47:00 +00:00
nsIEditorObserver.idl
nsIEditorSpellCheck.idl Bug 1556922. Stop using [array] in nsIEditorSpellCheck. r=masayuki 2019-06-05 04:07:28 +00:00
nsIEditorStyleSheets.idl Bug 1545822 - Clean up some whitespace in XPIDL files. r=froydnj 2019-04-21 01:47:00 +00:00
nsIHTMLAbsPosEditor.idl Bug 1549925 - Mark all methods of nsIDocumentStateListener as can_run_script r=m_kato 2019-05-09 07:37:51 +00:00
nsIHTMLEditor.idl Bug 1540029 - part 8: Replace HTMLEditRules::GetParagraphState() with new stack only class r=m_kato 2019-09-18 08:20:29 +00:00
nsIHTMLInlineTableEditor.idl Bug 1549925 - Mark all methods of nsIDocumentStateListener as can_run_script r=m_kato 2019-05-09 07:37:51 +00:00
nsIHTMLObjectResizer.idl Bug 1549925 - Mark all methods of nsIDocumentStateListener as can_run_script r=m_kato 2019-05-09 07:37:51 +00:00
nsIPlaintextEditor.idl Bug 1574852 - part 104: Move TextEditRules::WillInsertText() to TextEditor and make HTMLEditor::WillInsertText() override it r=m_kato 2019-09-13 02:40:09 +00:00
nsITableEditor.idl Bug 1533293 - part 3: Make editor and ContentEventHandler not use Selection::Extend() due to too slow r=m_kato 2019-03-26 10:09:47 +00:00