diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-12-20 23:08:47 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-12-20 23:08:47 +0100 |
commit | d6baead6c8bcd90f04d62908bfaf73b369df4e6f (patch) | |
tree | 9d042110d977eea7839bc992d736fdfeb0462f44 /dom | |
parent | ce250e9ccfddff9cae496ed7ad01404fd7135291 (diff) | |
download | UXP-d6baead6c8bcd90f04d62908bfaf73b369df4e6f.tar UXP-d6baead6c8bcd90f04d62908bfaf73b369df4e6f.tar.gz UXP-d6baead6c8bcd90f04d62908bfaf73b369df4e6f.tar.lz UXP-d6baead6c8bcd90f04d62908bfaf73b369df4e6f.tar.xz UXP-d6baead6c8bcd90f04d62908bfaf73b369df4e6f.zip |
Issue #1219 - Align computed DOM styles with mainstream behvior.
This updates our behavior for computed DOM styling to no longer return
null on elements that have no display, but return a 0-length (empty)
style instead and don't throw. For this we stop looking at having a
presentation for the style and just look at the document instead.
This resolves #1219
Diffstat (limited to 'dom')
-rw-r--r-- | dom/base/nsGlobalWindow.cpp | 27 | ||||
-rw-r--r-- | dom/smil/nsSMILCSSProperty.cpp | 8 |
2 files changed, 3 insertions, 32 deletions
diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp index 1288b3435..47b46dda0 100644 --- a/dom/base/nsGlobalWindow.cpp +++ b/dom/base/nsGlobalWindow.cpp @@ -10950,35 +10950,12 @@ nsGlobalWindow::GetComputedStyleHelperOuter(Element& aElt, { MOZ_RELEASE_ASSERT(IsOuterWindow()); - if (!mDocShell) { + if (!mDoc) { return nullptr; } - nsCOMPtr<nsIPresShell> presShell = mDocShell->GetPresShell(); - - if (!presShell) { - // Try flushing frames on our parent in case there's a pending - // style change that will create the presshell. - auto* parent = nsGlobalWindow::Cast(GetPrivateParent()); - if (!parent) { - return nullptr; - } - - parent->FlushPendingNotifications(Flush_Frames); - - // Might have killed mDocShell - if (!mDocShell) { - return nullptr; - } - - presShell = mDocShell->GetPresShell(); - if (!presShell) { - return nullptr; - } - } - RefPtr<nsComputedDOMStyle> compStyle = - NS_NewComputedDOMStyle(&aElt, aPseudoElt, presShell, + NS_NewComputedDOMStyle(&aElt, aPseudoElt, mDoc, aDefaultStylesOnly ? nsComputedDOMStyle::eDefaultOnly : nsComputedDOMStyle::eAll); diff --git a/dom/smil/nsSMILCSSProperty.cpp b/dom/smil/nsSMILCSSProperty.cpp index 53f3e0fbf..e74512443 100644 --- a/dom/smil/nsSMILCSSProperty.cpp +++ b/dom/smil/nsSMILCSSProperty.cpp @@ -38,14 +38,8 @@ GetCSSComputedValue(Element* aElem, return false; } - nsIPresShell* shell = doc->GetShell(); - if (!shell) { - NS_WARNING("Unable to look up computed style -- no pres shell"); - return false; - } - RefPtr<nsComputedDOMStyle> computedStyle = - NS_NewComputedDOMStyle(aElem, EmptyString(), shell); + NS_NewComputedDOMStyle(aElem, EmptyString(), doc); computedStyle->GetPropertyValue(aPropID, aResult); return true; |