summaryrefslogtreecommitdiffstats
path: root/layout/style/nsComputedDOMStyle.cpp
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2020-04-17 05:01:17 -0400
committerMatt A. Tobin <email@mattatobin.com>2020-04-17 05:01:17 -0400
commit0d362ca50335d964a78dbba7e7d32574ee67899a (patch)
tree8b5de5f34019b97ad0b3c155c270a810608cd775 /layout/style/nsComputedDOMStyle.cpp
parentde45820b64ab03768336c7242622ef9f499347cf (diff)
downloadUXP-0d362ca50335d964a78dbba7e7d32574ee67899a.tar
UXP-0d362ca50335d964a78dbba7e7d32574ee67899a.tar.gz
UXP-0d362ca50335d964a78dbba7e7d32574ee67899a.tar.lz
UXP-0d362ca50335d964a78dbba7e7d32574ee67899a.tar.xz
UXP-0d362ca50335d964a78dbba7e7d32574ee67899a.zip
Bug 1330843 - Allow JS to create NAC pseudo-elements
Tag #1375
Diffstat (limited to 'layout/style/nsComputedDOMStyle.cpp')
-rw-r--r--layout/style/nsComputedDOMStyle.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/layout/style/nsComputedDOMStyle.cpp b/layout/style/nsComputedDOMStyle.cpp
index 910c1de8a..102e0df18 100644
--- a/layout/style/nsComputedDOMStyle.cpp
+++ b/layout/style/nsComputedDOMStyle.cpp
@@ -717,7 +717,9 @@ nsComputedDOMStyle::UpdateCurrentStyleSources(bool aNeedsLayoutFlush)
// We want to check that going through this path because of
// HasPseudoElementData is rare, because it slows us down a good
// bit. So check that we're really inside something associated
- // with a pseudo-element that contains elements.
+ // with a pseudo-element that contains elements. (We also allow
+ // the element to be NAC, just in case some chrome JS calls
+ // getComputedStyle on a NAC-implemented pseudo.)
nsStyleContext* topWithPseudoElementData = mStyleContext;
while (topWithPseudoElementData->GetParent()->HasPseudoElementData()) {
topWithPseudoElementData = topWithPseudoElementData->GetParent();
@@ -728,7 +730,8 @@ nsComputedDOMStyle::UpdateCurrentStyleSources(bool aNeedsLayoutFlush)
NS_LITERAL_STRING("we should be in a pseudo-element that is expected to contain elements ("));
assertMsg.Append(nsDependentString(pseudoAtom->GetUTF16String()));
assertMsg.Append(')');
- NS_ASSERTION(nsCSSPseudoElements::PseudoElementContainsElements(pseudo),
+ NS_ASSERTION(nsCSSPseudoElements::PseudoElementContainsElements(pseudo) ||
+ mElement->IsNativeAnonymous(),
NS_LossyConvertUTF16toASCII(assertMsg).get());
}
#endif