diff --git a/editor/libeditor/EditorBase.cpp b/editor/libeditor/EditorBase.cpp index 082eacaa275e..fadf08ac94cf 100644 --- a/editor/libeditor/EditorBase.cpp +++ b/editor/libeditor/EditorBase.cpp @@ -123,30 +123,6 @@ using namespace widget; * mozilla::EditorBase *****************************************************************************/ -template already_AddRefed EditorBase::CreateNodeWithTransaction( - nsAtom& aTag, const EditorDOMPoint& aPointToInsert); -template already_AddRefed EditorBase::CreateNodeWithTransaction( - nsAtom& aTag, const EditorRawDOMPoint& aPointToInsert); -template nsresult EditorBase::InsertNodeWithTransaction( - nsIContent& aContentToInsert, const EditorDOMPoint& aPointToInsert); -template nsresult EditorBase::InsertNodeWithTransaction( - nsIContent& aContentToInsert, const EditorRawDOMPoint& aPointToInsert); -template already_AddRefed EditorBase::SplitNodeWithTransaction( - const EditorDOMPoint& aStartOfRightNode, ErrorResult& aError); -template already_AddRefed EditorBase::SplitNodeWithTransaction( - const EditorRawDOMPoint& aStartOfRightNode, ErrorResult& aError); -template SplitNodeResult EditorBase::SplitNodeDeepWithTransaction( - nsIContent& aMostAncestorToSplit, - const EditorDOMPoint& aStartOfDeepestRightNode, SplitAtEdges aSplitAtEdges); -template SplitNodeResult EditorBase::SplitNodeDeepWithTransaction( - nsIContent& aMostAncestorToSplit, - const EditorRawDOMPoint& aStartOfDeepestRightNode, - SplitAtEdges aSplitAtEdges); -template nsresult EditorBase::MoveNodeWithTransaction( - nsIContent& aContent, const EditorDOMPoint& aPointToInsert); -template nsresult EditorBase::MoveNodeWithTransaction( - nsIContent& aContent, const EditorRawDOMPoint& aPointToInsert); - EditorBase::EditorBase() : mEditActionData(nullptr), mPlaceholderName(nullptr), @@ -1342,9 +1318,8 @@ EditorBase::SetSpellcheckUserOverride(bool enable) { return NS_OK; } -template already_AddRefed EditorBase::CreateNodeWithTransaction( - nsAtom& aTagName, const EditorDOMPointBase& aPointToInsert) { + nsAtom& aTagName, const EditorDOMPoint& aPointToInsert) { MOZ_ASSERT(IsEditActionDataAvailable()); MOZ_ASSERT(aPointToInsert.IsSetAndValid()); @@ -1414,18 +1389,16 @@ EditorBase::InsertNode(nsINode* aNodeToInsert, nsINode* aContainer, aOffset < 0 ? static_cast(aContainer->Length()) : std::min(aOffset, static_cast(aContainer->Length())); - nsresult rv = InsertNodeWithTransaction( - *contentToInsert, EditorRawDOMPoint(aContainer, offset)); + nsresult rv = InsertNodeWithTransaction(*contentToInsert, + EditorDOMPoint(aContainer, offset)); if (NS_WARN_IF(NS_FAILED(rv))) { return EditorBase::ToGenericNSResult(rv); } return NS_OK; } -template nsresult EditorBase::InsertNodeWithTransaction( - nsIContent& aContentToInsert, - const EditorDOMPointBase& aPointToInsert) { + nsIContent& aContentToInsert, const EditorDOMPoint& aPointToInsert) { MOZ_ASSERT(IsEditActionDataAvailable()); if (NS_WARN_IF(!aPointToInsert.IsSet())) { @@ -1472,7 +1445,7 @@ EditorBase::SplitNode(nsINode* aNode, int32_t aOffset, nsINode** aNewLeftNode) { std::min(std::max(aOffset, 0), static_cast(aNode->Length())); ErrorResult error; nsCOMPtr newNode = - SplitNodeWithTransaction(EditorRawDOMPoint(aNode, offset), error); + SplitNodeWithTransaction(EditorDOMPoint(aNode, offset), error); newNode.forget(aNewLeftNode); if (NS_WARN_IF(error.Failed())) { return EditorBase::ToGenericNSResult(error.StealNSResult()); @@ -1480,9 +1453,8 @@ EditorBase::SplitNode(nsINode* aNode, int32_t aOffset, nsINode** aNewLeftNode) { return NS_OK; } -template already_AddRefed EditorBase::SplitNodeWithTransaction( - const EditorDOMPointBase& aStartOfRightNode, ErrorResult& aError) { + const EditorDOMPoint& aStartOfRightNode, ErrorResult& aError) { MOZ_ASSERT(IsEditActionDataAvailable()); if (NS_WARN_IF(!aStartOfRightNode.IsSet()) || @@ -1712,7 +1684,7 @@ already_AddRefed EditorBase::ReplaceContainerWithTransactionInternal( } rv = InsertNodeWithTransaction( - *child, EditorRawDOMPoint(newContainer, newContainer->Length())); + *child, EditorDOMPoint(newContainer, newContainer->Length())); if (NS_WARN_IF(NS_FAILED(rv))) { return nullptr; } @@ -1764,8 +1736,8 @@ nsresult EditorBase::RemoveContainerWithTransaction(Element& aElement) { // use offset here because previous child might have been moved to // container. rv = InsertNodeWithTransaction( - *child, EditorRawDOMPoint(pointToInsertChildren.GetContainer(), - pointToInsertChildren.Offset())); + *child, EditorDOMPoint(pointToInsertChildren.GetContainer(), + pointToInsertChildren.Offset())); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -1820,8 +1792,7 @@ already_AddRefed EditorBase::InsertContainerWithTransactionInternal( { AutoTransactionsConserveSelection conserveSelection(*this); - rv = - InsertNodeWithTransaction(aContent, EditorRawDOMPoint(newContainer, 0)); + rv = InsertNodeWithTransaction(aContent, EditorDOMPoint(newContainer, 0)); if (NS_WARN_IF(NS_FAILED(rv))) { return nullptr; } @@ -1836,9 +1807,8 @@ already_AddRefed EditorBase::InsertContainerWithTransactionInternal( return newContainer.forget(); } -template nsresult EditorBase::MoveNodeWithTransaction( - nsIContent& aContent, const EditorDOMPointBase& aPointToInsert) { + nsIContent& aContent, const EditorDOMPoint& aPointToInsert) { MOZ_ASSERT(aPointToInsert.IsSetAndValid()); EditorDOMPoint oldPoint(&aContent); @@ -1852,8 +1822,7 @@ nsresult EditorBase::MoveNodeWithTransaction( } // Notify our internal selection state listener - EditorDOMPoint newPoint(aPointToInsert); - AutoMoveNodeSelNotify selNotify(RangeUpdaterRef(), oldPoint, newPoint); + AutoMoveNodeSelNotify selNotify(RangeUpdaterRef(), oldPoint, aPointToInsert); // Hold a reference so aNode doesn't go away when we remove it (bug 772282) nsresult rv = DeleteNodeWithTransaction(aContent); @@ -1862,7 +1831,7 @@ nsresult EditorBase::MoveNodeWithTransaction( } // Mutation event listener could break insertion point. Let's check it. - EditorRawDOMPoint pointToInsert(selNotify.ComputeInsertionPoint()); + EditorDOMPoint pointToInsert(selNotify.ComputeInsertionPoint()); if (NS_WARN_IF(!pointToInsert.IsSet())) { return NS_ERROR_FAILURE; } @@ -3728,10 +3697,9 @@ bool EditorBase::IsPreformatted(nsINode* aNode) { return styleText->WhiteSpaceIsSignificant(); } -template SplitNodeResult EditorBase::SplitNodeDeepWithTransaction( nsIContent& aMostAncestorToSplit, - const EditorDOMPointBase& aStartOfDeepestRightNode, + const EditorDOMPoint& aStartOfDeepestRightNode, SplitAtEdges aSplitAtEdges) { MOZ_ASSERT(aStartOfDeepestRightNode.IsSetAndValid()); MOZ_ASSERT( diff --git a/editor/libeditor/EditorBase.h b/editor/libeditor/EditorBase.h index af6293bcf6f2..b7c34c0f3767 100644 --- a/editor/libeditor/EditorBase.h +++ b/editor/libeditor/EditorBase.h @@ -936,10 +936,8 @@ class EditorBase : public nsIEditor, * container. Otherwise, will insert the node * before child node referred by this. */ - template - MOZ_CAN_RUN_SCRIPT nsresult - InsertNodeWithTransaction(nsIContent& aContentToInsert, - const EditorDOMPointBase& aPointToInsert); + MOZ_CAN_RUN_SCRIPT nsresult InsertNodeWithTransaction( + nsIContent& aContentToInsert, const EditorDOMPoint& aPointToInsert); /** * ReplaceContainerWithTransaction() creates new element whose name is @@ -1071,10 +1069,8 @@ class EditorBase : public nsIEditor, * @param aError If succeed, returns no error. Otherwise, an * error. */ - template MOZ_CAN_RUN_SCRIPT already_AddRefed SplitNodeWithTransaction( - const EditorDOMPointBase& aStartOfRightNode, - ErrorResult& aResult); + const EditorDOMPoint& aStartOfRightNode, ErrorResult& aResult); /** * JoinNodesWithTransaction() joins aLeftNode and aRightNode. Content of @@ -1093,9 +1089,8 @@ class EditorBase : public nsIEditor, * * @param aContent The node to be moved. */ - template MOZ_CAN_RUN_SCRIPT nsresult MoveNodeWithTransaction( - nsIContent& aContent, const EditorDOMPointBase& aPointToInsert); + nsIContent& aContent, const EditorDOMPoint& aPointToInsert); /** * MoveNodeToEndWithTransaction() moves aContent to end of aNewContainer. @@ -1107,7 +1102,7 @@ class EditorBase : public nsIEditor, MOZ_CAN_RUN_SCRIPT nsresult MoveNodeToEndWithTransaction(nsIContent& aContent, nsINode& aNewContainer) { - EditorRawDOMPoint pointToInsert; + EditorDOMPoint pointToInsert; pointToInsert.SetToEndOf(&aNewContainer); return MoveNodeWithTransaction(aContent, pointToInsert); } @@ -1243,9 +1238,8 @@ class EditorBase : public nsIEditor, * child node referred by this. * @return The created new element node. */ - template MOZ_CAN_RUN_SCRIPT already_AddRefed CreateNodeWithTransaction( - nsAtom& aTag, const EditorDOMPointBase& aPointToInsert); + nsAtom& aTag, const EditorDOMPoint& aPointToInsert); /** * Create an aggregate transaction for delete selection. The result may @@ -1390,11 +1384,10 @@ class EditorBase : public nsIEditor, * be good to insert something if the * caller want to do it. */ - template - MOZ_CAN_RUN_SCRIPT SplitNodeResult SplitNodeDeepWithTransaction( - nsIContent& aMostAncestorToSplit, - const EditorDOMPointBase& aDeepestStartOfRightNode, - SplitAtEdges aSplitAtEdges); + MOZ_CAN_RUN_SCRIPT SplitNodeResult + SplitNodeDeepWithTransaction(nsIContent& aMostAncestorToSplit, + const EditorDOMPoint& aDeepestStartOfRightNode, + SplitAtEdges aSplitAtEdges); /** * JoinNodesDeepWithTransaction() joins aLeftNode and aRightNode "deeply". diff --git a/editor/libeditor/EditorUtils.h b/editor/libeditor/EditorUtils.h index 1d8c8666bf0f..c8f1998410de 100644 --- a/editor/libeditor/EditorUtils.h +++ b/editor/libeditor/EditorUtils.h @@ -240,17 +240,17 @@ class MOZ_STACK_CLASS SplitNodeResult final { * by this instance. Therefore, the life time of both container node * and child node are guaranteed while using the result temporarily. */ - EditorRawDOMPoint SplitPoint() const { + EditorDOMPoint SplitPoint() const { if (Failed()) { - return EditorRawDOMPoint(); + return EditorDOMPoint(); } if (mGivenSplitPoint.IsSet()) { - return EditorRawDOMPoint(mGivenSplitPoint); + return EditorDOMPoint(mGivenSplitPoint); } if (!mPreviousNode) { - return EditorRawDOMPoint(mNextNode); + return EditorDOMPoint(mNextNode); } - EditorRawDOMPoint point(mPreviousNode); + EditorDOMPoint point(mPreviousNode); DebugOnly advanced = point.AdvanceOffset(); NS_WARNING_ASSERTION(advanced, "Failed to advance offset to after previous node"); diff --git a/editor/libeditor/HTMLAbsPositionEditor.cpp b/editor/libeditor/HTMLAbsPositionEditor.cpp index a2e9f60a70a1..9c5b4e288bc2 100644 --- a/editor/libeditor/HTMLAbsPositionEditor.cpp +++ b/editor/libeditor/HTMLAbsPositionEditor.cpp @@ -519,7 +519,7 @@ nsresult HTMLEditor::SetPositionToAbsolute(Element& aElement) { nsINode* parentNode = aElement.GetParentNode(); if (parentNode->GetChildCount() == 1) { RefPtr newBrElement = - InsertBrElementWithTransaction(EditorRawDOMPoint(parentNode, 0)); + InsertBrElementWithTransaction(EditorDOMPoint(parentNode, 0)); if (NS_WARN_IF(!newBrElement)) { return NS_ERROR_FAILURE; } diff --git a/editor/libeditor/HTMLEditRules.cpp b/editor/libeditor/HTMLEditRules.cpp index aa0deb11a51e..015d17656093 100644 --- a/editor/libeditor/HTMLEditRules.cpp +++ b/editor/libeditor/HTMLEditRules.cpp @@ -1833,7 +1833,7 @@ EditActionResult HTMLEditRules::WillInsertParagraphSeparator() { // make block have a line. Then code further below will put in a second br.) if (IsEmptyBlockElement(*blockParent, IgnoreSingleBR::eNo)) { AutoEditorDOMPointChildInvalidator lockOffset(atStartOfSelection); - EditorRawDOMPoint endOfBlockParent; + EditorDOMPoint endOfBlockParent; endOfBlockParent.SetToEndOf(blockParent); RefPtr brElement = MOZ_KnownLive(HTMLEditorRef()) @@ -2060,7 +2060,7 @@ nsresult HTMLEditRules::InsertBRElement(const EditorDOMPoint& aPointToBreak) { EditActionResult HTMLEditRules::SplitMailCites() { MOZ_ASSERT(IsEditorDataAvailable()); - EditorRawDOMPoint pointToSplit(EditorBase::GetStartPoint(*SelectionRefPtr())); + EditorDOMPoint pointToSplit(EditorBase::GetStartPoint(*SelectionRefPtr())); if (NS_WARN_IF(!pointToSplit.IsSet())) { return EditActionIgnored(NS_ERROR_FAILURE); } @@ -2128,7 +2128,7 @@ EditActionResult HTMLEditRules::SplitMailCites() { nsCOMPtr lastChild = previousNodeOfSplitPoint->GetLastChild(); if (lastChild && !lastChild->IsHTMLElement(nsGkAtoms::br)) { // We ignore the result here. - EditorRawDOMPoint endOfPreviousNodeOfSplitPoint; + EditorDOMPoint endOfPreviousNodeOfSplitPoint; endOfPreviousNodeOfSplitPoint.SetToEndOf(previousNodeOfSplitPoint); RefPtr invisibleBrElement = MOZ_KnownLive(HTMLEditorRef()) @@ -2144,7 +2144,7 @@ EditActionResult HTMLEditRules::SplitMailCites() { // In most cases,
should be inserted after current cite. However, if // left cite hasn't been created because the split point was start of the // cite node,
should be inserted before the current cite. - EditorRawDOMPoint pointToInsertBrNode(splitCiteNodeResult.SplitPoint()); + EditorDOMPoint pointToInsertBrNode(splitCiteNodeResult.SplitPoint()); RefPtr brElement = MOZ_KnownLive(HTMLEditorRef()) .InsertBrElementWithTransaction(pointToInsertBrNode); @@ -2179,8 +2179,8 @@ EditActionResult HTMLEditRules::SplitMailCites() { // then we will need a 2nd br added to achieve blank line that user expects. if (IsInlineNode(*citeNode)) { // Use DOM point which we tried to collapse to. - EditorRawDOMPoint pointToCreateNewBrNode(atBrNode.GetContainer(), - atBrNode.Offset()); + EditorDOMPoint pointToCreateNewBrNode(atBrNode.GetContainer(), + atBrNode.Offset()); WSRunObject wsObj(&HTMLEditorRef(), pointToCreateNewBrNode); WSType wsType; @@ -3168,7 +3168,7 @@ nsresult HTMLEditRules::DeleteNodeIfCollapsedText(nsINode& aNode) { nsresult HTMLEditRules::InsertBRIfNeeded() { MOZ_ASSERT(IsEditorDataAvailable()); - EditorRawDOMPoint atStartOfSelection( + EditorDOMPoint atStartOfSelection( EditorBase::GetStartPoint(*SelectionRefPtr())); if (NS_WARN_IF(!atStartOfSelection.IsSet())) { return NS_ERROR_FAILURE; @@ -3687,7 +3687,7 @@ EditActionResult HTMLEditRules::MoveNodeSmart(nsIContent& aNode, return EditActionIgnored(rv); } } else { - EditorRawDOMPoint pointToInsert(&aDestElement, *aInOutDestOffset); + EditorDOMPoint pointToInsert(&aDestElement, *aInOutDestOffset); nsresult rv = MOZ_KnownLive(HTMLEditorRef()) .MoveNodeWithTransaction(aNode, pointToInsert); if (NS_WARN_IF(!CanHandleEditAction())) { @@ -3972,11 +3972,9 @@ nsresult HTMLEditRules::MakeList(nsAtom& aListType, bool aEntireList, return NS_ERROR_FAILURE; } - EditorRawDOMPoint atFirstListItemToInsertBefore(theList, 0); RefPtr theListItem = MOZ_KnownLive(HTMLEditorRef()) - .CreateNodeWithTransaction(aItemType, - atFirstListItemToInsertBefore); + .CreateNodeWithTransaction(aItemType, EditorDOMPoint(theList, 0)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -4086,7 +4084,7 @@ nsresult HTMLEditRules::MakeList(nsAtom& aListType, bool aEntireList, continue; } - EditorRawDOMPoint atCurNode(curNode); + EditorDOMPoint atCurNode(curNode); if (NS_WARN_IF(!atCurNode.IsSet())) { return NS_ERROR_FAILURE; } @@ -4111,10 +4109,10 @@ nsresult HTMLEditRules::MakeList(nsAtom& aListType, bool aEntireList, return error.StealNSResult(); } newBlock = newLeftNode ? newLeftNode->AsElement() : nullptr; - EditorRawDOMPoint atParentOfCurNode(atCurNode.GetContainer()); curList = MOZ_KnownLive(HTMLEditorRef()) - .CreateNodeWithTransaction(aListType, atParentOfCurNode); + .CreateNodeWithTransaction( + aListType, EditorDOMPoint(atCurNode.GetContainer())); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -4476,7 +4474,7 @@ nsresult HTMLEditRules::MakeBasicBlock(nsAtom& blockType) { if (NS_WARN_IF(splitNodeResult.Failed())) { return splitNodeResult.Rv(); } - EditorRawDOMPoint pointToInsertBrNode(splitNodeResult.SplitPoint()); + EditorDOMPoint pointToInsertBrNode(splitNodeResult.SplitPoint()); // Put a
element at the split point brContent = MOZ_KnownLive(HTMLEditorRef()) .InsertBrElementWithTransaction(pointToInsertBrNode); @@ -4791,7 +4789,7 @@ nsresult HTMLEditRules::IndentAroundSelectionWithCSS() { nsresult rv = MOZ_KnownLive(HTMLEditorRef()) .MoveNodeWithTransaction(MOZ_KnownLive(*curNode->AsContent()), - EditorRawDOMPoint(sibling, 0)); + EditorDOMPoint(sibling, 0)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -5067,7 +5065,7 @@ nsresult HTMLEditRules::IndentAroundSelectionWithHTML() { sibling->NodeInfo()->NamespaceID()) { rv = MOZ_KnownLive(HTMLEditorRef()) .MoveNodeWithTransaction(MOZ_KnownLive(*curNode->AsContent()), - EditorRawDOMPoint(sibling, 0)); + EditorDOMPoint(sibling, 0)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -5566,7 +5564,7 @@ SplitRangeOffFromNodeResult HTMLEditRules::OutdentAroundSelection() { // We have an embedded list, so move it out from under the parent // list. Be sure to put it after the parent list because this // loop iterates backwards through the parent's list of children. - EditorRawDOMPoint afterCurrentList(curParent, offset + 1); + EditorDOMPoint afterCurrentList(curParent, offset + 1); rv = MOZ_KnownLive(HTMLEditorRef()) .MoveNodeWithTransaction(*child, afterCurrentList); if (NS_WARN_IF(!CanHandleEditAction())) { @@ -5675,7 +5673,7 @@ SplitRangeOffFromNodeResult HTMLEditRules::SplitRangeOffFromBlock( SplitNodeResult splitAtStartResult = MOZ_KnownLive(HTMLEditorRef()) .SplitNodeDeepWithTransaction( - aBlockElement, EditorRawDOMPoint(&aStartOfMiddleElement), + aBlockElement, EditorDOMPoint(&aStartOfMiddleElement), SplitAtEdges::eDoNotCreateEmptyContainer); if (NS_WARN_IF(!CanHandleEditAction())) { return SplitRangeOffFromNodeResult(NS_ERROR_EDITOR_DESTROYED); @@ -5684,7 +5682,7 @@ SplitRangeOffFromNodeResult HTMLEditRules::SplitRangeOffFromBlock( "Failed to split aBlockElement at start"); // Split at after the end - EditorRawDOMPoint atAfterEnd(&aEndOfMiddleElement); + EditorDOMPoint atAfterEnd(&aEndOfMiddleElement); DebugOnly advanced = atAfterEnd.AdvanceOffset(); NS_WARNING_ASSERTION(advanced, "Failed to advance offset after the end node"); SplitNodeResult splitAtEndResult = @@ -5845,7 +5843,7 @@ nsresult HTMLEditRules::CreateStyleForInsertText(Document& aDocument) { SplitNodeResult splitTextNodeResult = MOZ_KnownLive(HTMLEditorRef()) .SplitNodeDeepWithTransaction( - *text, EditorRawDOMPoint(text, offset), + *text, EditorDOMPoint(text, offset), SplitAtEdges::eAllowToCreateEmptyContainer); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; @@ -5862,9 +5860,9 @@ nsresult HTMLEditRules::CreateStyleForInsertText(Document& aDocument) { } OwningNonNull newNode = EditorBase::CreateTextNode(aDocument, EmptyString()); - nsresult rv = MOZ_KnownLive(HTMLEditorRef()) - .InsertNodeWithTransaction( - *newNode, EditorRawDOMPoint(node, offset)); + nsresult rv = + MOZ_KnownLive(HTMLEditorRef()) + .InsertNodeWithTransaction(*newNode, EditorDOMPoint(node, offset)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -6090,8 +6088,7 @@ nsresult HTMLEditRules::AlignContentsAtSelection(const nsAString& aAlignType) { return rv; } // Put in a moz-br so that it won't get deleted - CreateElementResult createMozBrResult = - CreateMozBR(EditorRawDOMPoint(div, 0)); + CreateElementResult createMozBrResult = CreateMozBR(EditorDOMPoint(div, 0)); if (NS_WARN_IF(createMozBrResult.Failed())) { return createMozBrResult.Rv(); } @@ -6298,10 +6295,9 @@ nsresult HTMLEditRules::AlignBlockContents(nsINode& aNode, // else we need to put in a div, set the alignment, and toss in all the // children - EditorRawDOMPoint atStartOfNode(&aNode, 0); - RefPtr divElem = - MOZ_KnownLive(HTMLEditorRef()) - .CreateNodeWithTransaction(*nsGkAtoms::div, atStartOfNode); + RefPtr divElem = MOZ_KnownLive(HTMLEditorRef()) + .CreateNodeWithTransaction( + *nsGkAtoms::div, EditorDOMPoint(&aNode, 0)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -6322,7 +6318,7 @@ nsresult HTMLEditRules::AlignBlockContents(nsINode& aNode, while (lastChild && (lastChild != divElem)) { nsresult rv = MOZ_KnownLive(HTMLEditorRef()) - .MoveNodeWithTransaction(*lastChild, EditorRawDOMPoint(divElem, 0)); + .MoveNodeWithTransaction(*lastChild, EditorDOMPoint(divElem, 0)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -7493,8 +7489,7 @@ nsresult HTMLEditRules::BustUpInlinesAtRangeEndpoints(RangeItem& aRangeItem) { MOZ_KnownLive(HTMLEditorRef()) .SplitNodeDeepWithTransaction( *endInline, - EditorRawDOMPoint(aRangeItem.mEndContainer, - aRangeItem.mEndOffset), + EditorDOMPoint(aRangeItem.mEndContainer, aRangeItem.mEndOffset), SplitAtEdges::eDoNotCreateEmptyContainer); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; @@ -7518,8 +7513,8 @@ nsresult HTMLEditRules::BustUpInlinesAtRangeEndpoints(RangeItem& aRangeItem) { MOZ_KnownLive(HTMLEditorRef()) .SplitNodeDeepWithTransaction( *startInline, - EditorRawDOMPoint(aRangeItem.mStartContainer, - aRangeItem.mStartOffset), + EditorDOMPoint(aRangeItem.mStartContainer, + aRangeItem.mStartOffset), SplitAtEdges::eDoNotCreateEmptyContainer); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; @@ -7560,7 +7555,7 @@ nsresult HTMLEditRules::BustUpInlinesAtBRs( // Else we need to bust up aNode along all the breaks nsCOMPtr nextNode = &aNode; for (OwningNonNull& brNode : arrayOfBreaks) { - EditorRawDOMPoint atBrNode(brNode); + EditorDOMPoint atBrNode(brNode); if (NS_WARN_IF(!atBrNode.IsSet())) { return NS_ERROR_FAILURE; } @@ -7585,7 +7580,7 @@ nsresult HTMLEditRules::BustUpInlinesAtBRs( } // Move break outside of container and also put in node list - EditorRawDOMPoint atNextNode(splitNodeResult.GetNextNode()); + EditorDOMPoint atNextNode(splitNodeResult.GetNextNode()); nsresult rv = MOZ_KnownLive(HTMLEditorRef()) .MoveNodeWithTransaction( MOZ_KnownLive(*brNode->AsContent()), atNextNode); @@ -7763,7 +7758,7 @@ nsresult HTMLEditRules::ReturnInHeader(Element& aHeader, nsINode& aNode, SplitNodeResult splitHeaderResult = MOZ_KnownLive(HTMLEditorRef()) .SplitNodeDeepWithTransaction( - aHeader, EditorRawDOMPoint(node, aOffset), + aHeader, EditorDOMPoint(node, aOffset), SplitAtEdges::eAllowToCreateEmptyContainer); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; @@ -7782,7 +7777,7 @@ nsresult HTMLEditRules::ReturnInHeader(Element& aHeader, nsINode& aNode, } if (isEmptyNode) { CreateElementResult createMozBrResult = - CreateMozBR(EditorRawDOMPoint(prevItem, 0)); + CreateMozBR(EditorDOMPoint(prevItem, 0)); if (NS_WARN_IF(createMozBrResult.Failed())) { return createMozBrResult.Rv(); } @@ -7811,7 +7806,7 @@ nsresult HTMLEditRules::ReturnInHeader(Element& aHeader, nsINode& aNode, // Create a paragraph nsAtom& paraAtom = DefaultParagraphSeparator(); // We want a wrapper element even if we separate with
- EditorRawDOMPoint nextToHeader(headerParent, offset + 1); + EditorDOMPoint nextToHeader(headerParent, offset + 1); RefPtr pNode = MOZ_KnownLive(HTMLEditorRef()) .CreateNodeWithTransaction(¶Atom == nsGkAtoms::br @@ -7828,7 +7823,7 @@ nsresult HTMLEditRules::ReturnInHeader(Element& aHeader, nsINode& aNode, // Append a
to it RefPtr brElement = MOZ_KnownLive(HTMLEditorRef()) - .InsertBrElementWithTransaction(EditorRawDOMPoint(pNode, 0)); + .InsertBrElementWithTransaction(EditorDOMPoint(pNode, 0)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -7964,7 +7959,7 @@ EditActionResult HTMLEditRules::ReturnInParagraph(Element& aParentDivOrP) { EditorDOMPoint pointToSplitParentDivOrP(atStartOfSelection); - EditorRawDOMPoint pointToInsertBR; + EditorDOMPoint pointToInsertBR; if (doesCRCreateNewP && atStartOfSelection.GetContainer() == &aParentDivOrP) { // We are at the edges of the block, so, we don't need to create new
. brContent = nullptr; @@ -8091,7 +8086,7 @@ nsresult HTMLEditRules::SplitParagraph( SplitNodeResult splitDivOrPResult = MOZ_KnownLive(HTMLEditorRef()) .SplitNodeDeepWithTransaction( - aParentDivOrP, EditorRawDOMPoint(selNode, selOffset), + aParentDivOrP, EditorDOMPoint(selNode, selOffset), SplitAtEdges::eAllowToCreateEmptyContainer); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; @@ -8183,7 +8178,7 @@ nsresult HTMLEditRules::ReturnInListItem(Element& aListItem, nsINode& aNode, // Are we the last list item in the list? if (!HTMLEditorRef().IsLastEditableChild(&aListItem)) { // We need to split the list! - EditorRawDOMPoint atListItem(&aListItem); + EditorDOMPoint atListItem(&aListItem); ErrorResult error; leftListNode = MOZ_KnownLive(HTMLEditorRef()) .SplitNodeWithTransaction(atListItem, error); @@ -8197,7 +8192,7 @@ nsresult HTMLEditRules::ReturnInListItem(Element& aListItem, nsINode& aNode, } // Are we in a sublist? - EditorRawDOMPoint atNextSiblingOfLeftList(leftListNode); + EditorDOMPoint atNextSiblingOfLeftList(leftListNode); DebugOnly advanced = atNextSiblingOfLeftList.AdvanceOffset(); NS_WARNING_ASSERTION(advanced, "Failed to advance offset after the right list node"); @@ -8251,7 +8246,7 @@ nsresult HTMLEditRules::ReturnInListItem(Element& aListItem, nsINode& aNode, // Append a
to it RefPtr brElement = MOZ_KnownLive(HTMLEditorRef()) - .InsertBrElementWithTransaction(EditorRawDOMPoint(pNode, 0)); + .InsertBrElementWithTransaction(EditorDOMPoint(pNode, 0)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -8292,7 +8287,7 @@ nsresult HTMLEditRules::ReturnInListItem(Element& aListItem, nsINode& aNode, SplitNodeResult splitListItemResult = MOZ_KnownLive(HTMLEditorRef()) .SplitNodeDeepWithTransaction( - aListItem, EditorRawDOMPoint(selNode, aOffset), + aListItem, EditorDOMPoint(selNode, aOffset), SplitAtEdges::eAllowToCreateEmptyContainer); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; @@ -8313,7 +8308,7 @@ nsresult HTMLEditRules::ReturnInListItem(Element& aListItem, nsINode& aNode, } if (isEmptyNode) { CreateElementResult createMozBrResult = - CreateMozBR(EditorRawDOMPoint(prevItem, 0)); + CreateMozBR(EditorDOMPoint(prevItem, 0)); if (NS_WARN_IF(createMozBrResult.Failed())) { return createMozBrResult.Rv(); } @@ -8331,8 +8326,8 @@ nsresult HTMLEditRules::ReturnInListItem(Element& aListItem, nsINode& aNode, nsAtom* listAtom = nodeAtom == nsGkAtoms::dt ? nsGkAtoms::dd : nsGkAtoms::dt; MOZ_DIAGNOSTIC_ASSERT(itemOffset != -1); - EditorRawDOMPoint atNextListItem(list, aListItem.GetNextSibling(), - itemOffset + 1); + EditorDOMPoint atNextListItem(list, aListItem.GetNextSibling(), + itemOffset + 1); RefPtr newListItem = MOZ_KnownLive(HTMLEditorRef()) .CreateNodeWithTransaction(MOZ_KnownLive(*listAtom), @@ -8484,10 +8479,9 @@ nsresult HTMLEditRules::MakeBlockquote( // If no curBlock, make one if (!curBlock) { - EditorDOMPoint atCurNode(curNode); SplitNodeResult splitNodeResult = MaybeSplitAncestorsForInsertWithTransaction(*nsGkAtoms::blockquote, - atCurNode); + EditorDOMPoint(curNode)); if (NS_WARN_IF(splitNodeResult.Failed())) { return splitNodeResult.Rv(); } @@ -8828,9 +8822,8 @@ nsresult HTMLEditRules::ApplyBlockStyle( return NS_OK; } -template SplitNodeResult HTMLEditRules::MaybeSplitAncestorsForInsertWithTransaction( - nsAtom& aTag, const EditorDOMPointBase& aStartOfDeepestRightNode) { + nsAtom& aTag, const EditorDOMPoint& aStartOfDeepestRightNode) { MOZ_ASSERT(IsEditorDataAvailable()); if (NS_WARN_IF(!aStartOfDeepestRightNode.IsSet())) { @@ -8908,7 +8901,7 @@ nsresult HTMLEditRules::JoinNearestEditableNodesWithTransaction( int32_t parOffset = parent->ComputeIndexOf(&aNodeLeft); nsresult rv = MOZ_KnownLive(HTMLEditorRef()) .MoveNodeWithTransaction( - aNodeRight, EditorRawDOMPoint(parent, parOffset)); + aNodeRight, EditorDOMPoint(parent, parOffset)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -9145,7 +9138,7 @@ HTMLEditRules::InsertBRElementToEmptyListItemsAndTableCellsInChangedRange() { // still pass the "IsEmptyNode" test, and we want the br's to be after // them. Also, we want the br to be after the selection if the selection // is in this node. - EditorRawDOMPoint endOfNode; + EditorDOMPoint endOfNode; endOfNode.SetToEndOf(node); // XXX This method should return nsreuslt due to may be destroyed by this // CreateMozBr() call. @@ -9663,7 +9656,7 @@ nsresult HTMLEditRules::RemoveEmptyNodesInChangedRange() { // but preserve br. RefPtr brElement = MOZ_KnownLive(HTMLEditorRef()) - .InsertBrElementWithTransaction(EditorRawDOMPoint(delNode)); + .InsertBrElementWithTransaction(EditorDOMPoint(delNode)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -10064,8 +10057,8 @@ nsresult HTMLEditRules::InsertBRIfNeededInternal(nsINode& aNode, } CreateElementResult createBrResult = - !aInsertMozBR ? CreateBR(EditorRawDOMPoint(&aNode, 0)) - : CreateMozBR(EditorRawDOMPoint(&aNode, 0)); + !aInsertMozBR ? CreateBR(EditorDOMPoint(&aNode, 0)) + : CreateMozBR(EditorDOMPoint(&aNode, 0)); if (NS_WARN_IF(createBrResult.Failed())) { return createBrResult.Rv(); } @@ -10380,7 +10373,7 @@ nsresult HTMLEditRules::MakeSureElemStartsOrEndsOnCR(nsINode& aNode, } } if (!foundCR) { - EditorRawDOMPoint pointToInsert; + EditorDOMPoint pointToInsert; if (!aStarts) { pointToInsert.SetToEndOf(&aNode); } else { @@ -10714,7 +10707,7 @@ nsresult HTMLEditRules::PrepareToMakeElementAbsolutePosition( "Failed to create current positioned div element"); *aTargetElement = curPositionedDiv; } - EditorRawDOMPoint atEndOfCurPositionedDiv; + EditorDOMPoint atEndOfCurPositionedDiv; atEndOfCurPositionedDiv.SetToEndOf(curPositionedDiv); curList = MOZ_KnownLive(HTMLEditorRef()) .CreateNodeWithTransaction(MOZ_KnownLive(*containerName), @@ -10774,10 +10767,10 @@ nsresult HTMLEditRules::PrepareToMakeElementAbsolutePosition( return splitNodeResult.Rv(); } if (!curPositionedDiv) { - EditorRawDOMPoint atListItemParent(atListItem.GetContainer()); - curPositionedDiv = - MOZ_KnownLive(HTMLEditorRef()) - .CreateNodeWithTransaction(*nsGkAtoms::div, atListItemParent); + curPositionedDiv = MOZ_KnownLive(HTMLEditorRef()) + .CreateNodeWithTransaction( + *nsGkAtoms::div, + EditorDOMPoint(atListItem.GetContainer())); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -10786,7 +10779,7 @@ nsresult HTMLEditRules::PrepareToMakeElementAbsolutePosition( "Failed to create current positioned div element"); *aTargetElement = curPositionedDiv; } - EditorRawDOMPoint atEndOfCurPositionedDiv; + EditorDOMPoint atEndOfCurPositionedDiv; atEndOfCurPositionedDiv.SetToEndOf(curPositionedDiv); curList = MOZ_KnownLive(HTMLEditorRef()) .CreateNodeWithTransaction(MOZ_KnownLive(*containerName), diff --git a/editor/libeditor/HTMLEditRules.h b/editor/libeditor/HTMLEditRules.h index add90a77bd92..ba8fc0603218 100644 --- a/editor/libeditor/HTMLEditRules.h +++ b/editor/libeditor/HTMLEditRules.h @@ -1087,10 +1087,9 @@ class HTMLEditRules : public TextEditRules { * @return When succeeded, SplitPoint() returns * the point to insert the element. */ - template MOZ_CAN_RUN_SCRIPT MOZ_MUST_USE SplitNodeResult MaybeSplitAncestorsForInsertWithTransaction( - nsAtom& aTag, const EditorDOMPointBase& aStartOfDeepestRightNode); + nsAtom& aTag, const EditorDOMPoint& aStartOfDeepestRightNode); /** * JoinNearestEditableNodesWithTransaction() joins two editable nodes which diff --git a/editor/libeditor/HTMLEditor.cpp b/editor/libeditor/HTMLEditor.cpp index 863744358bae..b15af63b6bf8 100644 --- a/editor/libeditor/HTMLEditor.cpp +++ b/editor/libeditor/HTMLEditor.cpp @@ -133,13 +133,6 @@ bool HTMLEditorPrefs::sUserWantsToEnableResizingUIByDefault = false; bool HTMLEditorPrefs::sUserWantsToEnableInlineTableEditingUIByDefault = false; bool HTMLEditorPrefs::sUserWantsToEnableAbsolutePositioningUIByDefault = false; -template EditorDOMPoint HTMLEditor::InsertNodeIntoProperAncestorWithTransaction( - nsIContent& aNode, const EditorDOMPoint& aPointToInsert, - SplitAtEdges aSplitAtEdges); -template EditorDOMPoint HTMLEditor::InsertNodeIntoProperAncestorWithTransaction( - nsIContent& aNode, const EditorRawDOMPoint& aPointToInsert, - SplitAtEdges aSplitAtEdges); - HTMLEditor::HTMLEditor() : mCRInParagraphCreatesParagraph(false), mCSSAware(false), @@ -1184,7 +1177,7 @@ nsresult HTMLEditor::InsertBrElementAtSelectionWithTransaction() { } } - EditorRawDOMPoint atStartOfSelection( + EditorDOMPoint atStartOfSelection( EditorBase::GetStartPoint(*SelectionRefPtr())); if (NS_WARN_IF(!atStartOfSelection.IsSet())) { return NS_ERROR_FAILURE; @@ -1298,7 +1291,7 @@ nsresult HTMLEditor::ReplaceHeadContentsWithSourceWithTransaction( // Loop over the contents of the fragment and move into the document while (nsCOMPtr child = documentFragment->GetFirstChild()) { nsresult rv = InsertNodeWithTransaction( - *child, EditorRawDOMPoint(headNode, offsetOfNewNode++)); + *child, EditorDOMPoint(headNode, offsetOfNewNode++)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -1611,7 +1604,7 @@ HTMLEditor::InsertElementAtSelection(Element* aElement, bool aDeleteSelection) { if (SelectionRefPtr()->GetAnchorNode()) { EditorRawDOMPoint atAnchor(SelectionRefPtr()->AnchorRef()); // Adjust position based on the node we are going to insert. - EditorRawDOMPoint pointToInsert = + EditorDOMPoint pointToInsert = GetBetterInsertionPointFor(*aElement, atAnchor); if (NS_WARN_IF(!pointToInsert.IsSet())) { return NS_ERROR_FAILURE; @@ -1654,9 +1647,8 @@ HTMLEditor::InsertElementAtSelection(Element* aElement, bool aDeleteSelection) { return NS_OK; } -template EditorDOMPoint HTMLEditor::InsertNodeIntoProperAncestorWithTransaction( - nsIContent& aNode, const EditorDOMPointBase& aPointToInsert, + nsIContent& aNode, const EditorDOMPoint& aPointToInsert, SplitAtEdges aSplitAtEdges) { if (NS_WARN_IF(!aPointToInsert.IsSet())) { return EditorDOMPoint(); @@ -2120,7 +2112,7 @@ HTMLEditor::MakeOrChangeList(const nsAString& aListType, bool entireList, return NS_ERROR_FAILURE; } - EditorRawDOMPoint atStartOfSelection(firstRange->StartRef()); + EditorDOMPoint atStartOfSelection(firstRange->StartRef()); if (NS_WARN_IF(!atStartOfSelection.IsSet()) || NS_WARN_IF(!atStartOfSelection.GetContainerAsContent())) { return NS_ERROR_FAILURE; @@ -2160,9 +2152,8 @@ HTMLEditor::MakeOrChangeList(const nsAString& aListType, bool entireList, return NS_ERROR_FAILURE; } // make a list item - EditorRawDOMPoint atStartOfNewList(newList, 0); RefPtr newItem = - CreateNodeWithTransaction(*nsGkAtoms::li, atStartOfNewList); + CreateNodeWithTransaction(*nsGkAtoms::li, EditorDOMPoint(newList, 0)); if (NS_WARN_IF(!newItem)) { return NS_ERROR_FAILURE; } @@ -2296,7 +2287,7 @@ nsresult HTMLEditor::InsertBasicBlockWithTransaction(nsAtom& aTagName) { return NS_ERROR_FAILURE; } - EditorRawDOMPoint atStartOfSelection(firstRange->StartRef()); + EditorDOMPoint atStartOfSelection(firstRange->StartRef()); if (NS_WARN_IF(!atStartOfSelection.IsSet()) || NS_WARN_IF(!atStartOfSelection.GetContainerAsContent())) { return NS_ERROR_FAILURE; @@ -2436,7 +2427,7 @@ nsresult HTMLEditor::IndentOrOutdentAsSubAction( return NS_ERROR_FAILURE; } - EditorRawDOMPoint atStartOfSelection(firstRange->StartRef()); + EditorDOMPoint atStartOfSelection(firstRange->StartRef()); if (NS_WARN_IF(!atStartOfSelection.IsSet()) || NS_WARN_IF(!atStartOfSelection.GetContainerAsContent())) { return NS_ERROR_FAILURE; @@ -3834,7 +3825,7 @@ nsresult HTMLEditor::RemoveBlockContainerWithTransaction(Element& aElement) { !sibling->IsHTMLElement(nsGkAtoms::br) && !IsBlockNode(child)) { // Insert br node RefPtr brElement = - InsertBrElementWithTransaction(EditorRawDOMPoint(&aElement, 0)); + InsertBrElementWithTransaction(EditorDOMPoint(&aElement, 0)); if (NS_WARN_IF(!brElement)) { return NS_ERROR_FAILURE; } @@ -3852,7 +3843,7 @@ nsresult HTMLEditor::RemoveBlockContainerWithTransaction(Element& aElement) { MOZ_ASSERT(child, "aNode has first editable child but not last?"); if (!IsBlockNode(child) && !child->IsHTMLElement(nsGkAtoms::br)) { // Insert br node - EditorRawDOMPoint endOfNode; + EditorDOMPoint endOfNode; endOfNode.SetToEndOf(&aElement); RefPtr brElement = InsertBrElementWithTransaction(endOfNode); if (NS_WARN_IF(!brElement)) { @@ -3875,7 +3866,7 @@ nsresult HTMLEditor::RemoveBlockContainerWithTransaction(Element& aElement) { !sibling->IsHTMLElement(nsGkAtoms::br)) { // Insert br node RefPtr brElement = - InsertBrElementWithTransaction(EditorRawDOMPoint(&aElement, 0)); + InsertBrElementWithTransaction(EditorDOMPoint(&aElement, 0)); if (NS_WARN_IF(!brElement)) { return NS_ERROR_FAILURE; } @@ -4562,9 +4553,8 @@ nsresult HTMLEditor::CopyLastEditableChildStylesWithTransaction( nsAtom* tagName = elementInPreviousBlock->NodeInfo()->NameAtom(); // At first time, just create the most descendant inline container element. if (!firstClonsedElement) { - EditorRawDOMPoint atStartOfNewBlock(newBlock, 0); - firstClonsedElement = lastClonedElement = - CreateNodeWithTransaction(MOZ_KnownLive(*tagName), atStartOfNewBlock); + firstClonsedElement = lastClonedElement = CreateNodeWithTransaction( + MOZ_KnownLive(*tagName), EditorDOMPoint(newBlock, 0)); if (NS_WARN_IF(!firstClonsedElement)) { return NS_ERROR_FAILURE; } @@ -4591,7 +4581,7 @@ nsresult HTMLEditor::CopyLastEditableChildStylesWithTransaction( } RefPtr brElement = - InsertBrElementWithTransaction(EditorRawDOMPoint(firstClonsedElement, 0)); + InsertBrElementWithTransaction(EditorDOMPoint(firstClonsedElement, 0)); if (NS_WARN_IF(!brElement)) { return NS_ERROR_FAILURE; } diff --git a/editor/libeditor/HTMLEditor.h b/editor/libeditor/HTMLEditor.h index 3500b584f102..e7f11911707d 100644 --- a/editor/libeditor/HTMLEditor.h +++ b/editor/libeditor/HTMLEditor.h @@ -1479,9 +1479,8 @@ class HTMLEditor final : public TextEditor, * @return Returns inserted point if succeeded. * Otherwise, the result is not set. */ - template MOZ_CAN_RUN_SCRIPT EditorDOMPoint InsertNodeIntoProperAncestorWithTransaction( - nsIContent& aNode, const EditorDOMPointBase& aPointToInsert, + nsIContent& aNode, const EditorDOMPoint& aPointToInsert, SplitAtEdges aSplitAtEdges); /** diff --git a/editor/libeditor/HTMLEditorDataTransfer.cpp b/editor/libeditor/HTMLEditorDataTransfer.cpp index 9df65defe20b..c8487707fb14 100644 --- a/editor/libeditor/HTMLEditorDataTransfer.cpp +++ b/editor/libeditor/HTMLEditorDataTransfer.cpp @@ -646,7 +646,7 @@ nsresult HTMLEditor::DoInsertHTMLWithContext( // in a BR that is not visible. If so, the code above just placed // selection inside that. So I split it instead. SplitNodeResult splitLinkResult = SplitNodeDeepWithTransaction( - *linkContent, EditorRawDOMPoint(selNode, selOffset), + *linkContent, EditorDOMPoint(selNode, selOffset), SplitAtEdges::eDoNotCreateEmptyContainer); NS_WARNING_ASSERTION(splitLinkResult.Succeeded(), "Failed to split the link"); diff --git a/editor/libeditor/HTMLStyleEditor.cpp b/editor/libeditor/HTMLStyleEditor.cpp index 5d49583701ed..2180365ea4d3 100644 --- a/editor/libeditor/HTMLStyleEditor.cpp +++ b/editor/libeditor/HTMLStyleEditor.cpp @@ -364,7 +364,7 @@ nsresult HTMLEditor::SetInlinePropertyOnTextNode( nsCOMPtr textNodeForTheRange = &aText; // Split at the end of the range. - EditorRawDOMPoint atEnd(textNodeForTheRange, aEndOffset); + EditorDOMPoint atEnd(textNodeForTheRange, aEndOffset); if (!atEnd.IsEndOfContainer()) { // We need to split off back of text node ErrorResult error; @@ -375,7 +375,7 @@ nsresult HTMLEditor::SetInlinePropertyOnTextNode( } // Split at the start of the range. - EditorRawDOMPoint atStart(textNodeForTheRange, aStartOffset); + EditorDOMPoint atStart(textNodeForTheRange, aStartOffset); if (!atStart.IsStartOfContainer()) { // We need to split off front of text node ErrorResult error; @@ -397,7 +397,7 @@ nsresult HTMLEditor::SetInlinePropertyOnTextNode( if (IsSimpleModifiableNode(sibling, &aProperty, aAttribute, &aValue)) { // Following sib is already right kind of inline node; slide this over return MoveNodeWithTransaction(*textNodeForTheRange, - EditorRawDOMPoint(sibling, 0)); + EditorDOMPoint(sibling, 0)); } } @@ -453,7 +453,7 @@ nsresult HTMLEditor::SetInlinePropertyOnNodeImpl(nsIContent& aNode, } if (IsSimpleModifiableNode(nextSibling, &aProperty, aAttribute, &aValue)) { nsresult rv = - MoveNodeWithTransaction(aNode, EditorRawDOMPoint(nextSibling, 0)); + MoveNodeWithTransaction(aNode, EditorDOMPoint(nextSibling, 0)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -641,7 +641,7 @@ nsresult HTMLEditor::SplitStyleAbovePoint( isSet) { // Found a style node we need to split SplitNodeResult splitNodeResult = SplitNodeDeepWithTransaction( - *node, EditorRawDOMPoint(*aNode, *aOffset), + *node, EditorDOMPoint(*aNode, *aOffset), SplitAtEdges::eAllowToCreateEmptyContainer); NS_WARNING_ASSERTION(splitNodeResult.Succeeded(), "Failed to split the node"); @@ -732,8 +732,7 @@ nsresult HTMLEditor::ClearStyle(nsCOMPtr* aNode, int32_t* aOffset, // leftNode. This is so we you don't revert back to the previous style // if you happen to click at the end of a line. if (savedBR) { - rv = - MoveNodeWithTransaction(*savedBR, EditorRawDOMPoint(newSelParent, 0)); + rv = MoveNodeWithTransaction(*savedBR, EditorDOMPoint(newSelParent, 0)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -1641,7 +1640,7 @@ nsresult HTMLEditor::RelativeFontChangeOnTextNode(FontSize aDir, nsCOMPtr textNodeForTheRange = &aTextNode; // Split at the end of the range. - EditorRawDOMPoint atEnd(textNodeForTheRange, aEndOffset); + EditorDOMPoint atEnd(textNodeForTheRange, aEndOffset); if (!atEnd.IsEndOfContainer()) { // We need to split off back of text node ErrorResult error; @@ -1652,7 +1651,7 @@ nsresult HTMLEditor::RelativeFontChangeOnTextNode(FontSize aDir, } // Split at the start of the range. - EditorRawDOMPoint atStart(textNodeForTheRange, aStartOffset); + EditorDOMPoint atStart(textNodeForTheRange, aStartOffset); if (!atStart.IsStartOfContainer()) { // We need to split off front of text node ErrorResult error; @@ -1678,7 +1677,7 @@ nsresult HTMLEditor::RelativeFontChangeOnTextNode(FontSize aDir, if (sibling && sibling->IsHTMLElement(nodeType)) { // Following sib is already right kind of inline node; slide this over nsresult rv = MoveNodeWithTransaction(*textNodeForTheRange, - EditorRawDOMPoint(sibling, 0)); + EditorDOMPoint(sibling, 0)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -1789,7 +1788,7 @@ nsresult HTMLEditor::RelativeFontChangeOnNode(int32_t aSizeChange, if (sibling && sibling->IsHTMLElement(atom)) { // following sib is already right kind of inline node; slide this over // into it - return MoveNodeWithTransaction(*aNode, EditorRawDOMPoint(sibling, 0)); + return MoveNodeWithTransaction(*aNode, EditorDOMPoint(sibling, 0)); } // else insert it above aNode diff --git a/editor/libeditor/HTMLTableEditor.cpp b/editor/libeditor/HTMLTableEditor.cpp index ccca99ca9f10..5c708c200a2a 100644 --- a/editor/libeditor/HTMLTableEditor.cpp +++ b/editor/libeditor/HTMLTableEditor.cpp @@ -2799,8 +2799,8 @@ nsresult HTMLEditor::MergeCells(RefPtr aTargetCell, if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } - rv = InsertNodeWithTransaction( - *cellChild, EditorRawDOMPoint(aTargetCell, insertIndex)); + rv = InsertNodeWithTransaction(*cellChild, + EditorDOMPoint(aTargetCell, insertIndex)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } diff --git a/editor/libeditor/TextEditRules.cpp b/editor/libeditor/TextEditRules.cpp index d5169bf3e14c..074a8b04fd3f 100644 --- a/editor/libeditor/TextEditRules.cpp +++ b/editor/libeditor/TextEditRules.cpp @@ -44,11 +44,6 @@ namespace mozilla { using namespace dom; -template CreateElementResult TextEditRules::CreateBRInternal( - const EditorDOMPoint& aPointToInsert, bool aCreateMozBR); -template CreateElementResult TextEditRules::CreateBRInternal( - const EditorRawDOMPoint& aPointToInsert, bool aCreateMozBR); - #define CANCEL_OPERATION_IF_READONLY_OR_DISABLED \ if (IsReadonly() || IsDisabled()) { \ *aCancel = true; \ @@ -982,7 +977,7 @@ nsresult TextEditRules::WillSetText(bool* aCancel, bool* aHandled, } nsresult rv = MOZ_KnownLive(TextEditorRef()) .InsertNodeWithTransaction( - *newNode, EditorRawDOMPoint(rootElement, 0)); + *newNode, EditorDOMPoint(rootElement, 0)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -1473,7 +1468,7 @@ nsresult TextEditRules::CreateTrailingBRIfNeeded() { if (!lastChild->IsHTMLElement(nsGkAtoms::br)) { AutoTransactionsConserveSelection dontChangeMySelection(TextEditorRef()); - EditorRawDOMPoint endOfRoot; + EditorDOMPoint endOfRoot; endOfRoot.SetToEndOf(rootElement); CreateElementResult createMozBrResult = CreateMozBR(endOfRoot); if (NS_WARN_IF(createMozBrResult.Failed())) { @@ -1558,8 +1553,8 @@ nsresult TextEditRules::CreateBogusNodeIfNeeded() { // Put the node in the document. nsresult rv = MOZ_KnownLive(TextEditorRef()) - .InsertNodeWithTransaction( - *newBrElement, EditorRawDOMPoint(rootElement, 0)); + .InsertNodeWithTransaction(*newBrElement, + EditorDOMPoint(rootElement, 0)); if (NS_WARN_IF(!CanHandleEditAction())) { return NS_ERROR_EDITOR_DESTROYED; } @@ -1770,9 +1765,8 @@ void TextEditRules::FillBufWithPWChars(nsAString* aOutString, int32_t aLength) { } } -template CreateElementResult TextEditRules::CreateBRInternal( - const EditorDOMPointBase& aPointToInsert, bool aCreateMozBR) { + const EditorDOMPoint& aPointToInsert, bool aCreateMozBR) { MOZ_ASSERT(IsEditorDataAvailable()); if (NS_WARN_IF(!aPointToInsert.IsSet())) { diff --git a/editor/libeditor/TextEditRules.h b/editor/libeditor/TextEditRules.h index dd9b613a8087..436ff4c548d8 100644 --- a/editor/libeditor/TextEditRules.h +++ b/editor/libeditor/TextEditRules.h @@ -312,9 +312,8 @@ class TextEditRules : public nsITimerCallback, public nsINamed { * @return Returns created
element or an error code * if couldn't create new
element. */ - template MOZ_CAN_RUN_SCRIPT CreateElementResult - CreateBR(const EditorDOMPointBase& aPointToInsert) { + CreateBR(const EditorDOMPoint& aPointToInsert) { CreateElementResult ret = CreateBRInternal(aPointToInsert, false); #ifdef DEBUG // If editor is destroyed, it must return NS_ERROR_EDITOR_DESTROYED. @@ -333,9 +332,8 @@ class TextEditRules : public nsITimerCallback, public nsINamed { * @return Returns created
element or an error code * if couldn't create new
element. */ - template MOZ_CAN_RUN_SCRIPT CreateElementResult - CreateMozBR(const EditorDOMPointBase& aPointToInsert) { + CreateMozBR(const EditorDOMPoint& aPointToInsert) { CreateElementResult ret = CreateBRInternal(aPointToInsert, true); #ifdef DEBUG // If editor is destroyed, it must return NS_ERROR_EDITOR_DESTROYED. @@ -391,9 +389,8 @@ class TextEditRules : public nsITimerCallback, public nsINamed { * @return Returns created
element and error code. * If it succeeded, never returns nullptr. */ - template - MOZ_CAN_RUN_SCRIPT CreateElementResult CreateBRInternal( - const EditorDOMPointBase& aPointToInsert, bool aCreateMozBR); + MOZ_CAN_RUN_SCRIPT CreateElementResult + CreateBRInternal(const EditorDOMPoint& aPointToInsert, bool aCreateMozBR); protected: /** diff --git a/editor/libeditor/TextEditor.cpp b/editor/libeditor/TextEditor.cpp index 62069062797d..3458dbd5b6ff 100644 --- a/editor/libeditor/TextEditor.cpp +++ b/editor/libeditor/TextEditor.cpp @@ -64,11 +64,6 @@ namespace mozilla { using namespace dom; -template already_AddRefed TextEditor::InsertBrElementWithTransaction( - const EditorDOMPoint& aPointToInsert, EDirection aSelect); -template already_AddRefed TextEditor::InsertBrElementWithTransaction( - const EditorRawDOMPoint& aPointToInsert, EDirection aSelect); - TextEditor::TextEditor() : mWrapColumn(0), mMaxTextLength(-1), @@ -242,9 +237,8 @@ TextEditor::SetDocumentCharacterSet(const nsACString& characterSet) { } // Create a new meta charset tag - EditorRawDOMPoint atStartOfHeadNode(headNode, 0); RefPtr metaElement = - CreateNodeWithTransaction(*nsGkAtoms::meta, atStartOfHeadNode); + CreateNodeWithTransaction(*nsGkAtoms::meta, EditorDOMPoint(headNode, 0)); if (NS_WARN_IF(!metaElement)) { return NS_OK; } @@ -436,10 +430,8 @@ nsresult TextEditor::InsertLineBreakAsAction() { return NS_OK; } -template already_AddRefed TextEditor::InsertBrElementWithTransaction( - const EditorDOMPointBase& aPointToInsert, - EDirection aSelect /* = eNone */) { + const EditorDOMPoint& aPointToInsert, EDirection aSelect /* = eNone */) { MOZ_ASSERT(IsEditActionDataAvailable()); if (NS_WARN_IF(!aPointToInsert.IsSet())) { @@ -869,7 +861,7 @@ already_AddRefed TextEditor::DeleteSelectionAndCreateElement( return nullptr; } - EditorRawDOMPoint pointToInsert(SelectionRefPtr()->AnchorRef()); + EditorDOMPoint pointToInsert(SelectionRefPtr()->AnchorRef()); if (!pointToInsert.IsSet()) { return nullptr; } diff --git a/editor/libeditor/TextEditor.h b/editor/libeditor/TextEditor.h index bb25f1768022..9d2b943612c8 100644 --- a/editor/libeditor/TextEditor.h +++ b/editor/libeditor/TextEditor.h @@ -354,10 +354,8 @@ class TextEditor : public EditorBase, public nsIPlaintextEditor { * @return The new
node. If failed to create new *
node, returns nullptr. */ - template MOZ_CAN_RUN_SCRIPT already_AddRefed InsertBrElementWithTransaction( - const EditorDOMPointBase& aPointToInsert, - EDirection aSelect = eNone); + const EditorDOMPoint& aPointToInsert, EDirection aSelect = eNone); /** * Extends the selection for given deletion operation diff --git a/editor/libeditor/WSRunObject.cpp b/editor/libeditor/WSRunObject.cpp index 0725ba8d6d5b..5785be61397f 100644 --- a/editor/libeditor/WSRunObject.cpp +++ b/editor/libeditor/WSRunObject.cpp @@ -55,12 +55,6 @@ template void WSRunObject::NextVisibleNode(const EditorRawDOMPoint& aPoint, nsCOMPtr* outVisNode, int32_t* outVisOffset, WSType* outType) const; -template already_AddRefed WSRunObject::InsertBreak( - Selection& aSelection, const EditorDOMPoint& aPointToInsert, - nsIEditor::EDirection aSelect); -template already_AddRefed WSRunObject::InsertBreak( - Selection& aSelection, const EditorRawDOMPoint& aPointToInsert, - nsIEditor::EDirection aSelect); template void WSRunObject::GetASCIIWhitespacesBounds( int16_t aDir, const EditorDOMPoint& aPoint, dom::Text** outStartNode, int32_t* outStartOffset, dom::Text** outEndNode, int32_t* outEndOffset); @@ -171,9 +165,8 @@ nsresult WSRunObject::PrepareToSplitAcrossBlocks(HTMLEditor* aHTMLEditor, return wsObj.PrepareToSplitAcrossBlocksPriv(); } -template already_AddRefed WSRunObject::InsertBreak( - Selection& aSelection, const EditorDOMPointBase& aPointToInsert, + Selection& aSelection, const EditorDOMPoint& aPointToInsert, nsIEditor::EDirection aSelect) { if (NS_WARN_IF(!aPointToInsert.IsSet())) { return nullptr; @@ -393,8 +386,8 @@ nsresult WSRunObject::DeleteWSBackward() { // Easy case, preformatted ws. if (mPRE && (nsCRT::IsAsciiSpace(point.mChar) || point.mChar == kNBSP)) { nsresult rv = - DeleteRange(EditorRawDOMPoint(point.mTextNode, point.mOffset), - EditorRawDOMPoint(point.mTextNode, point.mOffset + 1)); + DeleteRange(EditorDOMPoint(point.mTextNode, point.mOffset), + EditorDOMPoint(point.mTextNode, point.mOffset + 1)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -420,8 +413,8 @@ nsresult WSRunObject::DeleteWSBackward() { NS_ENSURE_SUCCESS(rv, rv); // finally, delete that ws - rv = DeleteRange(EditorRawDOMPoint(startNode, startOffset), - EditorRawDOMPoint(endNode, endOffset)); + rv = DeleteRange(EditorDOMPoint(startNode, startOffset), + EditorDOMPoint(endNode, endOffset)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -439,8 +432,8 @@ nsresult WSRunObject::DeleteWSBackward() { NS_ENSURE_SUCCESS(rv, rv); // finally, delete that ws - rv = DeleteRange(EditorRawDOMPoint(node, startOffset), - EditorRawDOMPoint(node, endOffset)); + rv = DeleteRange(EditorDOMPoint(node, startOffset), + EditorDOMPoint(node, endOffset)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -457,8 +450,8 @@ nsresult WSRunObject::DeleteWSForward() { // Easy case, preformatted ws. if (mPRE && (nsCRT::IsAsciiSpace(point.mChar) || point.mChar == kNBSP)) { nsresult rv = - DeleteRange(EditorRawDOMPoint(point.mTextNode, point.mOffset), - EditorRawDOMPoint(point.mTextNode, point.mOffset + 1)); + DeleteRange(EditorDOMPoint(point.mTextNode, point.mOffset), + EditorDOMPoint(point.mTextNode, point.mOffset + 1)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -483,8 +476,8 @@ nsresult WSRunObject::DeleteWSForward() { NS_ENSURE_SUCCESS(rv, rv); // Finally, delete that ws - rv = DeleteRange(EditorRawDOMPoint(startNode, startOffset), - EditorRawDOMPoint(endNode, endOffset)); + rv = DeleteRange(EditorDOMPoint(startNode, startOffset), + EditorDOMPoint(endNode, endOffset)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -502,8 +495,8 @@ nsresult WSRunObject::DeleteWSForward() { NS_ENSURE_SUCCESS(rv, rv); // Finally, delete that ws - rv = DeleteRange(EditorRawDOMPoint(node, startOffset), - EditorRawDOMPoint(node, endOffset)); + rv = DeleteRange(EditorDOMPoint(node, startOffset), + EditorDOMPoint(node, endOffset)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } @@ -1302,10 +1295,8 @@ nsresult WSRunObject::PrepareToSplitAcrossBlocksPriv() { return NS_OK; } -template -nsresult WSRunObject::DeleteRange( - const EditorDOMPointBase& aStartPoint, - const EditorDOMPointBase& aEndPoint) { +nsresult WSRunObject::DeleteRange(const EditorDOMPoint& aStartPoint, + const EditorDOMPoint& aEndPoint) { if (NS_WARN_IF(!aStartPoint.IsSet()) || NS_WARN_IF(!aEndPoint.IsSet())) { return NS_ERROR_INVALID_ARG; } @@ -1884,9 +1875,8 @@ nsresult WSRunObject::CheckTrailingNBSPOfRun(WSFragment* aRun) { return NS_OK; } -template nsresult WSRunObject::ReplacePreviousNBSPIfUnncessary( - WSFragment* aRun, const EditorDOMPointBase& aPoint) { + WSFragment* aRun, const EditorDOMPoint& aPoint) { if (NS_WARN_IF(!aRun) || NS_WARN_IF(!aPoint.IsSet())) { return NS_ERROR_INVALID_ARG; } diff --git a/editor/libeditor/WSRunObject.h b/editor/libeditor/WSRunObject.h index 9f09b68c5d30..a851a731a542 100644 --- a/editor/libeditor/WSRunObject.h +++ b/editor/libeditor/WSRunObject.h @@ -240,9 +240,8 @@ class MOZ_STACK_CLASS WSRunObject final { * @return The new
node. If failed to create new
* node, returns nullptr. */ - template MOZ_CAN_RUN_SCRIPT already_AddRefed InsertBreak( - Selection& aSelection, const EditorDOMPointBase& aPointToInsert, + Selection& aSelection, const EditorDOMPoint& aPointToInsert, nsIEditor::EDirection aSelect); /** @@ -387,10 +386,8 @@ class MOZ_STACK_CLASS WSRunObject final { * When aEndPoint is in a text node, removes the text data before the point. * Removes any nodes between them. */ - template - MOZ_CAN_RUN_SCRIPT nsresult - DeleteRange(const EditorDOMPointBase& aStartPoint, - const EditorDOMPointBase& aEndPoint); + MOZ_CAN_RUN_SCRIPT nsresult DeleteRange(const EditorDOMPoint& aStartPoint, + const EditorDOMPoint& aEndPoint); /** * GetNextCharPoint() returns next character's point of aPoint. If there is @@ -492,9 +489,8 @@ class MOZ_STACK_CLASS WSRunObject final { * @param aPoint Current insertion point. Its previous character is * unnecessary NBSP will be checked. */ - template MOZ_CAN_RUN_SCRIPT nsresult ReplacePreviousNBSPIfUnncessary( - WSFragment* aRun, const EditorDOMPointBase& aPoint); + WSFragment* aRun, const EditorDOMPoint& aPoint); MOZ_CAN_RUN_SCRIPT nsresult CheckLeadingNBSP(WSFragment* aRun, nsINode* aNode, int32_t aOffset); @@ -502,11 +498,11 @@ class MOZ_STACK_CLASS WSRunObject final { MOZ_CAN_RUN_SCRIPT nsresult Scrub(); bool IsBlockNode(nsINode* aNode); - EditorRawDOMPoint StartPoint() const { - return EditorRawDOMPoint(mStartNode, mStartOffset); + EditorDOMPoint StartPoint() const { + return EditorDOMPoint(mStartNode, mStartOffset); } - EditorRawDOMPoint EndPoint() const { - return EditorRawDOMPoint(mEndNode, mEndOffset); + EditorDOMPoint EndPoint() const { + return EditorDOMPoint(mEndNode, mEndOffset); } // The node passed to our constructor.