gecko-dev/editor/libeditor
Masayuki Nakano a9d57dd8a8 Bug 1478564 - part 1: Optimize TextEditRules::HandleNewLines() r=m_kato
TextEditRules::HandleNewLines() is expensive since it may scan all of given
string twice and more.  On the other hand, in most cases, given string does
not contain \n, \r nor \r\n.

First, for avoid using nsTString::FindCharInSet(), HandleNewLine() should
receive string which never contains \r nor \r\n.  Then, it always can use
nsTSubstring::FindChar() instead.

Next, HandleNewLines() should do nothing if given string does not contain \n.

Finally, because of unused, this removes unnecessary HandleNewLines() argument
which can specify the way to handle new lines.

MozReview-Commit-ID: 8WSfxfkuFgN

--HG--
extra : rebase_source : 1c05721162a30288929d030c0a15fe83a50fe9d2
2018-07-24 17:46:12 +09:00
..
crashtests Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
tests Bug 1478564 - part 0: Add automated tests for TextEditRules::HandleNewLines() r=m_kato 2018-07-26 22:27:47 +09:00
ChangeAttributeTransaction.cpp Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
ChangeAttributeTransaction.h Bug 1425412 - part 9: Create factory methods of ChangeAttributeTransaction and remove EditorBase::CreateTxnForSetAttribute() and EditorBase::CreateTxnForRemoveAttribute() r=m_kato 2017-12-18 17:07:52 +09:00
ChangeStyleTransaction.cpp Bug 1408301: Remove getPropertyCSSValue. r=bz 2018-05-12 11:23:47 +02:00
ChangeStyleTransaction.h Bug 1425412 - part 11: Create factory methods for ChangeStyleTransaction and remove CSSEditUtils::CreateCSSPropertyTxn() r=m_kato 2017-12-18 17:46:57 +09:00
CompositionTransaction.cpp Bug 1463287: Add QueryInterface helper macro for concrete class types. r=bz 2018-05-21 16:33:18 -07:00
CompositionTransaction.h Bug 1425412 - part 4: Create CompositionTransaction::Create() and remove EditorBase::CreateTxnForComposition() r=m_kato 2017-12-15 18:26:37 +09:00
CreateElementTransaction.cpp Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
CreateElementTransaction.h Bug 1447213 - Change editor methods which take |const EditorRawDOMPoint&| but called with EditorDOMPoint.AsRaw() to template methods r=m_kato 2018-03-20 14:05:47 +09:00
CSSEditUtils.cpp Bug 1467722: Don't return null for getComputedStyle when there's no pres shell. r=heycam 2018-06-19 11:47:16 +02:00
CSSEditUtils.h Bug 1408301: Remove getPropertyCSSValue. r=bz 2018-05-12 11:23:47 +02:00
DeleteNodeTransaction.cpp Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
DeleteNodeTransaction.h Bug 1425412 - part 6: Create DeleteNodeTransaction::MaybeCreate() and remove EditorBaseTransaction::CreateTxnForDeleteNode() r=m_kato 2017-12-15 21:24:33 +09:00
DeleteRangeTransaction.cpp Bug 1454241: Remove nsINode::eDATA_NODE. r=bz 2018-04-20 03:58:00 +02:00
DeleteRangeTransaction.h Bug 1425412 - part 12: Create factory methods for DeleteRangeTransaction, EditAggregateTransaction and PlaceholderTransaction for consistency with the other transaction classes r=m_kato 2017-12-18 18:08:43 +09:00
DeleteTextTransaction.cpp Bug 1446533 part 7. Remove nsIDOMCharacterData::InsertData. r=mystor 2018-03-19 15:38:04 -04:00
DeleteTextTransaction.h Bug 1446533 part 2. Rename nsGenericDOMDataNode.{h,cpp} to CharacterData. r=mystor 2018-03-19 15:18:07 -04:00
EditAction.h Bug 1463985 - part 27: Replace EditSubAction::ignore with EditSubAction::eReplaceHeadWithHTMLSource and EditSubAction::eCreateBogusNode r=m_kato 2018-05-29 00:06:24 +09:00
EditActionListener.h
EditAggregateTransaction.cpp Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
EditAggregateTransaction.h Bug 1425412 - part 12: Create factory methods for DeleteRangeTransaction, EditAggregateTransaction and PlaceholderTransaction for consistency with the other transaction classes r=m_kato 2017-12-18 18:08:43 +09:00
EditorBase.cpp Bug 1467802 - part 3: Create EditorBase::GetDocumentCharsetInternal() for internal use of nsIEditor::GetDocumentCharacterSet() r=m_kato 2018-07-18 21:11:32 +09:00
EditorBase.h Bug 1467802 - part 3: Create EditorBase::GetDocumentCharsetInternal() for internal use of nsIEditor::GetDocumentCharacterSet() r=m_kato 2018-07-18 21:11:32 +09:00
EditorCommands.cpp Bug 1476897 - part 6: Move implementation of both TextEditor::PasteAsQuotation() and HTMLEditor::PasteAsQuotation() to new virtual methods r=m_kato 2018-07-23 16:34:03 +09:00
EditorCommands.h
EditorController.cpp
EditorController.h
EditorDOMPoint.h Bug 1465478: Introduce Element::FromNode. r=smaug 2018-05-31 02:46:10 +02:00
EditorEventListener.cpp Bug 1476897 - part 6: Move implementation of both TextEditor::PasteAsQuotation() and HTMLEditor::PasteAsQuotation() to new virtual methods r=m_kato 2018-07-23 16:34:03 +09:00
EditorEventListener.h Bug 1455052 part 6. Stop using nsIDOMEvent in editor code. r=masayuki 2018-04-20 12:53:17 -04:00
EditorUtils.cpp Bug 1451972 - Remove more nsIDOMDocument usages from editor. r=masayuki 2018-04-06 14:53:05 +09:00
EditorUtils.h Merge mozilla-inbound to mozilla-central. a=merge 2018-05-31 13:04:21 +03:00
EditorUtils.js Bug 1456035: Part 4 - Convert callers of XPCOMUtils.generateQI to ChromeUtils.generateQI. r=mccr8 2018-04-22 20:55:06 -07:00
EditorUtils.manifest
EditTransactionBase.cpp Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
EditTransactionBase.h Bug 1379891 - remove nsPIEditorTransaction interface, GetTxnDescription methods. r=m_kato,masayuki 2018-01-14 16:01:41 +01:00
HTMLAbsPositionEditor.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
HTMLAnonymousNodeEditor.cpp Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj 2018-06-01 17:59:07 +02:00
HTMLEditor.cpp Bug 1476897 - part 7: Drop nsIEditorMailSupport interface from TextEditor r=m_kato 2018-07-23 16:45:07 +09:00
HTMLEditor.h Bug 1476897 - part 7: Drop nsIEditorMailSupport interface from TextEditor r=m_kato 2018-07-23 16:45:07 +09:00
HTMLEditorCommands.cpp Bug 1450882 - part 4: Make C++ users of nsICommandParams use nsCommandParams directly r=Ehsan 2018-07-10 20:04:21 +09:00
HTMLEditorCommands.h Bug 1468708 - Part 6. Move HTMLEditorCommands and HTMLEditorController to libeditor. r=masayuki 2018-06-13 14:49:06 -07:00
HTMLEditorController.cpp Bug 1468708 - Part 6. Move HTMLEditorCommands and HTMLEditorController to libeditor. r=masayuki 2018-06-13 14:49:06 -07:00
HTMLEditorController.h Bug 1468708 - Part 6. Move HTMLEditorCommands and HTMLEditorController to libeditor. r=masayuki 2018-06-13 14:49:06 -07:00
HTMLEditorDataTransfer.cpp Bug 1476897 - part 6: Move implementation of both TextEditor::PasteAsQuotation() and HTMLEditor::PasteAsQuotation() to new virtual methods r=m_kato 2018-07-23 16:34:03 +09:00
HTMLEditorDocumentCommands.cpp Bug 1476294 - Make HTMLEditorDocumentCommands.cpp use non-virtual methods of nsCommandParams instead of virtual methods of nsICommandParams r=Ehsan 2018-07-18 00:30:05 +09:00
HTMLEditorEventListener.cpp Bug 1387143 part 22. Remove nsISelection isCollapsed/collapsed bits. r=mats 2018-05-08 13:52:39 -04:00
HTMLEditorEventListener.h Bug 1446711 part 8. Get rid of nsIDOMMouseEvent. r=qdot 2018-03-20 00:16:07 -04:00
HTMLEditorObjectResizer.cpp Bug 1405897 - Move assertion before setting resizer attribute. r=masayuki 2018-06-29 04:47:21 +00:00
HTMLEditorObjectResizerUtils.h Bug 1433345 - part 4: Make EditorBase derived from nsISelectionListener and notify its owning classes of selection change r=m_kato 2018-01-26 17:25:45 +09:00
HTMLEditRules.cpp Bug 1478605 - HTMLEditRules::SplitMailCites() should check if split left node has a primary frame before accessing it r=jorgk+176914 2018-07-26 19:38:33 +09:00
HTMLEditRules.h Bug 1471115 - Remove unused methods in nsIHTMLEditor. r=masayuki 2018-06-26 04:29:36 +00:00
HTMLEditUtils.cpp Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
HTMLEditUtils.h Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
HTMLInlineTableEditor.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
HTMLStyleEditor.cpp Bug 1463985 - part 24: Rename EditSubAction::resetTextProperties to EditSubAction::eRemoveAllTextProperties r=m_kato 2018-05-28 23:40:45 +09:00
HTMLTableEditor.cpp Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
HTMLURIRefObject.cpp Bug 1463981 part 2. Remove use of nsIDOMNode in editor xpidl. r=masayuki 2018-05-24 13:18:34 -04:00
HTMLURIRefObject.h Bug 1463981 part 2. Remove use of nsIDOMNode in editor xpidl. r=masayuki 2018-05-24 13:18:34 -04:00
InsertNodeTransaction.cpp Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
InsertNodeTransaction.h Bug 1447213 - Change editor methods which take |const EditorRawDOMPoint&| but called with EditorDOMPoint.AsRaw() to template methods r=m_kato 2018-03-20 14:05:47 +09:00
InsertTextTransaction.cpp Bug 1463287: Add QueryInterface helper macro for concrete class types. r=bz 2018-05-21 16:33:18 -07:00
InsertTextTransaction.h Bug 1425412 - part 1: Create InsertTextTransaction::Create() and remove EditorBase::CreateTxnForInsertText() r=m_kato 2017-12-15 17:26:52 +09:00
InternetCiter.cpp Bug 1264876 - Remove StripCites() from nsIEditorMailSupport r=m_kato 2018-07-19 16:55:31 +09:00
InternetCiter.h Bug 1264876 - Remove StripCites() from nsIEditorMailSupport r=m_kato 2018-07-19 16:55:31 +09:00
JoinNodeTransaction.cpp Bug 1451672 - part 6: Rename EditorBase::JoinNodesImpl() to EditorBase::DoJoinNodes() r=m_kato 2018-04-10 03:56:46 +09:00
JoinNodeTransaction.h Bug 1425412 - part 8: Create JoinNodeTransaction::MaybeCreate() and remove EditorBase::CreateTxnForJoinNode() r=m_kato 2017-12-15 21:53:08 +09:00
ManualNAC.h
moz.build Bug 1470361: Remove nsIEditorStyleSheets.addStyleSheet / removeStyleSheet / replaceStyleSheet. r=m_kato 2018-06-25 10:46:38 +02:00
nsIAbsorbingTransaction.h Bug 1400460 - Rename nsIAtom as nsAtom. r=hiro. 2017-10-03 09:05:19 +11:00
PlaceholderTransaction.cpp Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj 2018-06-17 22:43:11 -07:00
PlaceholderTransaction.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
SelectionState.cpp Bug 358033 - Part 1. Restore direction of Selection. r=masayuki 2018-07-23 02:44:42 +00:00
SelectionState.h Bug 358033 - Part 1. Restore direction of Selection. r=masayuki 2018-07-23 02:44:42 +00:00
SplitNodeTransaction.cpp Bug 1463981 part 3. Remove nsIDOMNode usage in editor. r=masayuki 2018-05-24 13:18:34 -04:00
SplitNodeTransaction.h Bug 1447213 - Change editor methods which take |const EditorRawDOMPoint&| but called with EditorDOMPoint.AsRaw() to template methods r=m_kato 2018-03-20 14:05:47 +09:00
TextEditor.cpp Bug 1478564 - part 1: Optimize TextEditRules::HandleNewLines() r=m_kato 2018-07-24 17:46:12 +09:00
TextEditor.h Bug 1476897 - part 7: Drop nsIEditorMailSupport interface from TextEditor r=m_kato 2018-07-23 16:45:07 +09:00
TextEditorDataTransfer.cpp Bug 1467794 - Split TextEditor::DeleteSelectionAsAction() to itself and TextEditor::DeleteSelectionAsSubAction() r=m_kato 2018-06-29 20:16:50 +09:00
TextEditorTest.cpp Bug 1387143 part 3. Stop using nsISelection in nsISelectionController. r=mats 2018-05-08 13:52:36 -04:00
TextEditorTest.h
TextEditRules.cpp Bug 1478564 - part 1: Optimize TextEditRules::HandleNewLines() r=m_kato 2018-07-24 17:46:12 +09:00
TextEditRules.h Bug 1478564 - part 1: Optimize TextEditRules::HandleNewLines() r=m_kato 2018-07-24 17:46:12 +09:00
TextEditRulesBidi.cpp Bug 1457083 - part 6: Get rid of unnecessary Selection argument from all protected/private methods of TextEditRules and HTMLEditRules r=m_kato 2018-05-10 15:03:21 +09:00
TextEditUtils.cpp Bug 1449147 - Clean up more nsIDOMNode usages in editor. r=masayuki 2018-03-27 20:19:35 +09:00
TextEditUtils.h Bug 1449147 - Clean up more nsIDOMNode usages in editor. r=masayuki 2018-03-27 20:19:35 +09:00
TypeInState.cpp Bug 1387143 part 22. Remove nsISelection isCollapsed/collapsed bits. r=mats 2018-05-08 13:52:39 -04:00
TypeInState.h Bug 1445569 - part 4: Get rid of EditorBase::GetStartNodeAndOffset() and EditorBase::GetEndNodeAndOffset() r=m_kato 2018-03-15 21:25:41 +09:00
WSRunObject.cpp Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj 2018-06-17 22:43:11 -07:00
WSRunObject.h Bug 1451672 - part 13: Rename EditorBase::InsertTextImpl() and EditorBase::InsertTextIntoTextNodeImpl() to EditorBase::InsertTextWithTransaction() and EditorBase::InsertTextIntoTextNodeWithTransaction() r=m_kato 2018-04-12 17:58:14 +09:00