[webkit-changes] [WebKit/WebKit] 96178a: Deprecate WKWebViewConfiguration._relatedWebView

Alex Christensen noreply at github.com
Tue Aug 20 08:31:36 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 96178af87818a22654b660f0b6bf5c3ae3cc70c4
      https://github.com/WebKit/WebKit/commit/96178af87818a22654b660f0b6bf5c3ae3cc70c4
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-08-20 (Tue, 20 Aug 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/C/WKPageConfigurationRef.h
    M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfiguration.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h
    M Source/WebKit/UIProcess/Cocoa/UIDelegate.mm
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm
    M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm
    M Tools/TestWebKitAPI/Tests/WebKit/WKPageConfiguration.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspension.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebLocks.mm
    M Tools/TestWebKitAPI/gtk/PlatformWebViewGtk.cpp
    M Tools/TestWebKitAPI/mac/PlatformWebViewMac.mm
    M Tools/TestWebKitAPI/playstation/PlatformWebViewPlayStation.cpp
    M Tools/TestWebKitAPI/win/PlatformWebViewWin.cpp
    M Tools/TestWebKitAPI/wpe/PlatformWebViewWPE.cpp

  Log Message:
  -----------
  Deprecate WKWebViewConfiguration._relatedWebView
https://bugs.webkit.org/show_bug.cgi?id=278369
rdar://134318086

Reviewed by Timothy Hatcher.

_relatedWebView is SPI to place two WKWebViews in the same web content process.
It is fundamentally incompatible with site isolation for several reasons.
First, it takes control of the process selection logic to the SPI client instead
of the site that is loaded in the WKWebView.  Second, it assumes there is only
one web content process to share.  Third, its use is tied to use of injected
bundle SPI that is also incompatible with site isolation, and that use often keeps
state in the web content process, which can't be done with site isolation because
that state must now be kept in multiple processes.

This deprecation doesn't change behavior, but it will begin giving a signal that
this SPI should not have new use and its current use should be migrated from.

This PR must merge only after rdar://134318043 is complete.

* Source/WebKit/UIProcess/API/C/WKPageConfigurationRef.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setupPageConfiguration:withPool:]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::createNewPage):
* Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionContextCocoa.mm:
(WebKit::WebExtensionContext::webViewConfiguration):
(WebKit::WebExtensionContext::loadInspectorBackgroundPage):
* Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::TEST(WebKit, InterruptionBetweenSameProcessPages)):
(TestWebKitAPI::TransferTrackBetweenSameProcessPages)):
* Tools/TestWebKitAPI/Tests/WebKit/WKPageConfiguration.cpp:
(TestWebKitAPI::TEST(WebKit, WKPageConfigurationEmpty)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TestWebKitAPI::TEST(GPUProcess, GPUProcessForDOMRenderingCarriesOverFromRelatedPage)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:
(TEST(WKWebView, LocalStorageDifferentPageGroupSameProcess)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspension.mm:
(TEST(ProcessSuspension, DestroyWebPageDuringWebProcessSuspension)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
((ProcessSwap, RelatedWebViewBeforeWebProcessLaunch)):
((ProcessSwap, ReloadRelatedWebViewAfterCrash)):
((ProcessSwap, TerminatedSuspendedPageProcess)):
((ProcessSwap, ProcessSwapInRelatedView)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
((ServiceWorkers, ThrottleCrash)):
((ServiceWorker, ExtensionServiceWorker)):
((ServiceWorker, RemovalOfSameRegistrableDomainButDifferentOrigin)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
(TEST(WebKit, InvalidConfiguration)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
(TEST(WKNavigation, ReloadRelatedViewsInProcessDidTerminate)):
(TEST(WKNavigation, MultipleProcessCrashesRelatedWebViews)):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WebLocks.mm:
(TestWebKitAPI::runSnapshotAcrossPagesTest):
(TestWebKitAPI::runLockRequestWaitingOnAnotherPage):
* Tools/TestWebKitAPI/mac/PlatformWebViewMac.mm:
(TestWebKitAPI::PlatformWebView::initialize):
(TestWebKitAPI::PlatformWebView::PlatformWebView):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list