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

Reply via email to