зеркало из https://github.com/mozilla/gecko-dev.git
Bug 923913 - Make Element.inner/outerHTML [Pure], r=bz
--HG-- extra : rebase_source : 81556c5031279cee3f33639a47f4fb83e2743403
This commit is contained in:
Родитель
d35f76c090
Коммит
986245e7be
|
@ -725,9 +725,9 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
virtual void GetInnerHTML(nsAString& aInnerHTML, ErrorResult& aError);
|
||||
NS_IMETHOD GetInnerHTML(nsAString& aInnerHTML);
|
||||
virtual void SetInnerHTML(const nsAString& aInnerHTML, ErrorResult& aError);
|
||||
void GetOuterHTML(nsAString& aOuterHTML, ErrorResult& aError);
|
||||
void GetOuterHTML(nsAString& aOuterHTML);
|
||||
void SetOuterHTML(const nsAString& aOuterHTML, ErrorResult& aError);
|
||||
void InsertAdjacentHTML(const nsAString& aPosition, const nsAString& aText,
|
||||
ErrorResult& aError);
|
||||
|
@ -1124,7 +1124,7 @@ private:
|
|||
nsIScrollableFrame* GetScrollFrame(nsIFrame **aStyledFrame = nullptr,
|
||||
bool aFlushLayout = true);
|
||||
|
||||
nsresult GetMarkup(bool aIncludeSelf, nsAString& aMarkup);
|
||||
void GetMarkup(bool aIncludeSelf, nsAString& aMarkup);
|
||||
|
||||
// Data members
|
||||
nsEventStates mState;
|
||||
|
|
|
@ -3107,14 +3107,15 @@ Serialize(Element* aRoot, bool aDescendentsOnly, nsAString& aOut)
|
|||
}
|
||||
}
|
||||
|
||||
nsresult
|
||||
void
|
||||
Element::GetMarkup(bool aIncludeSelf, nsAString& aMarkup)
|
||||
{
|
||||
aMarkup.Truncate();
|
||||
|
||||
nsIDocument* doc = OwnerDoc();
|
||||
if (IsInHTMLDocument()) {
|
||||
return Serialize(this, !aIncludeSelf, aMarkup) ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
|
||||
Serialize(this, !aIncludeSelf, aMarkup);
|
||||
return;
|
||||
}
|
||||
|
||||
nsAutoString contentType;
|
||||
|
@ -3135,7 +3136,7 @@ Element::GetMarkup(bool aIncludeSelf, nsAString& aMarkup)
|
|||
docEncoder = do_CreateInstance(NS_DOC_ENCODER_CONTRACTID_BASE "application/xml");
|
||||
}
|
||||
|
||||
NS_ENSURE_TRUE(docEncoder, NS_ERROR_FAILURE);
|
||||
NS_ENSURE_TRUE_VOID(docEncoder);
|
||||
|
||||
uint32_t flags = nsIDocumentEncoder::OutputEncodeBasicEntities |
|
||||
// Output DOM-standard newlines
|
||||
|
@ -3153,8 +3154,8 @@ Element::GetMarkup(bool aIncludeSelf, nsAString& aMarkup)
|
|||
}
|
||||
}
|
||||
|
||||
nsresult rv = docEncoder->NativeInit(doc, contentType, flags);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
DebugOnly<nsresult> rv = docEncoder->NativeInit(doc, contentType, flags);
|
||||
MOZ_ASSERT(NS_SUCCEEDED(rv));
|
||||
|
||||
if (aIncludeSelf) {
|
||||
docEncoder->SetNativeNode(this);
|
||||
|
@ -3162,10 +3163,10 @@ Element::GetMarkup(bool aIncludeSelf, nsAString& aMarkup)
|
|||
docEncoder->SetNativeContainerNode(this);
|
||||
}
|
||||
rv = docEncoder->EncodeToString(aMarkup);
|
||||
MOZ_ASSERT(NS_SUCCEEDED(rv));
|
||||
if (!aIncludeSelf) {
|
||||
doc->SetCachedEncoder(docEncoder.forget());
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3197,10 +3198,11 @@ FireMutationEventsForDirectParsing(nsIDocument* aDoc, nsIContent* aDest,
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
Element::GetInnerHTML(nsAString& aInnerHTML, ErrorResult& aError)
|
||||
NS_IMETHODIMP
|
||||
Element::GetInnerHTML(nsAString& aInnerHTML)
|
||||
{
|
||||
aError = GetMarkup(false, aInnerHTML);
|
||||
GetMarkup(false, aInnerHTML);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -3266,9 +3268,9 @@ Element::SetInnerHTML(const nsAString& aInnerHTML, ErrorResult& aError)
|
|||
}
|
||||
|
||||
void
|
||||
Element::GetOuterHTML(nsAString& aOuterHTML, ErrorResult& aError)
|
||||
Element::GetOuterHTML(nsAString& aOuterHTML)
|
||||
{
|
||||
aError = GetMarkup(true, aOuterHTML);
|
||||
GetMarkup(true, aOuterHTML);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -16,9 +16,7 @@ public:
|
|||
HTMLElement(already_AddRefed<nsINodeInfo> aNodeInfo);
|
||||
virtual ~HTMLElement();
|
||||
|
||||
using nsGenericHTMLElement::GetInnerHTML;
|
||||
virtual void GetInnerHTML(nsAString& aInnerHTML,
|
||||
mozilla::ErrorResult& aError) MOZ_OVERRIDE;
|
||||
NS_IMETHOD GetInnerHTML(nsAString& aInnerHTML) MOZ_OVERRIDE;
|
||||
|
||||
virtual nsresult Clone(nsINodeInfo* aNodeInfo,
|
||||
nsINode** aResult) const MOZ_OVERRIDE;
|
||||
|
@ -39,8 +37,8 @@ HTMLElement::~HTMLElement()
|
|||
|
||||
NS_IMPL_ELEMENT_CLONE(HTMLElement)
|
||||
|
||||
void
|
||||
HTMLElement::GetInnerHTML(nsAString& aInnerHTML, ErrorResult& aError)
|
||||
NS_IMETHODIMP
|
||||
HTMLElement::GetInnerHTML(nsAString& aInnerHTML)
|
||||
{
|
||||
/**
|
||||
* nsGenericHTMLElement::GetInnerHTML escapes < and > characters (at least).
|
||||
|
@ -52,10 +50,10 @@ HTMLElement::GetInnerHTML(nsAString& aInnerHTML, ErrorResult& aError)
|
|||
if (mNodeInfo->Equals(nsGkAtoms::xmp) ||
|
||||
mNodeInfo->Equals(nsGkAtoms::plaintext)) {
|
||||
nsContentUtils::GetNodeTextContent(this, false, aInnerHTML);
|
||||
return;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsGenericHTMLElement::GetInnerHTML(aInnerHTML, aError);
|
||||
return nsGenericHTMLElement::GetInnerHTML(aInnerHTML);
|
||||
}
|
||||
|
||||
JSObject*
|
||||
|
|
|
@ -226,10 +226,11 @@ HTMLScriptElement::AfterSetAttr(int32_t aNamespaceID, nsIAtom* aName,
|
|||
aNotify);
|
||||
}
|
||||
|
||||
void
|
||||
HTMLScriptElement::GetInnerHTML(nsAString& aInnerHTML, ErrorResult& aError)
|
||||
NS_IMETHODIMP
|
||||
HTMLScriptElement::GetInnerHTML(nsAString& aInnerHTML)
|
||||
{
|
||||
nsContentUtils::GetNodeTextContent(this, false, aInnerHTML);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -30,9 +30,7 @@ public:
|
|||
// nsISupports
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
using nsGenericHTMLElement::GetInnerHTML;
|
||||
virtual void GetInnerHTML(nsAString& aInnerHTML,
|
||||
mozilla::ErrorResult& aError) MOZ_OVERRIDE;
|
||||
NS_IMETHOD GetInnerHTML(nsAString& aInnerHTML) MOZ_OVERRIDE;
|
||||
using nsGenericHTMLElement::SetInnerHTML;
|
||||
virtual void SetInnerHTML(const nsAString& aInnerHTML,
|
||||
mozilla::ErrorResult& aError) MOZ_OVERRIDE;
|
||||
|
|
|
@ -201,10 +201,11 @@ HTMLStyleElement::UnsetAttr(int32_t aNameSpaceID, nsIAtom* aAttribute,
|
|||
return rv;
|
||||
}
|
||||
|
||||
void
|
||||
HTMLStyleElement::GetInnerHTML(nsAString& aInnerHTML, ErrorResult& aError)
|
||||
NS_IMETHODIMP
|
||||
HTMLStyleElement::GetInnerHTML(nsAString& aInnerHTML)
|
||||
{
|
||||
nsContentUtils::GetNodeTextContent(this, false, aInnerHTML);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -33,9 +33,7 @@ public:
|
|||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(HTMLStyleElement,
|
||||
nsGenericHTMLElement)
|
||||
|
||||
using nsGenericHTMLElement::GetInnerHTML;
|
||||
virtual void GetInnerHTML(nsAString& aInnerHTML,
|
||||
mozilla::ErrorResult& aError) MOZ_OVERRIDE;
|
||||
NS_IMETHOD GetInnerHTML(nsAString& aInnerHTML) MOZ_OVERRIDE;
|
||||
using nsGenericHTMLElement::SetInnerHTML;
|
||||
virtual void SetInnerHTML(const nsAString& aInnerHTML,
|
||||
mozilla::ErrorResult& aError) MOZ_OVERRIDE;
|
||||
|
|
|
@ -464,9 +464,8 @@ public:
|
|||
return rv.ErrorCode();
|
||||
}
|
||||
NS_IMETHOD GetOuterHTML(nsAString& aOuterHTML) MOZ_FINAL {
|
||||
mozilla::ErrorResult rv;
|
||||
mozilla::dom::Element::GetOuterHTML(aOuterHTML, rv);
|
||||
return rv.ErrorCode();
|
||||
mozilla::dom::Element::GetOuterHTML(aOuterHTML);
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHOD SetOuterHTML(const nsAString& aOuterHTML) MOZ_FINAL {
|
||||
mozilla::ErrorResult rv;
|
||||
|
@ -528,11 +527,8 @@ public:
|
|||
*aDraggable = Draggable();
|
||||
return NS_OK;
|
||||
}
|
||||
using mozilla::dom::Element::GetInnerHTML;
|
||||
NS_IMETHOD GetInnerHTML(nsAString& aInnerHTML) MOZ_FINAL {
|
||||
mozilla::ErrorResult rv;
|
||||
GetInnerHTML(aInnerHTML, rv);
|
||||
return rv.ErrorCode();
|
||||
NS_IMETHOD GetInnerHTML(nsAString& aInnerHTML) MOZ_OVERRIDE {
|
||||
return mozilla::dom::Element::GetInnerHTML(aInnerHTML);
|
||||
}
|
||||
using mozilla::dom::Element::SetInnerHTML;
|
||||
NS_IMETHOD SetInnerHTML(const nsAString& aInnerHTML) MOZ_FINAL {
|
||||
|
|
|
@ -175,9 +175,9 @@ partial interface Element {
|
|||
|
||||
// http://domparsing.spec.whatwg.org/#extensions-to-the-element-interface
|
||||
partial interface Element {
|
||||
[Throws,TreatNullAs=EmptyString]
|
||||
[Pure,SetterThrows,TreatNullAs=EmptyString]
|
||||
attribute DOMString innerHTML;
|
||||
[Throws,TreatNullAs=EmptyString]
|
||||
[Pure,SetterThrows,TreatNullAs=EmptyString]
|
||||
attribute DOMString outerHTML;
|
||||
[Throws]
|
||||
void insertAdjacentHTML(DOMString position, DOMString text);
|
||||
|
|
Загрузка…
Ссылка в новой задаче