Files
desktop/src/layout/svg/SVGImageContext-cpp.patch

59 lines
2.3 KiB
C++

diff --git a/layout/svg/SVGImageContext.cpp b/layout/svg/SVGImageContext.cpp
index 384401ae2cb80a1bf438b1fb3d849254de100210..e5ef332bc529e6588c33b507993880ca9def51d1 100644
--- a/layout/svg/SVGImageContext.cpp
+++ b/layout/svg/SVGImageContext.cpp
@@ -10,6 +10,7 @@
#include "mozilla/LookAndFeel.h"
#include "mozilla/ServoCSSParser.h"
#include "mozilla/StaticPrefs_svg.h"
+#include "mozilla/dom/BrowsingContext.h"
#include "mozilla/dom/Document.h"
#include "nsIFrame.h"
#include "nsISVGPaintContext.h"
@@ -18,6 +19,19 @@
namespace mozilla {
+/* static */
+void SVGImageContext::MaybeStoreZenBoosts(SVGImageContext& aContext,
+ const nsPresContext& aPresContext) {
+ if (dom::Document* doc = aPresContext.Document()) {
+ if (dom::BrowsingContext* bc = doc->GetBrowsingContext()) {
+ bc = bc->Top();
+ aContext.SetZenBoosts(bc->ZenBoostsData(),
+ bc->ZenBoostsComplementaryRotation(),
+ bc->IsZenBoostsInverted());
+ }
+ }
+}
+
/* static */
void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
nsIFrame* aFromFrame,
@@ -50,6 +64,8 @@ void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
}
}
+ MaybeStoreZenBoosts(aContext, aPresContext);
+
const nsStyleSVG* style = aStyle.StyleSVG();
if (!style->ExposesContextProperties()) {
// Content must have '-moz-context-properties' set to the names of the
@@ -64,12 +80,14 @@ void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
if ((style->mMozContextProperties.bits & StyleContextPropertyBits::FILL) &&
style->mFill.kind.IsColor()) {
haveContextPaint = true;
- contextPaint->SetFill(style->mFill.kind.AsColor().CalcColor(aStyle));
+ contextPaint->SetFill(
+ style->mFill.kind.AsColor().CalcColor(aStyle, nullptr));
}
if ((style->mMozContextProperties.bits & StyleContextPropertyBits::STROKE) &&
style->mStroke.kind.IsColor()) {
haveContextPaint = true;
- contextPaint->SetStroke(style->mStroke.kind.AsColor().CalcColor(aStyle));
+ contextPaint->SetStroke(
+ style->mStroke.kind.AsColor().CalcColor(aStyle, nullptr));
}
if (style->mMozContextProperties.bits &
StyleContextPropertyBits::FILL_OPACITY) {