Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 00dcbd8c70b8cb1baa57c6ba0ccdd5a15819887f
      
https://github.com/WebKit/WebKit/commit/00dcbd8c70b8cb1baa57c6ba0ccdd5a15819887f
  Author: Alex Christensen <achristen...@apple.com>
  Date:   2023-12-05 (Tue, 05 Dec 2023)

  Changed paths:
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/history/CachedFrame.cpp
    M Source/WebCore/history/CachedFrame.h
    M Source/WebCore/history/CachedPage.cpp
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/loader/FrameLoader.h
    M Source/WebCore/loader/HistoryController.cpp
    M Source/WebCore/loader/HistoryController.h
    M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
    M Source/WebKit/UIProcess/ProvisionalPageProxy.h
    M Source/WebKit/UIProcess/RemotePageProxy.cpp
    M Source/WebKit/UIProcess/RemotePageProxy.h
    A Source/WebKit/UIProcess/RemotePageProxyState.h
    M Source/WebKit/UIProcess/SuspendedPageProxy.cpp
    M Source/WebKit/UIProcess/SuspendedPageProxy.h
    M Source/WebKit/UIProcess/WebFrameProxy.cpp
    M Source/WebKit/UIProcess/WebFrameProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxyInternals.h
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm

  Log Message:
  -----------
  Begin implementing back/forward cache for site isolation
https://bugs.webkit.org/show_bug.cgi?id=265561
rdar://118965412

Reviewed by Pascoe.

My approach before was to terminate the iframe processes when we navigate away,
which seems to match other browsers but doesn't match our existing behavior of
being able to quickly navigate back to a fully functional page.  We need to keep
the processes alive and make CachedFrame able to handle RemoteFrames in order to
keep that speed.  If we get a memory pressure warning, we will remove 
back/forward
cache entries, but if we have the memory let's keep the existing behavior.

This is the first of at least two PRs to get back/forward navigation working 
with
site isolation.  I make CachedFrame able to handle RemoteFrames, I made
HistoryController a non-nested class to be able to be owned by RemoteFrames (but
I didn't change that ownership yet), and I swap RemotePageProxy state to a
SuspendedPageProxy when suspending.

* Source/WebCore/dom/Document.cpp:
(WebCore::Document::attachToCachedFrame):
* Source/WebCore/history/CachedFrame.cpp:
(WebCore::CachedFrameBase::CachedFrameBase):
(WebCore::CachedFrameBase::restore):
(WebCore::CachedFrame::CachedFrame):
(WebCore::CachedFrame::open):
(WebCore::CachedFrame::destroy):
* Source/WebCore/history/CachedFrame.h:
(WebCore::CachedFrameBase::view const):
* Source/WebCore/history/CachedPage.cpp:
(WebCore::CachedPage::CachedPage):
(WebCore::firePageShowEvent):
(WebCore::CachedPage::restore):
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::open):
* Source/WebKit/UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::SuspendedPageProxy):
* Source/WebKit/UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::removeRemotePagesForSuspension): Deleted.
* Source/WebKit/UIProcess/WebFrameProxy.h:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
(TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/271590@main


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to