[webkit-changes] [WebKit/WebKit] 4112a1: Re-add access to WKBrowsingContextController on iO...

Alex Christensen noreply at github.com
Mon May 20 16:36:52 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4112a1e17fe67a4f8091c6f2a5a13d9619ac83f7
      https://github.com/WebKit/WebKit/commit/4112a1e17fe67a4f8091c6f2a5a13d9619ac83f7
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2024-05-20 (Mon, 20 May 2024)

  Changed paths:
    M Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h
    M Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm
    M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
    M Source/WebKit/UIProcess/ios/WKContentView.h
    M Source/WebKit/UIProcess/ios/WKContentView.mm

  Log Message:
  -----------
  Re-add access to WKBrowsingContextController on iOS with linked-on-or-after check
https://bugs.webkit.org/show_bug.cgi?id=274417
rdar://128283322

Reviewed by Brady Eidson.

WKBrowsingContextController is SPI that does not exist in public headers, but at
least one app is doing some tricky ObjC runtime things to access and use it.  This
PR puts it back but with a linked-on-or-after check removing access so when the app
updates it will no longer be able to access the SPI.

The original motivation for disconnecting WKBrowsingContextController was to remove
use of ObjCObjectGraph, which was used to communicate with the injected bundle in
some early prototypes of multi-process WebKit.  I verified ObjCObjectGraph was not
used, which makes sense because there is no injected bundle to communicate with.
To make this re-adding of WKBrowsingContextController access not hold up the removal
of ObjCObjectGraph, I also removed the use of ObjCObjectGraph in WKBrowsingContextController.

* Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h:
* Source/WebKit/UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadRequest:userData:]):
(-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:userData:]):
(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]):
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView browsingContextController]):
* Source/WebKit/UIProcess/ios/WKContentView.h:
* Source/WebKit/UIProcess/ios/WKContentView.mm:
(-[WKContentView browsingContextController]):

Canonical link: https://commits.webkit.org/279022@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