Index: third_party/WebKit/Source/core/dom/NthIndexCache.cpp |
diff --git a/third_party/WebKit/Source/core/dom/NthIndexCache.cpp b/third_party/WebKit/Source/core/dom/NthIndexCache.cpp |
index 723f0c477dfe0716f5df084de45ad6efb692c7ad..59fd8dcef79fc00fb1f2a68ac22ae3f8c61ab89e 100644 |
--- a/third_party/WebKit/Source/core/dom/NthIndexCache.cpp |
+++ b/third_party/WebKit/Source/core/dom/NthIndexCache.cpp |
@@ -79,9 +79,8 @@ unsigned uncachedNthLastOfTypeIndex(Element& element, unsigned& siblingCount) { |
} // namespace |
unsigned NthIndexCache::nthChildIndex(Element& element) { |
- if (element.isPseudoElement()) |
+ if (element.isPseudoElement() || !element.parentNode()) |
return 1; |
- DCHECK(element.parentNode()); |
NthIndexCache* nthIndexCache = element.document().nthIndexCache(); |
NthIndexData* nthIndexData = nullptr; |
if (nthIndexCache && nthIndexCache->m_parentMap) |
@@ -95,9 +94,8 @@ unsigned NthIndexCache::nthChildIndex(Element& element) { |
} |
unsigned NthIndexCache::nthLastChildIndex(Element& element) { |
- if (element.isPseudoElement()) |
+ if (element.isPseudoElement() && !element.parentNode()) |
return 1; |
- DCHECK(element.parentNode()); |
NthIndexCache* nthIndexCache = element.document().nthIndexCache(); |
NthIndexData* nthIndexData = nullptr; |
if (nthIndexCache && nthIndexCache->m_parentMap) |
@@ -120,7 +118,7 @@ NthIndexData* NthIndexCache::nthTypeIndexDataForParent(Element& element) const { |
} |
unsigned NthIndexCache::nthOfTypeIndex(Element& element) { |
- if (element.isPseudoElement()) |
+ if (element.isPseudoElement() || !element.parentNode()) |
return 1; |
NthIndexCache* nthIndexCache = element.document().nthIndexCache(); |
if (nthIndexCache) { |
@@ -136,7 +134,7 @@ unsigned NthIndexCache::nthOfTypeIndex(Element& element) { |
} |
unsigned NthIndexCache::nthLastOfTypeIndex(Element& element) { |
- if (element.isPseudoElement()) |
+ if (element.isPseudoElement() || !element.parentNode()) |
return 1; |
NthIndexCache* nthIndexCache = element.document().nthIndexCache(); |
if (nthIndexCache) { |