Moderate firefox Logic Error 🔧 Commit mapped

Overview

Moderate
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Impactmoderate
DescriptionIncorrect boundary conditions in the DOM: Editor component
ComponentCore
Bug ClassLogic Error
Tracker2068442
Fix commit68689e51f91a (firefox) +77/-118
CISA KEVNot listed
CreditedMozilla
Disclosed2026-09-15

Changed Functions

FunctionChangeNotes
if
editor/libeditor/EditorBase.cpp
modified
if
editor/libeditor/HTMLEditSubActionHandler.cpp
modified
if
editor/libeditor/HTMLEditor.cpp
modified

Files Changed

  • editor/libeditor/EditorBase.cpp
  • editor/libeditor/EditorBase.h
  • editor/libeditor/HTMLEditSubActionHandler.cpp
  • editor/libeditor/HTMLEditor.cpp
  • editor/libeditor/HTMLEditor.h
  • editor/libeditor/TextEditSubActionHandler.cpp
  • editor/libeditor/WhiteSpaceVisibilityKeeper.cpp
  • editor/libeditor/WhiteSpaceVisibilityKeeper.h
diff --git a/editor/libeditor/EditorBase.cpp b/editor/libeditor/EditorBase.cpp
index 33c66f29cea..07a22bd5d06 100644
--- a/editor/libeditor/EditorBase.cpp
+++ b/editor/libeditor/EditorBase.cpp
@@ -3488,7 +3488,7 @@ EditorDOMPoint EditorBase::ComputePointToInsertText(
 
 Result<InsertTextResult, nsresult> EditorBase::InsertTextWithTransaction(
     const nsAString& aStringToInsert, const EditorDOMPoint& aPointToInsert,
-    InsertTextTo aInsertTextTo) {
+    InsertTextTo aInsertTextTo, InsertTextFor aPurpose) {
   MOZ_ASSERT_IF(IsTextEditor(),
                 aInsertTextTo == InsertTextTo::ExistingTextNodeIfAvailable);
 
@@ -3504,7 +3504,7 @@ Result<InsertTextResult, nsresult> EditorBase::InsertTextWithTransaction(
 
   EditorDOMPoint pointToInsert =
       ComputePointToInsertText(aPointToInsert, aInsertTextTo);
-  if (ShouldHandleIMEComposition()) {
+  if (ShouldHandleIMEComposition() && InsertingTextForComposition(aPurpose)) {
     if (!pointToInsert.IsInTextNode()) {
       // create a text node
       RefPtr<nsTextNode> newTextNode = CreateTextNode(u""_ns);
@@ -3522,8 +3522,8 @@ Result<InsertTextResult, nsresult> EditorBase::InsertTextWithTransaction(
       pointToInsert.Set(newTextNode, 0u);
     }
     Result<InsertTextResult, nsresult> insertTextResult =
-        InsertTextIntoTextNodeWithTransaction(aStringToInsert,
-                                              pointToInsert.AsInText());
+        InsertTextIntoTextNodeWithTransaction(
+            aStringToInsert, pointToInsert.AsInText(), aPurpose);
     NS_WARNING_ASSERTION(
         insertTextResult.isOk(),
         "EditorBase::InsertTextIntoTextNodeWithTransaction() failed");
@@ -3533,8 +3533,8 @@ Result<InsertTextResult, nsresult> EditorBase::InsertTextWithTransaction(
   if (pointToInsert.IsInTextNode()) {
     // we are inserting text into an existing text node.
     Result<InsertTextResult, nsresult> insertTextResult =
-        InsertTextIntoTextNodeWithTransaction(aStringToInsert,
-                                              pointToInsert.AsInText());
+        InsertTextIntoTextNodeWithTransaction(
+            aStringToInsert, pointToInsert.AsInText(), aPurpose);
     NS_WARNING_ASSERTION(
         insertTextResult.isOk(),
         "EditorBase::InsertTextIntoTextNodeWithTransaction() failed");
@@ -3569,23 +3569,24 @@ EditorBase::ComputeInsertedRange(const EditorDOMPointInText& aInsertedPoint,
 
   EditorDOMPointInText endOfInsertion(
       aInsertedPoint.ContainerAs<Text>(),
-      aInsertedPoint.Offset() + aInsertedString.Length());
+      std::min<uint32_t>(aInsertedPoint.Offset() + aInsertedString.Length(),
+                         aInsertedPoint.ContainerAs<Text>()->TextDataLength()));
   return {aInsertedPoint, endOfInsertion};
 }
 
 Result<InsertTextResult, nsresult>
 EditorBase::InsertTextIntoTextNodeWithTransaction(
     const nsAString& aStringToInsert,
-    const EditorDOMPointInText& aPointToInsert) {
+    const EditorDOMPointInText& aPointToInsert, InsertTextFor aPurpose) {
   MOZ_ASSERT(IsEditActionDataAvailable());
   MOZ_ASSERT(aPointToInsert.IsSetAndValid());
 
   RefPtr<EditTransactionBase> transaction;
-  bool isIMETransaction = false;
-  if (ShouldHandleIMEComposition()) {
+  const bool isIMETransaction =
+      ShouldHandleIMEComposition() && InsertingTextForComposition(aPurpose);
+  if (isIMETransaction) {
     transaction =
         CompositionTransaction::Create(*this, aStringToInsert, aPointToInsert);
-    isIMETransaction = true;
   } else {
     transaction =
         InsertTextTransaction::Create(*this, aStringToInsert, aPointToInsert);
@@ -4404,12 +4405,14 @@ void EditorBase::OnCompositionEnd(
   if (editAction == EditAction::eCancelComposition && placeholderTransaction) {
     const nsTArray<OwningNonNull<EditTransactionBase>>& childTransactions =
         placeholderTransaction->ChildTransactions();
-    MOZ_ASSERT(!childTransactions.IsEmpty());
     // If the first transaction is inserting composition string, we didn't
     // replace selection with the composition string.  Then, all of the
-    // operations during the composition is canceled by the user.  So, we should
-    // not record it as an undo transaction.
-    if (childTransactions[0]->GetAsCompositionTransaction()) {
+    // operations during the composition is canceled by the user.  So, we
+    // should not record it as an undo transaction.
+    // FYI: If non-related action of the composition, we already closed the
+    // previous transaction.
+    if (!childTransactions.IsEmpty() &&
+        childTransactions[0]->GetAsCompositionTransaction()) {
       nsCOMPtr<nsITransaction> transaction =
           mTransactionManager->PopUndoStack();
       MOZ_DIAGNOSTIC_ASSERT(transaction == placeholderTransaction);
diff --git a/editor/libeditor/EditorBase.h b/editor/libeditor/EditorBase.h
index 1fb992dfef3..a4c58298e69 100644
--- a/editor/libeditor/EditorBase.h
+++ b/editor/libeditor/EditorBase.h
@@ -1899,12 +1899,12 @@ class EditorBase : public nsIEditor,
     SpecifiedPoint,
     ExistingTextNodeIfAvailable,
     ExistingTextNodeIfAvailableAndNotStart,
-    AlwaysCreateNewTextNode
+    AlwaysCreateNewTextNode,
   };
   [[nodiscard]] MOZ_CAN_RUN_SCRIPT virtual Result<InsertTextResult, nsresult>
   InsertTextWithTransaction(const nsAString& aStringToInsert,
                             const EditorDOMPoint& aPointToInsert,
-                            InsertTextTo aInsertTextTo);
+                            InsertTextTo aInsertTextTo, InsertTextFor aPurpose);
 
   /**
    * Compute insertion point from aPoint and aInsertTextTo.
@@ -1918,7 +1918,7 @@ class EditorBase : public nsIEditor,
   [[nodiscard]] MOZ_CAN_RUN_SCRIPT Result<InsertTextResult, nsresult>
   InsertTextIntoTextNodeWithTransaction(
       const nsAString& aStringToInsert,
-      const EditorDOMPointInText& aPointToInsert);
+      const EditorDOMPointInText& aPointToInsert, InsertTextFor aPurpose);
 
   /**
    * SetTextNodeWithoutTransaction() is optimized path to set new value to
diff --git a/editor/libeditor/HTMLEditSubActionHandler.cpp b/editor/libeditor/HTMLEditSubActionHandler.cpp
index ff44a0d6762..cf93631abe5 100644
--- a/editor/libeditor/HTMLEditSubActionHandler.cpp
+++ b/editor/libeditor/HTMLEditSubActionHandler.cpp
@@ -1178,7 +1178,8 @@ Result<EditActionResult, nsresult> HTMLEditor::HandleInsertText(
       // since empty strings are meaningful there.
       Result<InsertTextResult, nsresult> insertEmptyTextResultOrError =
           InsertTextWithTransaction(aInsertionString, pointToInsert,
-                                    InsertTextTo::ExistingTextNodeIfAvailable);
+                                    InsertTextTo::ExistingTextNodeIfAvailable,
+                                    aPurpose);
       if (MOZ_UNLIKELY(insertEmptyTextResultOrError.isErr())) {
         NS_WARNING("HTMLEditor::InsertTextWithTransaction() failed");
         return insertEmptyTextResultOrError.propagateErr();
@@ -1426,9 +1427,9 @@ Result<EditActionResult, nsresult> HTMLEditor::HandleInsertText(
         // not assumed that inserted text is split at every linefeed.
         MOZ_ASSERT(*lineBreakType == LineBreakType::Linefeed);
         Result<InsertTextResult, nsresult> insertTextResult =
-            InsertTextWithTransaction(
-                aInsertionString, currentPoint,
-                InsertTextTo::ExistingTextNodeIfAvailable);
+            InsertTextWithTransaction(aInsertionString, currentPoint,
+                                      InsertTextTo::ExistingTextNodeIfAvailable,
+                                      aPurpose);
         if (MOZ_UNLIKELY(insertTextResult.isErr())) {
           NS_WARNING("HTMLEditor::InsertTextWithTransaction() failed");
           return insertTextResult.propagateErr();
@@ -1463,7 +1464,8 @@ Result<EditActionResult, nsresult> HTMLEditor::HandleInsertText(
                 InsertTextWithTransaction(
                     lineText, currentPoint,
                     GetInsertTextTo(inclusiveNextLinefeedOffset,
-                                    lineStartOffset));
+                                    lineStartOffset),
+                    aPurpose);
             if (MOZ_UNLIKELY(insertTextResult.isErr())) {
               NS_WARNING("HTMLEditor::InsertTextWithTransaction() failed");
               return insertTextResult.propagateErr();
@@ -2610,7 +2612,7 @@ HTMLEditor::DeleteTextAndNormalizeSurroundingWhiteSpaces(
             ReplaceTextWithTransaction(
                 MOZ_KnownLive(*startToDelete.ContainerAs<Text>()),
                 startToDelete.Offset(), lengthToReplaceInFirstTextNode,
-                normalizedWhiteSpacesInFirstNode);
+                normalizedWhiteSpacesInFirstNode, InsertTextFor::NormalText);
         if (MOZ_UNLIKELY(replaceTextResult.isErr())) {
           NS_WARNING("HTMLEditor::ReplaceTextWithTransaction() failed");
           return replaceTextResult.propagateErr();
@@ -2686,7 +2688,7 @@ HTMLEditor::DeleteTextAndNormalizeSurroundingWhiteSpaces(
             MOZ_KnownLive(*startToDelete.ContainerAs<Text>()),
             startToDelete.Offset(),
             endToDelete.Offset() - startToDelete.Offset(),
-            normalizedWhiteSpacesInLastNode);
+            normalizedWhiteSpacesInLastNode, InsertTextFor::NormalText);
     if (MOZ_UNLIKELY(replaceTextResult.isErr())) {
       NS_WARNING("HTMLEditor::ReplaceTextWithTransaction() failed");
       return replaceTextResult.propagateErr();
@@ -2835,7 +2837,8 @@ HTMLEditor::JoinTextNodesWithNormalizeWhiteSpaces(Text& aLeftText,
         lastLeftChar && !IsCollapsibleChar(lastLeftChar)) {
       if (firstRightChar != HTMLEditUtils::kSpace) {
         Result<InsertTextResult, nsresult> replaceWhiteSpaceResultOrError =
-            ReplaceTextWithTransaction(aRightText, 0u, 1u, u" "_ns);
+            ReplaceTextWithTransaction(aRightText, 0u, 1u, u" "_ns,
+                                       InsertTextFor::NormalText);
         if (MOZ_UNLIKELY(replaceWhiteSpaceResultOrError.isErr())) {
           NS_WARNING("HTMLEditor::ReplaceTextWithTransaction() failed");
           return replaceWhiteSpaceResultOrError.propagateErr();
@@ -2872,8 +2875,9 @@ HTMLEditor::JoinTextNodesWithNormalizeWhiteSpaces(Text& aLeftText,
     if (!IsCollapsibleCharOrNBSP(secondLastChar) &&
         !IsCollapsibleCharOrNBSP(firstRightChar)) {
       Result<InsertTextResult, nsresult> replaceWhiteSpaceResultOrError =
-          ReplaceTextWithTransaction(
-              aLeftText, aLeftText.DataBuffer().GetLength() - 1u, 1u, u" "_ns);
+          ReplaceTextWithTransaction(aLeftText,
+                                     aLeftText.DataBuffer().GetLength() - 1u,
+                                     1u, u" "_ns, InsertTextFor::NormalText);
       if (MOZ_UNLIKELY(replaceWhiteSpaceResultOrError.isErr())) {
         NS_WARNING("HTMLEditor::ReplaceTextWithTransaction() failed");
         return replaceWhiteSpaceResultOrError.propagateErr();
diff --git a/editor/libeditor/HTMLEditor.cpp b/editor/libeditor/HTMLEditor.cpp
index 7faba1b8831..53cece1867d 100644
--- a/editor/libeditor/HTMLEditor.cpp
+++ b/editor/libeditor/HTMLEditor.cpp
@@ -4031,11 +4031,12 @@ Result<CaretPoint, nsresult> HTMLEditor::DeleteTextWithTransaction(
 }
 
 Result<InsertTextResult, nsresult> HTMLEditor::ReplaceTextWithTransaction(
-    dom::Text& aTextNode, const ReplaceWhiteSpacesData& aData) {
+    dom::Text& aTextNode, const ReplaceWhiteSpacesData& aData,
+    InsertTextFor aPurpose) {
   Result<InsertTextResult, nsresult> insertTextResultOrError =
       ReplaceTextWithTransaction(aTextNode, aData.mReplaceStartOffset,
-                                 aData.ReplaceLength(),
-                                 aData.mNormalizedString);
+                                 aData.ReplaceLength(), aData.mNormalizedString,
+                                 aPurpose);
   if (MOZ_UNLIKELY(insertTextResultOrError.isErr()) ||
       aData.mNewOffsetAfterReplace > aTextNode.TextDataLength()) {
     return insertTextResultOrError;
@@ -4049,7 +4050,7 @@ Result<InsertTextResult, nsresult> HTMLEditor::ReplaceTextWithTransaction(
 
 Result<InsertTextResult, nsresult> HTMLEditor::ReplaceTextWithTransaction(
     Text& aTextNode, uint32_t aOffset, uint32_t aLength,
-    const nsAString& aStringToInsert) {
+    const nsAString& aStringToInsert, InsertTextFor aPurpose) {
   MOZ_ASSERT(IsEditActionDataAvailable());
   MOZ_ASSERT(aLength > 0 || !aStringToInsert.IsEmpty());
 
@@ -4066,9 +4067,9 @@ Result<InsertTextResult, nsresult> HTMLEditor::ReplaceTextWithTransaction(
 
   if (!aLength) {
     Result<InsertTextResult, nsresult> insertTextResult =
-        InsertTextWithTransaction(aStringToInsert,
-                                  EditorDOMPoint(&aTextNode, aOffset),
-                                  InsertTextTo::ExistingTextNodeIfAvailable);
+        InsertTextWithTransaction(
+            aStringToInsert, EditorDOMPoint(&aTextNode, aOffset),
+            InsertTextTo::ExistingTextNodeIfAvailable, aPurpose);
     NS_WARNING_ASSERTION(insertTextResult.isOk(),
                          "HTMLEditor::InsertTextWithTransaction() failed");
     return insertTextResult;
@@ -4152,18 +4153,18 @@ Result<InsertTextResult, nsresult> HTMLEditor::ReplaceTextWithTransaction(
 Result<InsertTextResult, nsresult>
 HTMLEditor::InsertOrReplaceTextWithTransaction(
     const EditorDOMPoint& aPointToInsert,
-    const NormalizedStringToInsertText& aData) {
+    const NormalizedStringToInsertText& aData, InsertTextFor aPurpose) {
   MOZ_ASSERT(aPointToInsert.IsInContentNodeAndValid());
   MOZ_ASSERT_IF(aData.ReplaceLength(), aPointToInsert.IsInTextNode());
 
   Result<InsertTextResult, nsresult> insertTextResultOrError =
       !aData.ReplaceLength()
           ? InsertTextWithTransaction(aData.mNormalizedString, aPointToInsert,
-                                      InsertTextTo::SpecifiedPoint)
+                                      InsertTextTo::SpecifiedPoint, aPurpose)
           : ReplaceTextWithTransaction(
                 MOZ_KnownLive(*aPointToInsert.ContainerAs<Text>()),
                 aData.mReplaceStartOffset, aData.ReplaceLength(),
-                aData.mNormalizedString);
+                aData.mNormalizedString, aPurpose);
   if (MOZ_UNLIKELY(insertTextResultOrError.isErr())) {
     NS_WARNING(!aData.ReplaceLength()
                    ? "HTMLEditor::InsertTextWithTransaction() failed"
@@ -4202,7 +4203,7 @@ HTMLEditor::InsertOrReplaceTextWithTransaction(
 
 Result<InsertTextResult, nsresult> HTMLEditor::InsertTextWithTransaction(
     const nsAString& aStringToInsert, const EditorDOMPoint& aPointToInsert,
-    InsertTextTo aInsertTextTo) {
+    InsertTextTo aInsertTextTo, InsertTextFor aPurpose) {
   if (NS_WARN_IF(!aPointToInsert.IsSet())) {
     return Err(NS_ERROR_INVALID_ARG);
   }
@@ -4214,7 +4215,7 @@ Result<InsertTextResult, nsresult> HTMLEditor::InsertTextWithTransaction(
   }
 
   return EditorBase::InsertTextWithTransaction(aStringToInsert, aPointToInsert,
-                                               aInsertTextTo);
+                                               aInsertTextTo, aPurpose);
 }
 
 Result<EditorDOMPoint, nsresult> HTMLEditor::PrepareToInsertLineBreak(
diff --git a/editor/libeditor/HTMLEditor.h b/editor/libeditor/HTMLEditor.h
index 09d321f352a..5b01daffcf2 100644
--- a/editor/libeditor/HTMLEditor.h
+++ b/editor/libeditor/HTMLEditor.h
@@ -858,8 +858,8 @@ class HTMLEditor final : public EditorBase,
    */
   [[nodiscard]] MOZ_CAN_RUN_SCRIPT Result<InsertTextResult, nsresult>
   ReplaceTextWithTransaction(dom::Text& aTextNode, uint32_t aOffset,
-                             uint32_t aLength,
-                             const nsAString& aStringToInsert);
+                             uint32_t aLength, const nsAString& aStringToInsert,
+                             InsertTextFor aPurpose);
 
   struct NormalizedStringToInsertText;
 
@@ -871,7 +871,8 @@ class HTMLEditor final : public EditorBase,
    */
   [[nodiscard]] MOZ_CAN_RUN_SCRIPT Result<InsertTextResult, nsresult>
   InsertOrReplaceTextWithTransaction(const EditorDOMPoint& aPointToInsert,
-                                     const NormalizedStringToInsertText& aData);
+                                     const NormalizedStringToInsertText& aData,
+                                     InsertTextFor aPurpose);
 
   struct ReplaceWhiteSpacesData;
 
@@ -880,7 +881,8 @@ class HTMLEditor final : public EditorBase,
    */
   [[nodiscard]] MOZ_CAN_RUN_SCRIPT Result<InsertTextResult, nsresult>
   ReplaceTextWithTransaction(dom::Text& aTextNode,
-                             const ReplaceWhiteSpacesData& aData);
+                             const ReplaceWhiteSpacesData& aData,
+                             InsertTextFor aPurpose);
 
   /**
    * Insert aStringToInsert to aPointToInsert.  If the point is not editable,
@@ -889,7 +891,8 @@ class HTMLEditor final : public EditorBase,
   [[nodiscard]] MOZ_CAN_RUN_SCRIPT Result<InsertTextResult, nsresult>
   InsertTextWithTransaction(const nsAString& aStringToInsert,
                             const EditorDOMPoint& aPointToInsert,
-                            InsertTextTo aInsertTextTo) final;
+                            InsertTextTo aInsertTextTo,
+                            InsertTextFor aPurpose) final;
 
   /**
    * CopyLastEditableChildStyles() clones inline container elements into
diff --git a/editor/libeditor/TextEditSubActionHandler.cpp b/editor/libeditor/TextEditSubActionHandler.cpp
index ed04e4fcd1d..bc58868f5fd 100644
--- a/editor/libeditor/TextEditSubActionHandler.cpp
+++ b/editor/libeditor/TextEditSubActionHandler.cpp
@@ -218,7 +218,8 @@ TextEditor::InsertLineFeedCharacterAtSelection() {
   // Insert a linefeed character.
   Result<InsertTextResult, nsresult> insertTextResult =
       InsertTextWithTransaction(u"\n"_ns, pointToInsert,
-                                InsertTextTo::ExistingTextNodeIfAvailable);
+                                InsertTextTo::ExistingTextNodeIfAvailable,
+                                InsertTextFor::NormalText);
   if (MOZ_UNLIKELY(insertTextResult.isErr())) {
     NS_WARNING("TextEditor::InsertTextWithTransaction(\"\\n\") failed");
     return insertTextResult.propagateErr();
@@ -454,7 +455,8 @@ Result<EditActionResult, nsresult> TextEditor::HandleInsertText(
     }
     Result<InsertTextResult, nsresult> insertTextResult =
         InsertTextWithTransaction(insertionString, compositionStartPoint,
-                                  InsertTextTo::ExistingTextNodeIfAvailable);
+                                  InsertTextTo::ExistingTextNodeIfAvailable,
+                                  aPurpose);
     if (MOZ_UNLIKELY(insertTextResult.isErr())) {
       NS_WARNING("EditorBase::InsertTextWithTransaction() failed");
       return insertTextResult.propagateErr();
@@ -475,7 +477,8 @@ Result<EditActionResult, nsresult> TextEditor::HandleInsertText(
 
     Result<InsertTextResult, nsresult> insertTextResult =
         InsertTextWithTransaction(insertionString, atStartOfSelection,
-                                  InsertTextTo::ExistingTextNodeIfAvailable);
+                                  InsertTextTo::ExistingTextNodeIfAvailable,
+                                  aPurpose);
     if (MOZ_UNLIKELY(insertTextResult.isErr())) {
       NS_WARNING("EditorBase::InsertTextWithTransaction() failed");
       return insertTextResult.propagateErr();
diff --git a/editor/libeditor/WhiteSpaceVisibilityKeeper.cpp b/editor/libeditor/WhiteSpaceVisibilityKeeper.cpp
index f8dde72d782..7d6470701bf 100644
--- a/editor/libeditor/WhiteSpaceVisibilityKeeper.cpp
+++ b/editor/libeditor/WhiteSpaceVisibilityKeeper.cpp
@@ -892,7 +892,8 @@ WhiteSpaceVisibilityKeeper::NormalizeWhiteSpacesAt(
 
   const OwningNonNull<Text> textNode = *aPoint.ContainerAs<Text>();
   Result<InsertTextResult, nsresult> insertTextResultOrError =
-      aHTMLEditor.ReplaceTextWithTransaction(textNode, normalizedWhiteSpaces);
+      aHTMLEditor.ReplaceTextWithTransaction(textNode, normalizedWhiteSpaces,
+                                             InsertTextFor::NormalText);
   if (MOZ_UNLIKELY(insertTextResultOrError.isErr())) {
     NS_WARNING("HTMLEditor::ReplaceTextWithTransaction() failed");
     return insertTextResultOrError.propagateErr();
@@ -986,7 +987,8 @@ WhiteSpaceVisibilityKeeper::NormalizeWhiteSpacesBefore(
       continue;
     }
     Result<InsertTextResult, nsresult> replaceWhiteSpacesResultOrError =
-        aHTMLEditor.ReplaceTextWithTransaction(*precedingTextNode, replaceData);
+        aHTMLEditor.ReplaceTextWithTransaction(*precedingTextNode, replaceData,
+                                               InsertTextFor::NormalText);
     if (MOZ_UNLIKELY(replaceWhiteSpacesResultOrError.isErr())) {
       NS_WARNING("HTMLEditor::ReplaceTextWithTransaction() failed");
       return replaceWhiteSpacesResultOrError.propagateErr();
@@ -1102,7 +1104,8 @@ WhiteSpaceVisibilityKeeper::NormalizeWhiteSpacesAfter(
       continue;
     }
     Result<InsertTextResult, nsresult> replaceWhiteSpacesResultOrError =
-        aHTMLEditor.ReplaceTextWithTransaction(*followingTextNode, replaceData);
+        aHTMLEditor.ReplaceTextWithTransaction(*followingTextNode, replaceData,
+                                               InsertTextFor::NormalText);
     if (MOZ_UNLIKELY(replaceWhiteSpacesResultOrError.isErr())) {
       NS_WARNING("HTMLEditor::ReplaceTextWithTransaction() failed");
       return replaceWhiteSpacesResultOrError.propagateErr();
@@ -1212,7 +1215,8 @@ WhiteSpaceVisibilityKeeper::NormalizeWhiteSpacesToSplitTextNodeAt(
                        : EditorDOMPoint::AtEndOf(*parentNode);
   }
   Result<InsertTextResult, nsresult> replaceWhiteSpacesResultOrError =
-      aHTMLEditor.ReplaceTextWithTransaction(textNode, replaceWhiteSpacesData);
+      aHTMLEditor.ReplaceTextWithTransaction(textNode, replaceWhiteSpacesData,
+                                             InsertTextFor::NormalText);
... (file diff truncated)
Loading diff…