Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: acfa8b8be70ce57a15f18042de84c21197a674d1
https://github.com/WebKit/WebKit/commit/acfa8b8be70ce57a15f18042de84c21197a674d1
Author: Kiet Ho <[email protected]>
Date: 2026-07-03 (Fri, 03 Jul 2026)
Changed paths:
A
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-cross-origin-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-cross-origin.sub-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-cross-origin.sub.html
R
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-expected.txt
A
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-same-origin-expected.txt
A
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-same-origin.html
R
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change.html
M Source/WebCore/dom/Document.cpp
M Source/WebCore/page/Frame.cpp
M Source/WebCore/page/LocalFrameView.cpp
M Source/WebCore/page/LocalFrameView.h
M Source/WebCore/page/Page.cpp
M Source/WebCore/rendering/RenderFrameBase.cpp
Log Message:
-----------
Changing color-scheme of iframe does not invalidate appearance of embedded
document
rdar://179177141
https://bugs.webkit.org/show_bug.cgi?id=316738
Reviewed by Antti Koivisto.
The value of color-scheme property on an <iframe> element affects the used color
scheme of the embedded document, which has various consequences that must be
accounted for. 309567@main invalidates the FrameView of the embedded document,
so the iframe background gets repainted (background is transparent or opaque
depending on the color scheme of the <iframe> vs embedded document). But we miss
one thing: the evaluation result of style features like light-dark, system color
and @prefers-color-scheme also changes, so we need to invalidate the style too.
Tests:
imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-cross-origin.sub.html
imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-same-origin.html
*
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-cross-origin-ref.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-cross-origin.sub-expected.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-cross-origin.sub.html:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-expected.txt:
Removed.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-same-origin-expected.txt:
Added.
*
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change-same-origin.html:
Renamed from
LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/rendering/dark-color-scheme/color-scheme-iframe-preferred-change.html.
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::appearanceDidChange):
- Move code that originally was in Page::appearanceDidChange to here, so we
could
use it in LocalFrameView::invalidateForPreferredColorSchemeChange.
* Source/WebCore/page/Frame.cpp:
(WebCore::Frame::updateFrameTreeSyncData):
* Source/WebCore/page/LocalFrameView.cpp:
(WebCore::LocalFrameView::invalidateForFrameOwnerColorSchemeChange):
- New method that calls invalidateForBaseBackgroundChange and
appearanceDidChange.
(WebCore::LocalFrameView::invalidateForBaseBackgroundChange):
- Renamed from invalidateForBaseBackgroundOrColorSchemeChange. Turns out
color scheme changes requires more invalidation.
(WebCore::LocalFrameView::setBaseBackgroundColor):
(WebCore::LocalFrameView::invalidateForBaseBackgroundOrColorSchemeChange):
Deleted.
* Source/WebCore/page/LocalFrameView.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::appearanceDidChange):
- Move all code into Document::appearanceDidChange instead.
* Source/WebCore/rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::styleDidChange):
Canonical link: https://commits.webkit.org/316467@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications