Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d062fdda8a01d71be0c43e0e8126bd095b935bc7
https://github.com/WebKit/WebKit/commit/d062fdda8a01d71be0c43e0e8126bd095b935bc7
Author: Kiet Ho <[email protected]>
Date: 2026-02-24 (Tue, 24 Feb 2026)
Changed paths:
A
LayoutTests/http/tests/site-isolation/intersection-observer/resources/site-isolation-crash-subframe.html
A
LayoutTests/http/tests/site-isolation/intersection-observer/site-isolation-crash-expected.txt
A
LayoutTests/http/tests/site-isolation/intersection-observer/site-isolation-crash.html
M Source/WebCore/dom/ContentVisibilityDocumentState.cpp
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/Document.h
M Source/WebCore/page/ChromeClient.h
M Source/WebCore/page/IntersectionObserver.cpp
M Source/WebCore/page/IntersectionObserver.h
M Source/WebCore/page/LocalFrame.cpp
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/RemoteFrameView.cpp
M Source/WebKit/UIProcess/WebFrameProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.messages.in
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.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:
-----------
Re-land 306473@main: [Site Isolation] [intersection-observer] Update
intersection observers in cross-origin frames when main frame updates its
rendering
rdar://169447490
https://bugs.webkit.org/show_bug.cgi?id=306828
Reviewed by Simon Fraser.
306473@main contains a downcast<LocalFrameView> in
IntersectionObserver::computeIntersectionState, which blows up with Site
Isolation
enabled if the host FrameView is not LocalFrameView. Change it to use
dynamicDowncast and add guard against the situation if the FrameView is not
LocalFrameView.
Test: http/tests/site-isolation/intersection-observer/site-isolation-crash.html
*
LayoutTests/http/tests/site-isolation/intersection-observer/resources/site-isolation-crash-subframe.html:
Added.
*
LayoutTests/http/tests/site-isolation/intersection-observer/site-isolation-crash-expected.txt:
Added.
*
LayoutTests/http/tests/site-isolation/intersection-observer/site-isolation-crash.html:
Added.
* Source/WebCore/dom/ContentVisibilityDocumentState.cpp:
(WebCore::ContentVisibilityDocumentState::determineInitialVisibleContentVisibility
const):
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::commonTeardown):
(WebCore::Document::addIntersectionObserver):
(WebCore::Document::removeIntersectionObserver):
(WebCore::updateAndNotifyIntersectionObservers):
(WebCore::Document::updateRemoteIntersectionObservers):
(WebCore::Document::updateIntersectionObservers):
(WebCore::Document::updateIntersectionObservations): Deleted.
* Source/WebCore/dom/Document.h:
(WebCore::Document::numberOfIntersectionObservers const):
* Source/WebCore/page/ChromeClient.h:
(WebCore::ChromeClient::updateRemoteIntersectionObserversInOtherWebProcesses):
* Source/WebCore/page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::computeIntersectionState const):
* Source/WebCore/page/IntersectionObserver.h:
(WebCore::IntersectionObserver::type const):
* Source/WebCore/page/LocalFrame.cpp:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::updateRendering):
* Source/WebCore/page/RemoteFrameView.cpp:
(WebCore::RemoteFrameView::visibleRectOfChild const):
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateRemoteIntersectionObserversInOtherWebProcesses):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::updateRemoteIntersectionObserversInOtherWebProcesses):
* Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h:
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updateRemoteIntersectionObservers):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
Canonical link: https://commits.webkit.org/308143@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications