diff --git a/widget/Theme.cpp b/widget/Theme.cpp index 766a8ca4bc6fcc98f719ad4f472b20bc1d198ac9..be4419cfafb55e5cac8f5de741185ee3cabc4722 100644 --- a/widget/Theme.cpp +++ b/widget/Theme.cpp @@ -18,6 +18,7 @@ #include "mozilla/RelativeLuminanceUtils.h" #include "mozilla/ScrollContainerFrame.h" #include "mozilla/StaticPrefs_widget.h" +#include "mozilla/nsZenBoostsBackend.h" #include "mozilla/webrender/WebRenderAPI.h" #include "nsCSSColorUtils.h" #include "nsCSSRendering.h" @@ -670,10 +671,15 @@ template void Theme::PaintTextField(PaintBackendData& aPaintData, const LayoutDeviceRect& aRect, const ElementState& aState, const Colors& aColors, - DPIRatio aDpiRatio) { + DPIRatio aDpiRatio, const nsIFrame* aFrame) { auto [backgroundColor, borderColor] = ComputeTextfieldColors(aState, aColors, OutlineCoversBorder::Yes); + // The default field background comes from a theme/system color rather than a + // resolved style color, so apply Zen boosts here to match boosted content. + backgroundColor = sRGBColor::FromABGR(zen::nsZenBoostsBackend::ResolveStyleColor( + backgroundColor.ToABGR(), aFrame)); + const CSSCoord radius = 2.0f; ThemeDrawing::PaintRoundedRectWithRadius(aPaintData, aRect, backgroundColor, @@ -690,9 +696,9 @@ template void Theme::PaintListbox(PaintBackendData& aPaintData, const LayoutDeviceRect& aRect, const ElementState& aState, const Colors& aColors, - DPIRatio aDpiRatio) { + DPIRatio aDpiRatio, const nsIFrame* aFrame) { // We happen to share style between text fields and list boxes. - return PaintTextField(aPaintData, aRect, aState, aColors, aDpiRatio); + return PaintTextField(aPaintData, aRect, aState, aColors, aDpiRatio, aFrame); } template @@ -1158,10 +1164,12 @@ bool Theme::DoDrawWidgetBackground(PaintBackendData& aPaintData, case StyleAppearance::Textfield: case StyleAppearance::NumberInput: case StyleAppearance::PasswordInput: - PaintTextField(aPaintData, devPxRect, elementState, colors, dpiRatio); + PaintTextField(aPaintData, devPxRect, elementState, colors, dpiRatio, + aFrame); break; case StyleAppearance::Listbox: - PaintListbox(aPaintData, devPxRect, elementState, colors, dpiRatio); + PaintListbox(aPaintData, devPxRect, elementState, colors, dpiRatio, + aFrame); break; case StyleAppearance::Menulist: PaintMenulist(aPaintData, devPxRect, elementState, colors, dpiRatio);