diff options
author | Gaming4JC <g4jc@hyperbola.info> | 2020-01-01 14:56:19 -0500 |
---|---|---|
committer | Gaming4JC <g4jc@hyperbola.info> | 2020-01-26 15:49:16 -0500 |
commit | a2b56b295b8bd089b74c5d93148edafe7e6da912 (patch) | |
tree | b982cd6ea8477203d0081c64224f9955bd376d84 /dom | |
parent | a1cce3b2b00bbd9f4983013ddd8934a7bccb9e99 (diff) | |
download | UXP-a2b56b295b8bd089b74c5d93148edafe7e6da912.tar UXP-a2b56b295b8bd089b74c5d93148edafe7e6da912.tar.gz UXP-a2b56b295b8bd089b74c5d93148edafe7e6da912.tar.lz UXP-a2b56b295b8bd089b74c5d93148edafe7e6da912.tar.xz UXP-a2b56b295b8bd089b74c5d93148edafe7e6da912.zip |
Bug 1276438 part 1. Move the implementation of the .body getter from nsHTMLDocument to nsIDocument.
Tag UXP Issue #1344
Tag UXP Issue #252
Diffstat (limited to 'dom')
-rw-r--r-- | dom/base/nsDocument.cpp | 20 | ||||
-rw-r--r-- | dom/base/nsIDocument.h | 4 | ||||
-rw-r--r-- | dom/html/nsHTMLDocument.cpp | 20 | ||||
-rw-r--r-- | dom/html/nsHTMLDocument.h | 2 |
4 files changed, 25 insertions, 21 deletions
diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp index afe88a454..83c2e5bb7 100644 --- a/dom/base/nsDocument.cpp +++ b/dom/base/nsDocument.cpp @@ -6536,6 +6536,26 @@ nsIDocument::GetHtmlChildElement(nsIAtom* aTag) return nullptr; } +nsGenericHTMLElement* +nsIDocument::GetBody() +{ + Element* html = GetHtmlElement(); + if (!html) { + return nullptr; + } + + for (nsIContent* child = html->GetFirstChild(); + child; + child = child->GetNextSibling()) { + if (child->IsHTMLElement(nsGkAtoms::body) || + child->IsHTMLElement(nsGkAtoms::frameset)) { + return static_cast<nsGenericHTMLElement*>(child); + } + } + + return nullptr; +} + Element* nsDocument::GetTitleElement() { diff --git a/dom/base/nsIDocument.h b/dom/base/nsIDocument.h index fdaee39ca..b3879c624 100644 --- a/dom/base/nsIDocument.h +++ b/dom/base/nsIDocument.h @@ -61,6 +61,7 @@ class nsFrameLoader; class nsHTMLCSSStyleSheet; class nsHTMLDocument; class nsHTMLStyleSheet; +class nsGenericHTMLElement; class nsIAtom; class nsIBFCacheEntry; class nsIChannel; @@ -1036,6 +1037,9 @@ public: Element* GetHeadElement() { return GetHtmlChildElement(nsGkAtoms::head); } + // Get the "body" in the sense of document.body: The first <body> or + // <frameset> that's a child of a root <html> + nsGenericHTMLElement* GetBody(); /** * Accessors to the collection of stylesheets owned by this document. diff --git a/dom/html/nsHTMLDocument.cpp b/dom/html/nsHTMLDocument.cpp index 0f2d90673..23c73298d 100644 --- a/dom/html/nsHTMLDocument.cpp +++ b/dom/html/nsHTMLDocument.cpp @@ -1013,26 +1013,6 @@ nsHTMLDocument::SetDomain(const nsAString& aDomain, ErrorResult& rv) rv = NodePrincipal()->SetDomain(newURI); } -nsGenericHTMLElement* -nsHTMLDocument::GetBody() -{ - Element* html = GetHtmlElement(); - if (!html) { - return nullptr; - } - - for (nsIContent* child = html->GetFirstChild(); - child; - child = child->GetNextSibling()) { - if (child->IsHTMLElement(nsGkAtoms::body) || - child->IsHTMLElement(nsGkAtoms::frameset)) { - return static_cast<nsGenericHTMLElement*>(child); - } - } - - return nullptr; -} - NS_IMETHODIMP nsHTMLDocument::GetBody(nsIDOMHTMLElement** aBody) { diff --git a/dom/html/nsHTMLDocument.h b/dom/html/nsHTMLDocument.h index 1fa81f6cd..02fc22d42 100644 --- a/dom/html/nsHTMLDocument.h +++ b/dom/html/nsHTMLDocument.h @@ -175,7 +175,7 @@ public: JS::MutableHandle<JSObject*> aRetval, mozilla::ErrorResult& rv); void GetSupportedNames(nsTArray<nsString>& aNames); - nsGenericHTMLElement *GetBody(); + using nsIDocument::GetBody; void SetBody(nsGenericHTMLElement* aBody, mozilla::ErrorResult& rv); mozilla::dom::HTMLSharedElement *GetHead() { return static_cast<mozilla::dom::HTMLSharedElement*>(GetHeadElement()); |