Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 52f0b08b88716f2815358ca25d2ff67c0b760f57
https://github.com/WebKit/WebKit/commit/52f0b08b88716f2815358ca25d2ff67c0b760f57
Author: Lily Spiniolas <[email protected]>
Date: 2026-02-28 (Sat, 28 Feb 2026)
Changed paths:
M LayoutTests/TestExpectations
M LayoutTests/platform/mac-wk2/TestExpectations
M LayoutTests/platform/mac/TestExpectations
A
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-expected.txt
A
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-x-expected.txt
A
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-x.html
A
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-y-expected.txt
A
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-y.html
A LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay.html
M Source/WebCore/page/LocalFrameView.cpp
M Source/WebCore/page/LocalFrameView.h
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/Page.h
M Source/WebCore/rendering/RenderLayerBacking.cpp
M Source/WebCore/rendering/RenderLayerBacking.h
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/Shared/WebPageCreationParameters.h
M Source/WebKit/Shared/WebPageCreationParameters.serialization.in
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxyInternals.h
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
Log Message:
-----------
Disable top background extensions when banner view overlay is present
https://bugs.webkit.org/show_bug.cgi?id=308857
rdar://171391429
Reviewed by Abrar Rahman Protyasha.
When a banner view overlay is present, content in the scroll stretch area
will be partially obscured by the overlay, making the background and background
extension discontiguous.
To avoid this, disable the top background extension when a banner view overlay
is present. The UI process now notifies the Page when an overlay is present,
and we adjust accordingly in LocalFrameView::calculateExtendedBackgroundMode().
Since the extended background modes are now more complex than simply both axes,
no axes, x-axis, and y-axis, we used `BoxSideSet` for the extended background
mode instead of an enum. When a banner view is present, we simply remove the top
extension from the set.
Add `setPageHasFakeBannerViewOverlay` to Internals to allow for a layout test to
behave similarly to if it had a banner view overlay installed.
Existing tests: tiled-drawing/simple-document-with-margin-tiles.html
New tests: tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-x.html
tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-y.html
tiled-drawing/mac/margin-tiles-with-banner-view-overlay.html
* LayoutTests/TestExpectations:
* LayoutTests/platform/mac-wk2/TestExpectations:
* LayoutTests/platform/mac/TestExpectations:
*
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-expected.txt:
Added.
*
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-x-expected.txt:
Added.
*
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-x.html:
Added.
*
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-y-expected.txt:
Added.
*
LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay-repeat-y.html:
Added.
* LayoutTests/tiled-drawing/mac/margin-tiles-with-banner-view-overlay.html:
Added.
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::updateExtendBackgroundIfNecessary):
(WebCore::LocalFrameView::calculateExtendedBackgroundMode const):
(WebCore::LocalFrameView::updateTilesForExtendedBackgroundMode):
* Source/WebCore/page/LocalFrameView.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::setHasBannerViewOverlay):
* Source/WebCore/page/Page.h:
(WebCore::Page::hasBannerViewOverlay const):
* Source/WebCore/rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setTiledBackingHasMargins):
* Source/WebCore/rendering/RenderLayerBacking.h:
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setPageHasBannerViewOverlayForTesting):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/Shared/WebPageCreationParameters.h:
* Source/WebKit/Shared/WebPageCreationParameters.serialization.in:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setHasBannerViewOverlay):
(WebKit::WebPageProxy::creationParameters):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxyInternals.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_allowsImmersiveEnvironments):
(WebKit::WebPage::setHasBannerViewOverlay):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
Canonical link: https://commits.webkit.org/308399@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications