gh-13844: Part 3 - Fixed text inputs not being filtered through boosts (gh-13893)

This commit is contained in:
mr. m
2026-05-27 13:39:22 +02:00
committed by GitHub
parent 2fb59e2c82
commit 8a0a6cbede
8 changed files with 280 additions and 20 deletions

View File

@@ -1,8 +1,45 @@
diff --git a/layout/svg/SVGImageContext.cpp b/layout/svg/SVGImageContext.cpp
index ecbda963b75fb70b62885a0c8f7a517011a8d5dc..1200a51aee7db4ee1a014308581ada1002c0d05f 100644
index ecbda963b75fb70b62885a0c8f7a517011a8d5dc..5f55f0a4174db830656d434b5295835ab18e6619 100644
--- a/layout/svg/SVGImageContext.cpp
+++ b/layout/svg/SVGImageContext.cpp
@@ -57,12 +57,14 @@ void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
@@ -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,
@@ -43,6 +57,8 @@ void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
aContext.SetColorScheme(Some(scheme));
}
+ MaybeStoreZenBoosts(aContext, aPresContext);
+
const nsStyleSVG* style = aStyle.StyleSVG();
if (!style->ExposesContextProperties()) {
// Content must have '-moz-context-properties' set to the names of the
@@ -57,12 +73,14 @@ void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
if ((style->mMozContextProperties.bits & StyleContextPropertyBits::FILL) &&
style->mFill.kind.IsColor()) {
haveContextPaint = true;