Bug 1716728 - Part 2: Remove TextEditor::EnsurePaddingBRElementForEmptyEditor() r=masayuki

Differential Revision: https://phabricator.services.mozilla.com/D118064
This commit is contained in:
Kagami Sascha Rosylight 2021-06-21 01:48:59 +00:00
Родитель 7851edce6e
Коммит 5dc38e6e2f
3 изменённых файлов: 0 добавлений и 64 удалений

Просмотреть файл

@ -114,11 +114,6 @@ nsresult TextEditor::OnEndHandlingTopLevelEditSubAction() {
break;
}
if (NS_FAILED(rv = EnsurePaddingBRElementForEmptyEditor())) {
NS_WARNING("TextEditor::EnsurePaddingBRElementForEmptyEditor() failed");
break;
}
if (!IsSingleLineEditor() &&
NS_FAILED(rv = EnsurePaddingBRElementInMultilineEditor())) {
NS_WARNING(

Просмотреть файл

@ -623,58 +623,6 @@ nsresult TextEditor::RemoveAttributeOrEquivalent(Element* aElement,
return EditorBase::ToGenericNSResult(rv);
}
nsresult TextEditor::EnsurePaddingBRElementForEmptyEditor() {
MOZ_ASSERT(IsEditActionDataAvailable());
// If there is padding <br> element for empty editor, we have no work to do.
if (mPaddingBRElementForEmptyEditor) {
return NS_OK;
}
// Likewise, nothing to be done if we could never have inserted a trailing
// <br> element.
// XXX Why don't we use same path for <textarea> and <input>?
if (IsSingleLineEditor()) {
nsresult rv = MaybeCreatePaddingBRElementForEmptyEditor();
NS_WARNING_ASSERTION(
NS_SUCCEEDED(rv),
"EditorBase::MaybeCreatePaddingBRElementForEmptyEditor() failed");
return rv;
}
if (NS_WARN_IF(!mRootElement)) {
return NS_ERROR_FAILURE;
}
uint32_t childCount = mRootElement->GetChildCount();
if (childCount == 0) {
nsresult rv = MaybeCreatePaddingBRElementForEmptyEditor();
NS_WARNING_ASSERTION(
NS_SUCCEEDED(rv),
"EditorBase::MaybeCreatePaddingBRElementForEmptyEditor() failed");
return rv;
}
if (childCount > 1) {
return NS_OK;
}
RefPtr<HTMLBRElement> brElement =
HTMLBRElement::FromNodeOrNull(mRootElement->GetFirstChild());
if (!brElement ||
!EditorUtils::IsPaddingBRElementForEmptyLastLine(*brElement)) {
return NS_OK;
}
// Rather than deleting this node from the DOM tree we should instead
// morph this <br> element into the padding <br> element for editor.
mPaddingBRElementForEmptyEditor = std::move(brElement);
mPaddingBRElementForEmptyEditor->UnsetFlags(NS_PADDING_FOR_EMPTY_LAST_LINE);
mPaddingBRElementForEmptyEditor->SetFlags(NS_PADDING_FOR_EMPTY_EDITOR);
return NS_OK;
}
nsresult TextEditor::SetUnmaskRangeInternal(uint32_t aStart, uint32_t aLength,
uint32_t aTimeout, bool aNotify,
bool aForceStartMasking) {

Просмотреть файл

@ -421,13 +421,6 @@ class TextEditor final : public EditorBase,
ErrorResult& aRv) final;
MOZ_CAN_RUN_SCRIPT nsresult OnEndHandlingTopLevelEditSubAction() final;
/**
* EnsurePaddingBRElementForEmptyEditor() creates padding <br> element for
* empty editor or changes padding <br> element for empty last line to for
* empty editor when we're empty.
*/
MOZ_CAN_RUN_SCRIPT nsresult EnsurePaddingBRElementForEmptyEditor();
/**
* HandleInlineSpellCheckAfterEdit() does spell-check after handling top level
* edit subaction.