Skip to content

Commit

Permalink
Rename RenderStyle effectiveZoom() to usedZoom()
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=270762

Reviewed by Tim Nguyen.

This aligns it with terminology used in CSS standards.

This also:

- Removes setZoomWithoutReturnValue() as it's not used.
- Turns ScaleByEffectiveZoomOrNot into an enum class: ScaleByUsedZoom.

* Source/WebCore/css/CSSToLengthConversionData.cpp:
(WebCore::CSSToLengthConversionData::zoom const):
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::ComputedStyleExtractor::matrixTransformValue):
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::convertAbsoluteToClientQuads):
(WebCore::Document::convertAbsoluteToClientRects):
(WebCore::Document::convertAbsoluteToClientRect):
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::scrollTo):
(WebCore::localZoomForRenderer):
(WebCore::Element::setScrollLeft):
(WebCore::Element::setScrollTop):
* Source/WebCore/html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::computePath const):
* Source/WebCore/html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::computeLogicalHeight const):
* Source/WebCore/page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::computeIntersectionState const):
(WebCore::IntersectionObserver::updateObservations):
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::documentToAbsoluteScaleFactor const):
(WebCore::LocalFrameView::absoluteToDocumentScaleFactor const):
(WebCore::LocalFrameView::absoluteToDocumentRect const):
(WebCore::LocalFrameView::absoluteToDocumentPoint const):
(WebCore::LocalFrameView::absoluteToClientRect const):
* Source/WebCore/page/LocalFrameView.h:
* Source/WebCore/rendering/BackgroundPainter.cpp:
(WebCore::BackgroundPainter::paintFillLayers):
(WebCore::BackgroundPainter::paintFillLayer):
(WebCore::BackgroundPainter::calculateFillTileSize):
(WebCore::BackgroundPainter::boxShadowShouldBeAppliedToBackground):
* Source/WebCore/rendering/BorderPainter.cpp:
(WebCore::BorderPainter::paintBorder):
(WebCore::BorderPainter::paintNinePieceImage):
* Source/WebCore/rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paintMask):
(WebCore::InlineBoxPainter::paintDecorations):
(WebCore::InlineBoxPainter::paintFillLayer):
* Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::backgroundHasOpaqueTopLayer const):
(WebCore::RenderBox::imageChanged):
(WebCore::RenderBox::repaintLayerRectsForImage):
* Source/WebCore/rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions const):
* Source/WebCore/rendering/RenderBoxModelObject.h:
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::mustRepaintFillLayers):
(WebCore::RenderElement::borderImageIsLoadedAndCanBeRendered const):
* Source/WebCore/rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::canvasSizeChanged):
* Source/WebCore/rendering/RenderImage.cpp:
(WebCore::RenderImage::imageSizeForError const):
(WebCore::RenderImage::repaintOrMarkForLayout):
(WebCore::RenderImage::paintAreaElementFocusRing):
(WebCore::RenderImage::nodeAtPoint):
* Source/WebCore/rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::setContainerContext):
* Source/WebCore/rendering/RenderImageResourceStyleImage.cpp:
(WebCore::RenderImageResourceStyleImage::setContainerContext):
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize):
(WebCore::RenderLayer::setupClipPath):
* Source/WebCore/rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::layout):
(WebCore::RenderListMarker::imageChanged):
(WebCore::RenderListMarker::updateContent):
(WebCore::RenderListMarker::computePreferredLogicalWidths):
(WebCore::RenderListMarker::relativeMarkerRect):
* Source/WebCore/rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetParent const):
* Source/WebCore/rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::styleDidChange):
(WebCore::RenderReplaced::intrinsicSizeChanged):
(WebCore::RenderReplaced::paint):
* Source/WebCore/rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computeIntrinsicLogicalWidths const):
* Source/WebCore/rendering/RenderTheme.cpp:
(WebCore::RenderTheme::extractControlStyleForRenderer const):
(WebCore::RenderTheme::adjustButtonOrCheckboxOrColorWellOrInnerSpinButtonOrRadioStyle const):
(WebCore::RenderTheme::paintSliderTicks):
(WebCore::RenderTheme::adjustSwitchStyle const):
* Source/WebCore/rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updateIntrinsicSize):
* Source/WebCore/rendering/RenderView.cpp:
(WebCore::RenderView::viewHeight const):
(WebCore::RenderView::viewWidth const):
* Source/WebCore/rendering/adwaita/RenderThemeAdwaita.cpp:
(WebCore::RenderThemeAdwaita::paintTextField):
(WebCore::RenderThemeAdwaita::popupInternalPaddingBox const):
(WebCore::RenderThemeAdwaita::paintMenuList):
* Source/WebCore/rendering/ios/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::adjustMinimumIntrinsicSizeForAppearance const):
(WebCore::RenderThemeIOS::adjustSwitchStyle const):
* Source/WebCore/rendering/mac/RenderThemeMac.mm:
(WebCore::RenderThemeMac::baselinePosition const):
(WebCore::RenderThemeMac::isControlStyled const):
(WebCore::RenderThemeMac::inflateRectForControlRenderer):
(WebCore::sizeForFont):
(WebCore::sizeForSystemFont):
(WebCore::setFontFromControlSize):
(WebCore::RenderThemeMac::popupInternalPaddingBox const):
(WebCore::RenderThemeMac::popupMenuSize const):
(WebCore::RenderThemeMac::adjustSearchFieldStyle const):
(WebCore::RenderThemeMac::adjustSliderThumbSize const):
* Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::toUserUnits):
* Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::makeShapeForShapeOutside):
* Source/WebCore/rendering/style/RenderStyle.cpp:
(WebCore::rareInheritedDataChangeRequiresLayout):
(WebCore::RenderStyle::conservativelyCollectChangedAnimatableProperties const):
* Source/WebCore/rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setZoomWithoutReturnValue): Deleted.
* Source/WebCore/rendering/style/RenderStyleInlines.h:
(WebCore::RenderStyle::usedZoom const):
(WebCore::adjustFloatForAbsoluteZoom):
(WebCore::adjustForAbsoluteZoom):
(WebCore::adjustLayoutSizeForAbsoluteZoom):
(WebCore::adjustLayoutUnitForAbsoluteZoom):
(WebCore::RenderStyle::effectiveZoom const): Deleted.
* Source/WebCore/rendering/style/RenderStyleSetters.h:
(WebCore::RenderStyle::setUsedZoom):
(WebCore::RenderStyle::setZoom):
(WebCore::RenderStyle::setEffectiveZoom): Deleted.
* Source/WebCore/rendering/style/StyleGradientImage.cpp:
(WebCore::StyleGradientImage::computeStops const):
(WebCore::positionFromValue):
* Source/WebCore/rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
* Source/WebCore/rendering/style/StyleRareInheritedData.h:
* Source/WebCore/rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::calculateObjectBoundingBox const):
(WebCore::RenderSVGImage::updateImageViewport):
* Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyPathClipping):
(WebCore::RenderSVGResourceClipper::applyMaskClipping):
* Source/WebCore/rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeReplacedLogicalWidth const):
(WebCore::RenderSVGRoot::computeReplacedLogicalHeight const):
(WebCore::RenderSVGRoot::mapLocalToContainer const):
* Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::needsHasSVGTransformFlags const):
(WebCore::RenderSVGViewportContainer::updateLayerTransform):
* Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::acquirePaintingResource):
(WebCore::SVGInlineTextBox::acquireLegacyPaintingResource):
* Source/WebCore/rendering/svg/SVGLayerTransformComputation.h:
(WebCore::SVGLayerTransformComputation::calculateScreenFontSizeScalingFactor const):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGImage.cpp:
(WebCore::LegacyRenderSVGImage::calculateObjectBoundingBox const):
(WebCore::LegacyRenderSVGImage::updateImageViewport):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceClipper.cpp:
(WebCore::LegacyRenderSVGResourceClipper::pathOnlyClipping):
(WebCore::LegacyRenderSVGResourceClipper::computeInputs):
(WebCore::LegacyRenderSVGResourceClipper::applyClippingToContext):
(WebCore::LegacyRenderSVGResourceClipper::drawContentIntoMaskImage):
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGResourceClipper.h:
* Source/WebCore/rendering/svg/legacy/LegacyRenderSVGRoot.cpp:
(WebCore::LegacyRenderSVGRoot::buildLocalToBorderBoxTransform):
* Source/WebCore/style/MatchedDeclarationsCache.cpp:
(WebCore::Style::MatchedDeclarationsCache::Entry::isUsableAfterHighPriorityProperties const):
* Source/WebCore/style/StyleAdjuster.cpp:
(WebCore::Style::addIntrinsicMargins):
(WebCore::Style::Adjuster::adjustSVGElementStyle):
* Source/WebCore/style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertLineWidth):
(WebCore::Style::BuilderConverter::convertPathOperation):
(WebCore::Style::zoomWithTextZoomFactor):
* Source/WebCore/style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::resetUsedZoom):
(WebCore::Style::BuilderCustom::applyInitialZoom):
(WebCore::Style::BuilderCustom::applyInheritZoom):
(WebCore::Style::BuilderCustom::applyValueZoom):
(WebCore::Style::computeBaseSpecifiedFontSize):
(WebCore::Style::BuilderCustom::resetEffectiveZoom): Deleted.
* Source/WebCore/style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::updateFontForZoomChange):
* Source/WebCore/style/StyleBuilderState.h:
* Source/WebCore/style/StyleBuilderStateInlines.h:
(WebCore::Style::BuilderState::setUsedZoom):
(WebCore::Style::BuilderState::setEffectiveZoom): Deleted.
* Source/WebCore/style/StyleFontSizeFunctions.cpp:
(WebCore::Style::computedFontSizeFromSpecifiedSize):
* Source/WebCore/svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::animatedLocalTransform const):
* Source/WebCore/svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::localCoordinateSpaceTransform const):
(WebCore::SVGSVGElement::currentViewportSizeExcludingZoom const):
* Source/WebCore/svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::containerSize const):

Canonical link: https://commits.webkit.org/275907@main
  • Loading branch information
annevk committed Mar 11, 2024
1 parent 9b7d31b commit b7e1e3c
Show file tree
Hide file tree
Showing 61 changed files with 209 additions and 210 deletions.
2 changes: 1 addition & 1 deletion Source/WebCore/css/CSSToLengthConversionData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ int CSSToLengthConversionData::computedLineHeightForFontUnits() const

float CSSToLengthConversionData::zoom() const
{
return m_zoom.value_or(m_style ? m_style->effectiveZoom() : 1.f);
return m_zoom.value_or(m_style ? m_style->usedZoom() : 1.f);
}

FloatSize CSSToLengthConversionData::defaultViewportFactor() const
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/css/ComputedStyleExtractor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -738,7 +738,7 @@ static LayoutRect sizingBox(RenderObject& renderer)

Ref<CSSFunctionValue> ComputedStyleExtractor::matrixTransformValue(const TransformationMatrix& transform, const RenderStyle& style)
{
auto zoom = style.effectiveZoom();
auto zoom = style.usedZoom();
if (transform.isAffine()) {
double values[] = { transform.a(), transform.b(), transform.c(), transform.d(), transform.e() / zoom, transform.f() / zoom };
CSSValueListBuilder arguments;
Expand Down
6 changes: 3 additions & 3 deletions Source/WebCore/dom/Document.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8414,7 +8414,7 @@ void Document::convertAbsoluteToClientQuads(Vector<FloatQuad>& quads, const Rend
if (!frameView)
return;

float inverseFrameScale = frameView->absoluteToDocumentScaleFactor(style.effectiveZoom());
float inverseFrameScale = frameView->absoluteToDocumentScaleFactor(style.usedZoom());
auto documentToClientOffset = frameView->documentToClientOffset();

for (auto& quad : quads) {
Expand All @@ -8431,7 +8431,7 @@ void Document::convertAbsoluteToClientRects(Vector<FloatRect>& rects, const Rend
if (!frameView)
return;

float inverseFrameScale = frameView->absoluteToDocumentScaleFactor(style.effectiveZoom());
float inverseFrameScale = frameView->absoluteToDocumentScaleFactor(style.usedZoom());
auto documentToClientOffset = frameView->documentToClientOffset();

for (auto& rect : rects) {
Expand All @@ -8448,7 +8448,7 @@ void Document::convertAbsoluteToClientRect(FloatRect& rect, const RenderStyle& s
if (!frameView)
return;

rect = frameView->absoluteToDocumentRect(rect, style.effectiveZoom());
rect = frameView->absoluteToDocumentRect(rect, style.usedZoom());
rect = frameView->documentToClientRect(rect);
}

Expand Down
12 changes: 6 additions & 6 deletions Source/WebCore/dom/Element.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1257,8 +1257,8 @@ void Element::scrollTo(const ScrollToOptions& options, ScrollClamping clamping,
adjustForAbsoluteZoom(renderer->scrollTop(), *renderer)
);
IntPoint scrollPosition(
clampToInteger(scrollToOptions.left.value() * renderer->style().effectiveZoom()),
clampToInteger(scrollToOptions.top.value() * renderer->style().effectiveZoom())
clampToInteger(scrollToOptions.left.value() * renderer->style().usedZoom()),
clampToInteger(scrollToOptions.top.value() * renderer->style().usedZoom())
);

auto animated = useSmoothScrolling(scrollToOptions.behavior.value_or(ScrollBehavior::Auto), this) ? ScrollIsAnimated::Yes : ScrollIsAnimated::No;
Expand All @@ -1280,12 +1280,12 @@ static double localZoomForRenderer(const RenderElement& renderer)
// other out, but the alternative is that we'd have to crawl up the whole render tree every
// time (or store an additional bit in the RenderStyle to indicate that a zoom was specified).
double zoomFactor = 1;
if (renderer.style().effectiveZoom() != 1) {
if (renderer.style().usedZoom() != 1) {
// Need to find the nearest enclosing RenderElement that set up
// a differing zoom, and then we divide our result by it to eliminate the zoom.
CheckedPtr prev = &renderer;
for (CheckedPtr curr = prev->parent(); curr; curr = curr->parent()) {
if (curr->style().effectiveZoom() != prev->style().effectiveZoom()) {
if (curr->style().usedZoom() != prev->style().usedZoom()) {
zoomFactor = prev->style().zoom();
break;
}
Expand Down Expand Up @@ -1579,7 +1579,7 @@ void Element::setScrollLeft(int newLeft)
}

if (CheckedPtr renderer = renderBox()) {
int clampedLeft = clampToInteger(newLeft * renderer->style().effectiveZoom());
int clampedLeft = clampToInteger(newLeft * renderer->style().usedZoom());
renderer->setScrollLeft(clampedLeft, options);
if (CheckedPtr scrollableArea = renderer && renderer->layer() ? renderer->layer()->scrollableArea() : nullptr)
scrollableArea->setScrollShouldClearLatchedState(true);
Expand All @@ -1605,7 +1605,7 @@ void Element::setScrollTop(int newTop)
}

if (CheckedPtr renderer = renderBox()) {
int clampedTop = clampToInteger(newTop * renderer->style().effectiveZoom());
int clampedTop = clampToInteger(newTop * renderer->style().usedZoom());
renderer->setScrollTop(clampedTop, options);
if (CheckedPtr scrollableArea = renderer && renderer->layer() ? renderer->layer()->scrollableArea() : nullptr)
scrollableArea->setScrollShouldClearLatchedState(true);
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/html/HTMLAreaElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ Path HTMLAreaElement::computePath(RenderObject* obj) const
size = obj->absoluteOutlineBounds().size();

Path p = getRegion(size);
float zoomFactor = obj->style().effectiveZoom();
float zoomFactor = obj->style().usedZoom();
if (zoomFactor != 1.0f) {
AffineTransform zoomTransform;
zoomTransform.scale(zoomFactor);
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/html/shadow/SliderThumbElement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ RenderBox::LogicalExtentComputedValues RenderSliderContainer::computeLogicalHeig
int tickLength = theme().sliderTickSize().height();
trackHeight = 2 * (offsetFromCenter + tickLength);
}
float zoomFactor = style().effectiveZoom();
float zoomFactor = style().usedZoom();
if (zoomFactor != 1.0)
trackHeight *= zoomFactor;

Expand Down
6 changes: 3 additions & 3 deletions Source/WebCore/page/IntersectionObserver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -373,7 +373,7 @@ auto IntersectionObserver::computeIntersectionState(const IntersectionObserverRe
}

if (applyRootMargin)
expandRootBoundsWithRootMargin(intersectionState.rootBounds, rootMarginBox(), rootRenderer->style().effectiveZoom());
expandRootBoundsWithRootMargin(intersectionState.rootBounds, rootMarginBox(), rootRenderer->style().usedZoom());

auto localTargetBounds = [&]() -> LayoutRect {
if (CheckedPtr renderBox = dynamicDowncast<RenderBox>(*targetRenderer))
Expand Down Expand Up @@ -486,11 +486,11 @@ auto IntersectionObserver::updateObservations(Document& hostDocument) -> NeedNot
ASSERT(intersectionState.absoluteRootBounds);

RefPtr targetFrameView = target->document().view();
targetBoundingClientRect = targetFrameView->absoluteToClientRect(*intersectionState.absoluteTargetRect, target->renderer()->style().effectiveZoom());
targetBoundingClientRect = targetFrameView->absoluteToClientRect(*intersectionState.absoluteTargetRect, target->renderer()->style().usedZoom());
clientRootBounds = frameView->absoluteToLayoutViewportRect(*intersectionState.absoluteRootBounds);
if (intersectionState.isIntersecting) {
ASSERT(intersectionState.absoluteIntersectionRect);
clientIntersectionRect = targetFrameView->absoluteToClientRect(*intersectionState.absoluteIntersectionRect, target->renderer()->style().effectiveZoom());
clientIntersectionRect = targetFrameView->absoluteToClientRect(*intersectionState.absoluteIntersectionRect, target->renderer()->style().usedZoom());
}
}

Expand Down
24 changes: 12 additions & 12 deletions Source/WebCore/page/LocalFrameView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5232,32 +5232,32 @@ void LocalFrameView::adjustPageHeightDeprecated(float *newBottom, float oldTop,
renderView->setPrintRect(IntRect());
}

float LocalFrameView::documentToAbsoluteScaleFactor(std::optional<float> effectiveZoom) const
float LocalFrameView::documentToAbsoluteScaleFactor(std::optional<float> usedZoom) const
{
// If effectiveZoom is passed, it already factors in pageZoomFactor().
return effectiveZoom.value_or(m_frame->pageZoomFactor()) * m_frame->frameScaleFactor();
// If usedZoom is passed, it already factors in pageZoomFactor().
return usedZoom.value_or(m_frame->pageZoomFactor()) * m_frame->frameScaleFactor();
}

float LocalFrameView::absoluteToDocumentScaleFactor(std::optional<float> effectiveZoom) const
float LocalFrameView::absoluteToDocumentScaleFactor(std::optional<float> usedZoom) const
{
// If effectiveZoom is passed, it already factors in pageZoomFactor().
return 1 / documentToAbsoluteScaleFactor(effectiveZoom);
// If usedZoom is passed, it already factors in pageZoomFactor().
return 1 / documentToAbsoluteScaleFactor(usedZoom);
}

FloatRect LocalFrameView::absoluteToDocumentRect(FloatRect rect, std::optional<float> effectiveZoom) const
FloatRect LocalFrameView::absoluteToDocumentRect(FloatRect rect, std::optional<float> usedZoom) const
{
rect.scale(absoluteToDocumentScaleFactor(effectiveZoom));
rect.scale(absoluteToDocumentScaleFactor(usedZoom));
return rect;
}

FloatPoint LocalFrameView::absoluteToDocumentPoint(FloatPoint p, std::optional<float> effectiveZoom) const
FloatPoint LocalFrameView::absoluteToDocumentPoint(FloatPoint p, std::optional<float> usedZoom) const
{
return p.scaled(absoluteToDocumentScaleFactor(effectiveZoom));
return p.scaled(absoluteToDocumentScaleFactor(usedZoom));
}

FloatRect LocalFrameView::absoluteToClientRect(FloatRect rect, std::optional<float> effectiveZoom) const
FloatRect LocalFrameView::absoluteToClientRect(FloatRect rect, std::optional<float> usedZoom) const
{
return documentToClientRect(absoluteToDocumentRect(rect, effectiveZoom));
return documentToClientRect(absoluteToDocumentRect(rect, usedZoom));
}

FloatSize LocalFrameView::documentToClientOffset() const
Expand Down
10 changes: 5 additions & 5 deletions Source/WebCore/page/LocalFrameView.h
Original file line number Diff line number Diff line change
Expand Up @@ -512,13 +512,13 @@ class LocalFrameView final : public FrameView {
// Similar to client coordinates, but affected by page zoom (but not page scale).
//

float documentToAbsoluteScaleFactor(std::optional<float> effectiveZoom = std::nullopt) const;
float absoluteToDocumentScaleFactor(std::optional<float> effectiveZoom = std::nullopt) const;
float documentToAbsoluteScaleFactor(std::optional<float> usedZoom = std::nullopt) const;
float absoluteToDocumentScaleFactor(std::optional<float> usedZoom = std::nullopt) const;

WEBCORE_EXPORT FloatRect absoluteToDocumentRect(FloatRect, std::optional<float> effectiveZoom = std::nullopt) const;
WEBCORE_EXPORT FloatPoint absoluteToDocumentPoint(FloatPoint, std::optional<float> effectiveZoom = std::nullopt) const;
WEBCORE_EXPORT FloatRect absoluteToDocumentRect(FloatRect, std::optional<float> usedZoom = std::nullopt) const;
WEBCORE_EXPORT FloatPoint absoluteToDocumentPoint(FloatPoint, std::optional<float> usedZoom = std::nullopt) const;

FloatRect absoluteToClientRect(FloatRect, std::optional<float> effectiveZoom = std::nullopt) const;
FloatRect absoluteToClientRect(FloatRect, std::optional<float> usedZoom = std::nullopt) const;

FloatSize documentToClientOffset() const;
WEBCORE_EXPORT FloatRect documentToClientRect(FloatRect) const;
Expand Down
10 changes: 5 additions & 5 deletions Source/WebCore/rendering/BackgroundPainter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ void BackgroundPainter::paintFillLayers(const Color& color, const FillLayer& fil
// and pass it down.

// The clipOccludesNextLayers condition must be evaluated first to avoid short-circuiting.
if (layer->clipOccludesNextLayers(layer == &fillLayer) && layer->hasOpaqueImage(m_renderer) && layer->image()->canRender(&m_renderer, m_renderer.style().effectiveZoom()) && layer->hasRepeatXY() && layer->blendMode() == BlendMode::Normal && !boxShadowShouldBeAppliedToBackground(m_renderer, rect.location(), bleedAvoidance, { }))
if (layer->clipOccludesNextLayers(layer == &fillLayer) && layer->hasOpaqueImage(m_renderer) && layer->image()->canRender(&m_renderer, m_renderer.style().usedZoom()) && layer->hasRepeatXY() && layer->blendMode() == BlendMode::Normal && !boxShadowShouldBeAppliedToBackground(m_renderer, rect.location(), bleedAvoidance, { }))
break;
}

Expand Down Expand Up @@ -180,7 +180,7 @@ void BackgroundPainter::paintFillLayer(const Color& color, const FillLayer& bgLa

Color bgColor = color;
StyleImage* bgImage = bgLayer.image();
bool shouldPaintBackgroundImage = bgImage && bgImage->canRender(&m_renderer, style.effectiveZoom());
bool shouldPaintBackgroundImage = bgImage && bgImage->canRender(&m_renderer, style.usedZoom());

if (context.detectingContentfulPaint()) {
if (!context.contentfulPaintDetected() && shouldPaintBackgroundImage && bgImage->cachedImage()) {
Expand Down Expand Up @@ -396,7 +396,7 @@ void BackgroundPainter::paintFillLayer(const Color& color, const FillLayer& bgLa
auto geometry = calculateBackgroundImageGeometry(m_renderer, m_paintInfo.paintContainer, bgLayer, paintOffset, imageRect);

auto& clientForBackgroundImage = backgroundObject ? *backgroundObject : m_renderer;
bgImage->setContainerContextForRenderer(clientForBackgroundImage, geometry.tileSizeWithoutPixelSnapping, m_renderer.style().effectiveZoom());
bgImage->setContainerContextForRenderer(clientForBackgroundImage, geometry.tileSizeWithoutPixelSnapping, m_renderer.style().usedZoom());

geometry.clip(LayoutRect(pixelSnappedRect));
RefPtr<Image> image;
Expand Down Expand Up @@ -705,7 +705,7 @@ LayoutSize BackgroundPainter::calculateFillTileSize(const RenderBoxModelObject&

LayoutSize imageIntrinsicSize;
if (image) {
imageIntrinsicSize = renderer.calculateImageIntrinsicDimensions(image, positioningAreaSize, RenderBoxModelObject::ScaleByEffectiveZoom);
imageIntrinsicSize = renderer.calculateImageIntrinsicDimensions(image, positioningAreaSize, RenderBoxModelObject::ScaleByUsedZoom::Yes);
imageIntrinsicSize.scale(1 / image->imageScaleFactor(), 1 / image->imageScaleFactor());
} else
imageIntrinsicSize = positioningAreaSize;
Expand Down Expand Up @@ -1010,7 +1010,7 @@ bool BackgroundPainter::boxShadowShouldBeAppliedToBackground(const RenderBoxMode
return true;
auto* image = lastBackgroundLayer->image();
auto& renderer = inlineBox->renderer();
bool hasFillImage = image && image->canRender(&renderer, renderer.style().effectiveZoom());
bool hasFillImage = image && image->canRender(&renderer, renderer.style().usedZoom());
return !hasFillImage && !renderer.style().hasBorderRadius();
};

Expand Down
8 changes: 4 additions & 4 deletions Source/WebCore/rendering/BorderPainter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ void BorderPainter::paintBorder(const LayoutRect& rect, const RenderStyle& style
if (!styleImage->isLoaded(&m_renderer))
return false;

if (!styleImage->canRender(&m_renderer, style.effectiveZoom()))
if (!styleImage->canRender(&m_renderer, style.usedZoom()))
return false;

auto rectWithOutsets = rect;
Expand Down Expand Up @@ -487,7 +487,7 @@ bool BorderPainter::paintNinePieceImage(const LayoutRect& rect, const RenderStyl
if (!styleImage->isLoaded(&m_renderer))
return true; // Never paint a nine-piece image incrementally, but don't paint the fallback borders either.

if (!styleImage->canRender(&m_renderer, style.effectiveZoom()))
if (!styleImage->canRender(&m_renderer, style.usedZoom()))
return false;

CheckedPtr modelObject = dynamicDowncast<RenderBoxModelObject>(m_renderer);
Expand All @@ -502,10 +502,10 @@ bool BorderPainter::paintNinePieceImage(const LayoutRect& rect, const RenderStyl
rectWithOutsets.expand(style.imageOutsets(ninePieceImage));
LayoutRect destination = LayoutRect(snapRectToDevicePixels(rectWithOutsets, deviceScaleFactor));

auto source = modelObject->calculateImageIntrinsicDimensions(styleImage, destination.size(), RenderBoxModelObject::DoNotScaleByEffectiveZoom);
auto source = modelObject->calculateImageIntrinsicDimensions(styleImage, destination.size(), RenderBoxModelObject::ScaleByUsedZoom::No);

// If both values are ‘auto’ then the intrinsic width and/or height of the image should be used, if any.
styleImage->setContainerContextForRenderer(m_renderer, source, style.effectiveZoom());
styleImage->setContainerContextForRenderer(m_renderer, source, style.usedZoom());

ninePieceImage.paint(m_paintInfo.context(), &m_renderer, style, destination, source, deviceScaleFactor, op);
return true;
Expand Down
6 changes: 3 additions & 3 deletions Source/WebCore/rendering/InlineBoxPainter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ void InlineBoxPainter::paintMask()

paintFillLayers(Color(), renderer().style().maskLayers(), paintRect, compositeOp);

bool hasBoxImage = maskBorder && maskBorder->canRender(&renderer(), renderer().style().effectiveZoom());
bool hasBoxImage = maskBorder && maskBorder->canRender(&renderer(), renderer().style().usedZoom());
if (!hasBoxImage || !maskBorder->isLoaded(&renderer())) {
if (pushTransparencyLayer)
m_paintInfo.context().endTransparencyLayer();
Expand Down Expand Up @@ -253,7 +253,7 @@ void InlineBoxPainter::paintDecorations()

const NinePieceImage& borderImage = renderer().style().borderImage();
StyleImage* borderImageSource = borderImage.image();
bool hasBorderImage = borderImageSource && borderImageSource->canRender(&renderer(), style.effectiveZoom());
bool hasBorderImage = borderImageSource && borderImageSource->canRender(&renderer(), style.usedZoom());
if (hasBorderImage && !borderImageSource->isLoaded(&renderer()))
return; // Don't paint anything while we wait for the image to load.

Expand Down Expand Up @@ -305,7 +305,7 @@ void InlineBoxPainter::paintFillLayers(const Color& color, const FillLayer& fill
void InlineBoxPainter::paintFillLayer(const Color& color, const FillLayer& fillLayer, const LayoutRect& rect, CompositeOperator op)
{
auto* image = fillLayer.image();
bool hasFillImage = image && image->canRender(&renderer(), renderer().style().effectiveZoom());
bool hasFillImage = image && image->canRender(&renderer(), renderer().style().usedZoom());
bool hasFillImageOrBorderRadious = hasFillImage || renderer().style().hasBorderRadius();
bool hasSingleLine = !m_inlineBox.previousInlineBox() && !m_inlineBox.nextInlineBox();

Expand Down
Loading

0 comments on commit b7e1e3c

Please sign in to comment.