gecko-dev/editor
Masayuki Nakano d4cbc09db8 Bug 1533293 - part 1: Create Selection::SetStartAndEnd() to set new range as far as faster r=smaug
`Selection::Extend()` is too slow because:
- it may create some `nsRange` instances.
- it users `nsContentUtils::ComparePoints()` multiple times.

Therefore, we can improve the performance if we can stop using it in some
places.  First, this patch creates `Selection::SetStartAndEnd()` and
`Selection::SetStartAndEndInLimiter()` for internal use.  They remove
current ranges, reuse `nsRange` instance as far as possible and add new
range which is set by their arguments.  Then, this patch makes
`Selection::SelectAllChildren()` stop using `Selection::Extend()`.  At this
time, this fixes a web-compat issue.  `Selection::Expand()` cannot cross the
selection limiter boundary when there is a limiter (e.g., when an editing host
has focus).  But we can now fix this with using the new internal API.

Note that methods in editor shouldn't move selection to outside of active
editing host.  Therefore, this patch adds `Selection::SetStartAndEndInLimiter()`
and `Selection::SetBaseAndExtentInLimiter()` for them.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 01:50:59 +00:00
..
composer Bug 1534561 - Make editor use PresShell directly rather than nsIPresShell r=m_kato 2019-03-15 05:01:10 +00:00
libeditor Bug 1533293 - part 1: Create Selection::SetStartAndEnd() to set new range as far as faster r=smaug 2019-03-18 01:50:59 +00:00
reftests Bug 1513343 - Remove textarea binding and replace usages with html:textarea. r=bgrins,dao 2019-03-05 11:41:42 +00:00
spellchecker Bug 1503491 - Part 1. Remove CheckCurrentWordNoSuggest. r=masayuki 2019-02-10 22:03:53 +00:00
txmgr Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre 2019-01-18 10:16:18 +01:00
AsyncSpellCheckTestHelper.jsm Bug 1489980 - Enable ESLint for editor/ - Manual fixes. r=masayuki 2018-09-13 07:59:47 +00:00
moz.build Bug 1491199 - Get rid of nsIEditorBlobListener. r=masayuki 2018-09-18 04:34:21 +00:00
nsIDocumentStateListener.idl
nsIEditActionListener.idl Bug 1489047 - Change almost all DOMString occurrences in XPIDL files to AString. r=nika 2018-09-06 18:02:43 +10:00
nsIEditor.idl Bug 1534370 part 3. Mark InsertFromTransferable as MOZ_CAN_RUN_SCRIPT. r=masayuki 2019-03-12 01:55:03 +00:00
nsIEditorMailSupport.idl Bug 1491191 - Remove unused methods in nsIEditorMailSupport. r=masayuki 2018-09-14 10:03:24 +00:00
nsIEditorObserver.idl
nsIEditorSpellCheck.idl Bug 1503491 - Part 1. Remove CheckCurrentWordNoSuggest. r=masayuki 2019-02-10 22:03:53 +00:00
nsIEditorStyleSheets.idl Bug 1470361: Remove nsIEditorStyleSheets.addStyleSheet / removeStyleSheet / replaceStyleSheet. r=m_kato 2018-06-25 10:46:38 +02:00
nsIHTMLAbsPosEditor.idl Bug 1484136 - Create HTMLEditor::RefreshGrabberInternal() for internal use r=m_kato 2018-09-11 05:30:33 +00:00
nsIHTMLEditor.idl Bug 1534370 part 3. Mark InsertFromTransferable as MOZ_CAN_RUN_SCRIPT. r=masayuki 2019-03-12 01:55:03 +00:00
nsIHTMLInlineTableEditor.idl Bug 1485929 - Create HTMLEditor::RefreshInlineTableEditingUIInternal() for internal use r=m_kato 2018-09-11 12:10:54 +00:00
nsIHTMLObjectResizer.idl Bug 1485921 - Create HTMLEditor::RefreshResizersInternal() for internal use r=m_kato 2018-09-11 08:15:52 +00:00
nsIPlaintextEditor.idl Bug 1489047 - Change almost all DOMString occurrences in XPIDL files to AString. r=nika 2018-09-06 18:02:43 +10:00
nsITableEditor.idl Bug 1484126 - part 1: Create CellData struct which implements nsITableEditor::GetCellDataAt() r=m_kato 2018-10-12 13:40:25 +00:00
nsIURIRefObject.idl Bug 1489047 - Change almost all DOMString occurrences in XPIDL files to AString. r=nika 2018-09-06 18:02:43 +10:00