Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 29d6acce4d23b6012258b0587f9e289a60b75b21
      
https://github.com/WebKit/WebKit/commit/29d6acce4d23b6012258b0587f9e289a60b75b21
  Author: Sihui Liu <[email protected]>
  Date:   2025-05-16 (Fri, 16 May 2025)

  Changed paths:
    M Source/WebCore/loader/archive/Archive.h
    M Source/WebCore/loader/archive/ArchiveResource.cpp
    M Source/WebCore/loader/archive/ArchiveResource.h
    M Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
    M Source/WebCore/loader/archive/cf/LegacyWebArchive.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
    M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm

  Log Message:
  -----------
  [Site Isolation] Add basic support for webarchive generation
https://bugs.webkit.org/show_bug.cgi?id=293087
rdar://151424329

Reviewed by Ryosuke Niwa.

In existing implementation, when creating webarchive for a web page, the web 
process that hosts the web page will
collect data for all frames and put the data in a single webarchive. With site 
isolation, this will not work because
frames can be put in different web processes and frame data needs to be fetched 
from different processes. To support
webarchive genereation with site isolation, this patch makes UI process collect 
frame webarchives from all web processes
of the page, and combined them into one webarchive based on subframe 
identifiers in the webarchives.

* Source/WebCore/loader/archive/Archive.h:
(WebCore::Archive::mainResource const):
(WebCore::Archive::mainResource): Deleted.
* Source/WebCore/loader/archive/ArchiveResource.cpp:
(WebCore::ArchiveResource::create):
(WebCore::ArchiveResource::createWithData):
* Source/WebCore/loader/archive/ArchiveResource.h:
(WebCore::ArchiveResource::createWithData):
* Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::LegacyWebArchive):
(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):
* Source/WebCore/loader/archive/cf/LegacyWebArchive.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView createWebArchiveDataWithCompletionHandler:]):
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::getWebArchiveData):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getWebArchive):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::getWebArchives):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
* Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
(TestWebKitAPI::(SiteIsolation, CreateWebArchive)):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to