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

Reply via email to