Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f2468d106a0c88d7db9288acd26f4b5bbe44d07b
https://github.com/WebKit/WebKit/commit/f2468d106a0c88d7db9288acd26f4b5bbe44d07b
Author: Simon Fraser <[email protected]>
Date: 2026-09-22 (Tue, 22 Sep 2026)
Changed paths:
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
M Source/WebCore/page/LocalFrameView.cpp
M Source/WebCore/page/Page.cpp
M Source/WebCore/rendering/InlineBoxPainter.cpp
M Source/WebCore/rendering/PaintInfo.h
M Source/WebCore/rendering/PaintInfoInlines.h
M Source/WebCore/rendering/PaintPhase.h
M Source/WebCore/rendering/RegionContext.h
M Source/WebCore/rendering/RenderBlock.cpp
M Source/WebCore/rendering/RenderElement.cpp
M Source/WebCore/rendering/RenderLayer.cpp
M Source/WebCore/rendering/RenderLayer.h
M Source/WebCore/rendering/RenderLayerBacking.cpp
M Source/WebCore/rendering/RenderReplaced.cpp
M Source/WebCore/rendering/RenderView.h
M Source/WebCore/rendering/TextBoxPainter.cpp
Log Message:
-----------
[AXCustomColorMode] Add paint phases that allow us to compute what paints
behind something
https://bugs.webkit.org/show_bug.cgi?id=324749
rdar://188026244
Reviewed by Lily Spiniolas.
Computing colors for AXCustomColorMode requires that we know what paints behind
something,
which is not trivial to compute because of CSS positioning etc. This change
implements
a two-phase paint pass, using the "fake paint" mechanism, where the first pass
(AXCustomColorCollectBackgrounds)
accumulates a vector of areas covered by background colors, and the second pass
(AXCustomColorComputeBackdrops)
computes the backdrops.
These are tracked in AXCustomColorBackdropContext (which is implemented
elsewhere).
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::updateAXCustomColorModeTextBackdrops):
* Source/WebCore/dom/Document.h:
* Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::willPaintContents):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::doAfterUpdateRendering):
* Source/WebCore/rendering/InlineBoxPainter.cpp:
(WebCore::InlineBoxPainter::paint):
* Source/WebCore/rendering/PaintInfo.h:
* Source/WebCore/rendering/PaintInfoInlines.h:
(WebCore::PaintInfo::axCustomColorBackdropContext):
* Source/WebCore/rendering/PaintPhase.h:
* Source/WebCore/rendering/RegionContext.h:
(WebCore::RegionContext::isAXCustomColorBackdropContext const):
* Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
* Source/WebCore/rendering/RenderElement.cpp:
(WebCore::RenderElement::paintAsInlineBlock):
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::collectAXCustomColorBackdropsForFragments):
* Source/WebCore/rendering/RenderLayer.h:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setContentsNeedDisplay):
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
* Source/WebCore/rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::paint):
(WebCore::RenderReplaced::shouldPaint):
* Source/WebCore/rendering/RenderView.h:
* Source/WebCore/rendering/TextBoxPainter.cpp:
(WebCore::m_haveSelection):
(WebCore::TextBoxPainter::paint):
Canonical link: https://commits.webkit.org/321653@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications