mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1053779 part 1 - Clean up nsEditor::CreateHTMLContent; r=ehsan
This commit is contained in:
parent
5c83a43d29
commit
9582368fce
@ -66,9 +66,8 @@ NS_IMETHODIMP CreateElementTxn::DoTransaction(void)
|
||||
NS_ASSERTION(mEditor && mParent, "bad state");
|
||||
NS_ENSURE_TRUE(mEditor && mParent, NS_ERROR_NOT_INITIALIZED);
|
||||
|
||||
ErrorResult rv;
|
||||
nsCOMPtr<Element> newContent = mEditor->CreateHTMLContent(mTag, rv);
|
||||
NS_ENSURE_SUCCESS(rv.ErrorCode(), rv.ErrorCode());
|
||||
nsCOMPtr<Element> newContent =
|
||||
mEditor->CreateHTMLContent(nsCOMPtr<nsIAtom>(do_GetAtom(mTag)));
|
||||
NS_ENSURE_STATE(newContent);
|
||||
|
||||
mNewNode = newContent->AsDOMNode();
|
||||
|
@ -148,9 +148,9 @@ nsHTMLEditor::CreateAnonymousElement(const nsAString & aTag, nsIDOMNode * aPare
|
||||
NS_ENSURE_TRUE(ps, NS_ERROR_NOT_INITIALIZED);
|
||||
|
||||
// Create a new node through the element factory
|
||||
ErrorResult rv;
|
||||
nsCOMPtr<Element> newContent = CreateHTMLContent(aTag, rv);
|
||||
NS_ENSURE_SUCCESS(rv.ErrorCode(), rv.ErrorCode());
|
||||
nsCOMPtr<Element> newContent =
|
||||
CreateHTMLContent(nsCOMPtr<nsIAtom>(do_GetAtom(aTag)));
|
||||
NS_ENSURE_STATE(newContent);
|
||||
|
||||
nsCOMPtr<nsIDOMElement> newElement = do_QueryInterface(newContent);
|
||||
NS_ENSURE_TRUE(newElement, NS_ERROR_FAILURE);
|
||||
|
@ -2575,13 +2575,14 @@ nsHTMLEditor::CreateElementWithDefaults(const nsAString& aTagName)
|
||||
// the transaction system
|
||||
|
||||
// New call to use instead to get proper HTML element, bug 39919
|
||||
ErrorResult rv;
|
||||
nsCOMPtr<dom::Element> newElement = CreateHTMLContent(realTagName, rv);
|
||||
if (rv.Failed() || !newElement) {
|
||||
nsCOMPtr<Element> newElement =
|
||||
CreateHTMLContent(nsCOMPtr<nsIAtom>(do_GetAtom(realTagName)));
|
||||
if (!newElement) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// Mark the new element dirty, so it will be formatted
|
||||
ErrorResult rv;
|
||||
newElement->SetAttribute(NS_LITERAL_STRING("_moz_dirty"), EmptyString(), rv);
|
||||
|
||||
// Set default values for new elements
|
||||
|
@ -312,10 +312,9 @@ nsHTMLEditor::IsSimpleModifiableNode(nsIContent* aContent,
|
||||
// "text-decoration: underline", which decomposes into four different text-*
|
||||
// properties. So for now, we just create a span, add the desired style, and
|
||||
// see if it matches.
|
||||
ErrorResult rv;
|
||||
nsCOMPtr<Element> newSpan = CreateHTMLContent(NS_LITERAL_STRING("span"), rv);
|
||||
NS_ASSERTION(!rv.Failed(), "CreateHTMLContent failed");
|
||||
NS_ENSURE_SUCCESS(rv.ErrorCode(), false);
|
||||
nsCOMPtr<Element> newSpan = CreateHTMLContent(nsGkAtoms::span);
|
||||
NS_ASSERTION(newSpan, "CreateHTMLContent failed");
|
||||
NS_ENSURE_TRUE(newSpan, false);
|
||||
mHTMLCSSUtils->SetCSSEquivalentToHTMLStyle(newSpan, aProperty,
|
||||
aAttribute, aValue,
|
||||
/*suppress transaction*/ true);
|
||||
|
@ -1566,9 +1566,9 @@ nsEditor::ReplaceContainer(nsINode* aNode,
|
||||
int32_t offset = parent->IndexOf(aNode);
|
||||
|
||||
// create new container
|
||||
ErrorResult rv;
|
||||
*outNode = CreateHTMLContent(aNodeType, rv).take();
|
||||
NS_ENSURE_SUCCESS(rv.ErrorCode(), rv.ErrorCode());
|
||||
*outNode =
|
||||
CreateHTMLContent(nsCOMPtr<nsIAtom>(do_GetAtom(aNodeType))).take();
|
||||
NS_ENSURE_STATE(*outNode);
|
||||
|
||||
nsCOMPtr<nsIDOMElement> elem = do_QueryInterface(*outNode);
|
||||
|
||||
@ -1690,9 +1690,9 @@ nsEditor::InsertContainerAbove(nsIContent* aNode,
|
||||
int32_t offset = parent->IndexOf(aNode);
|
||||
|
||||
// create new container
|
||||
ErrorResult rv;
|
||||
nsCOMPtr<Element> newContent = CreateHTMLContent(aNodeType, rv);
|
||||
NS_ENSURE_SUCCESS(rv.ErrorCode(), rv.ErrorCode());
|
||||
nsCOMPtr<Element> newContent =
|
||||
CreateHTMLContent(nsCOMPtr<nsIAtom>(do_GetAtom(aNodeType)));
|
||||
NS_ENSURE_STATE(newContent);
|
||||
|
||||
// set attribute if needed
|
||||
nsresult res;
|
||||
@ -4767,29 +4767,27 @@ nsresult nsEditor::ClearSelection()
|
||||
}
|
||||
|
||||
already_AddRefed<Element>
|
||||
nsEditor::CreateHTMLContent(const nsAString& aTag, ErrorResult& rv)
|
||||
nsEditor::CreateHTMLContent(nsIAtom* aTag)
|
||||
{
|
||||
MOZ_ASSERT(aTag);
|
||||
|
||||
nsCOMPtr<nsIDocument> doc = GetDocument();
|
||||
if (!doc) {
|
||||
rv.Throw(NS_ERROR_FAILURE);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
// XXX Wallpaper over editor bug (editor tries to create elements with an
|
||||
// empty nodename).
|
||||
if (aTag.IsEmpty()) {
|
||||
if (aTag == nsGkAtoms::_empty) {
|
||||
NS_ERROR("Don't pass an empty tag to nsEditor::CreateHTMLContent, "
|
||||
"check caller.");
|
||||
rv.Throw(NS_ERROR_FAILURE);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIContent> ret;
|
||||
nsresult res = doc->CreateElem(aTag, nullptr, kNameSpaceID_XHTML,
|
||||
getter_AddRefs(ret));
|
||||
if (NS_FAILED(res)) {
|
||||
rv.Throw(res);
|
||||
}
|
||||
nsresult res = doc->CreateElem(nsDependentAtomString(aTag), nullptr,
|
||||
kNameSpaceID_XHTML, getter_AddRefs(ret));
|
||||
NS_ENSURE_SUCCESS(res, nullptr);
|
||||
return dont_AddRef(ret.forget().take()->AsElement());
|
||||
}
|
||||
|
||||
|
@ -255,10 +255,9 @@ public:
|
||||
|
||||
/* Method to replace certain CreateElementNS() calls.
|
||||
Arguments:
|
||||
nsString& aTag - tag you want
|
||||
nsIAtom* aTag - tag you want
|
||||
*/
|
||||
already_AddRefed<mozilla::dom::Element>
|
||||
CreateHTMLContent(const nsAString& aTag, mozilla::ErrorResult& rv);
|
||||
already_AddRefed<mozilla::dom::Element> CreateHTMLContent(nsIAtom* aTag);
|
||||
|
||||
// IME event handlers
|
||||
virtual nsresult BeginIMEComposition(mozilla::WidgetCompositionEvent* aEvent);
|
||||
|
@ -1171,10 +1171,8 @@ nsTextEditRules::CreateBogusNodeIfNeeded(nsISelection *aSelection)
|
||||
}
|
||||
|
||||
// Create a br.
|
||||
ErrorResult res;
|
||||
nsCOMPtr<Element> newContent =
|
||||
mEditor->CreateHTMLContent(NS_LITERAL_STRING("br"), res);
|
||||
NS_ENSURE_SUCCESS(res.ErrorCode(), res.ErrorCode());
|
||||
nsCOMPtr<Element> newContent = mEditor->CreateHTMLContent(nsGkAtoms::br);
|
||||
NS_ENSURE_STATE(newContent);
|
||||
|
||||
// set mBogusNode to be the newly created <br>
|
||||
mBogusNode = do_QueryInterface(newContent);
|
||||
|
Loading…
Reference in New Issue
Block a user