summaryrefslogtreecommitdiffstats
path: root/dom/base/nsDocument.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dom/base/nsDocument.cpp')
-rw-r--r--dom/base/nsDocument.cpp82
1 files changed, 26 insertions, 56 deletions
diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp
index 203c44cbf..a1b1408a5 100644
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -300,9 +300,24 @@ GetHttpChannelHelper(nsIChannel* aChannel, nsIHttpChannel** aHttpChannel)
#define NAME_NOT_VALID ((nsSimpleContentList*)1)
+nsIdentifierMapEntry::nsIdentifierMapEntry(const nsIdentifierMapEntry::AtomOrString& aKey)
+ : mKey(aKey)
+{}
+
+nsIdentifierMapEntry::nsIdentifierMapEntry(const nsIdentifierMapEntry::AtomOrString* aKey)
+ : mKey(aKey ? *aKey : nullptr)
+{}
+
nsIdentifierMapEntry::~nsIdentifierMapEntry()
-{
-}
+{}
+
+nsIdentifierMapEntry::nsIdentifierMapEntry(nsIdentifierMapEntry&& aOther)
+ : mKey(mozilla::Move(aOther.mKey))
+ , mIdContentList(mozilla::Move(aOther.mIdContentList))
+ , mNameContentList(mozilla::Move(aOther.mNameContentList))
+ , mChangeCallbacks(mozilla::Move(aOther.mChangeCallbacks))
+ , mImageElement(mozilla::Move(aOther.mImageElement))
+{}
void
nsIdentifierMapEntry::Traverse(nsCycleCollectionTraversalCallback* aCallback)
@@ -326,6 +341,12 @@ nsIdentifierMapEntry::IsEmpty()
!mChangeCallbacks && !mImageElement;
}
+bool
+nsIdentifierMapEntry::HasNameElement() const
+{
+ return mNameContentList && mNameContentList->Length() != 0;
+}
+
Element*
nsIdentifierMapEntry::GetIdElement()
{
@@ -1226,6 +1247,7 @@ static already_AddRefed<mozilla::dom::NodeInfo> nullNodeInfo;
// ==================================================================
nsIDocument::nsIDocument()
: nsINode(nullNodeInfo),
+ DocumentOrShadowRoot(this),
mReferrerPolicySet(false),
mReferrerPolicy(mozilla::net::RP_Default),
mBlockAllMixedContent(false),
@@ -3234,12 +3256,6 @@ nsDocument::GetElementsByClassName(const nsAString& aClasses,
return NS_OK;
}
-already_AddRefed<nsContentList>
-nsIDocument::GetElementsByClassName(const nsAString& aClasses)
-{
- return nsContentUtils::GetElementsByClassName(this, aClasses);
-}
-
NS_IMETHODIMP
nsDocument::ReleaseCapture()
{
@@ -4729,32 +4745,7 @@ nsDocument::BeginLoad()
void
nsDocument::ReportEmptyGetElementByIdArg()
{
- nsContentUtils::ReportToConsole(nsIScriptError::warningFlag,
- NS_LITERAL_CSTRING("DOM"), this,
- nsContentUtils::eDOM_PROPERTIES,
- "EmptyGetElementByIdParam");
-}
-
-Element*
-nsDocument::GetElementById(const nsAString& aElementId)
-{
- if (!CheckGetElementByIdArg(aElementId)) {
- return nullptr;
- }
-
- nsIdentifierMapEntry *entry = mIdentifierMap.GetEntry(aElementId);
- return entry ? entry->GetIdElement() : nullptr;
-}
-
-const nsTArray<Element*>*
-nsDocument::GetAllElementsForId(const nsAString& aElementId) const
-{
- if (aElementId.IsEmpty()) {
- return nullptr;
- }
-
- nsIdentifierMapEntry *entry = mIdentifierMap.GetEntry(aElementId);
- return entry ? &entry->GetIdElements() : nullptr;
+ nsContentUtils::ReportEmptyGetElementByIdArg(this);
}
NS_IMETHODIMP
@@ -5646,27 +5637,6 @@ nsDocument::BlockedTrackingNodes() const
return list.forget();
}
-already_AddRefed<nsContentList>
-nsIDocument::GetElementsByTagNameNS(const nsAString& aNamespaceURI,
- const nsAString& aLocalName,
- ErrorResult& aResult)
-{
- int32_t nameSpaceId = kNameSpaceID_Wildcard;
-
- if (!aNamespaceURI.EqualsLiteral("*")) {
- aResult =
- nsContentUtils::NameSpaceManager()->RegisterNameSpace(aNamespaceURI,
- nameSpaceId);
- if (aResult.Failed()) {
- return nullptr;
- }
- }
-
- NS_ASSERTION(nameSpaceId != kNameSpaceID_Unknown, "Unexpected namespace ID!");
-
- return NS_GetContentList(this, nameSpaceId, aLocalName);
-}
-
NS_IMETHODIMP
nsDocument::GetElementsByTagNameNS(const nsAString& aNamespaceURI,
const nsAString& aLocalName,
@@ -5674,7 +5644,7 @@ nsDocument::GetElementsByTagNameNS(const nsAString& aNamespaceURI,
{
ErrorResult rv;
RefPtr<nsContentList> list =
- nsIDocument::GetElementsByTagNameNS(aNamespaceURI, aLocalName, rv);
+ GetElementsByTagNameNS(aNamespaceURI, aLocalName, rv);
if (rv.Failed()) {
return rv.StealNSResult();
}