[webkit-changes] [WebKit/WebKit] 110ccc: [WebKit] Enable InstallAPI for macOS/tvOS/watchOS

Elliott Williams noreply at github.com
Thu Jun 8 12:31:30 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 110ccc3202f36448008342c92ce503820c473a8c
      https://github.com/WebKit/WebKit/commit/110ccc3202f36448008342c92ce503820c473a8c
  Author: Elliott Williams <emw at apple.com>
  Date:   2023-06-08 (Thu, 08 Jun 2023)

  Changed paths:
    M Source/WebKit/Configurations/Base.xcconfig
    M Source/WebKit/Configurations/WebKit.xcconfig
    M Source/WebKit/Platform/ExtraPublicSymbolsForTAPI.h
    M Source/WebKit/Shared/API/Cocoa/WebKit.m
    M Source/WebKit/UIProcess/API/C/WKOpenPanelResultListener.h
    M Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj
    M Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig
    A Source/WebKitLegacy/mac/ExtraPrivateSymbolsForTAPI.h
    M Source/WebKitLegacy/mac/Misc/WebIconDatabase.h
    M Source/WebKitLegacy/mac/Misc/WebIconDatabase.mm
    M Source/WebKitLegacy/mac/Panels/WebPanelAuthenticationHandler.h
    M Source/WebKitLegacy/mac/Panels/WebPanelAuthenticationHandler.m
    M Source/WebKitLegacy/mac/WebCoreSupport/WebJavaScriptTextInputPanel.h
    M Source/WebKitLegacy/mac/WebCoreSupport/WebJavaScriptTextInputPanel.m
    M Source/WebKitLegacy/mac/WebKit.mac.exp
    M Source/WebKitLegacy/mac/WebView/WebViewInternal.h
    M Source/WebKitLegacy/mac/WebView/WebViewPrivate.h
    M Tools/Scripts/build-webkit
    M Tools/Scripts/webkitdirs.pm

  Log Message:
  -----------
  [WebKit] Enable InstallAPI for macOS/tvOS/watchOS
https://bugs.webkit.org/show_bug.cgi?id=257560
rdar://103361403

Reviewed by Alexey Proskuryakov.

Straightforward xcconfig and header changes to make WebKit and
WebKitLegacy use InstallAPI on all platforms. To avoid increasing the
potential for build failures due to stale headers, only introduce new
use of InstallAPI when TAPI_USE_SRCROOT is enabled.

* Source/WebKit/Configurations/Base.xcconfig: Remove platform conditions
  from SUPPORTS_TEXT_BASED_API.
* Source/WebKit/Configurations/WebKit.xcconfig: Remove platform
  conditions from OTHER_TAPI_FLAGS.
* Source/WebKit/Platform/ExtraPublicSymbolsForTAPI.h:
  $ld$install_name$os declarations are iOS-only. Add conditional guards.
* Source/WebKit/UIProcess/API/C/WKOpenPanelResultListener.h:
  WKOpenPanelResultListenerChooseMediaFiles is only implemented on iOS.
  Wrap it in a conditional guard.
* Source/WebKit/Shared/API/Cocoa/WebKit.m: Drive-by fixup: Change the
  ifdef condition to only emit versions-specific install names on iOS.

* Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj: Add
  reference to ExtraPrivateSymbolsForTAPI.h
* Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig: Remove
  platform conditions from SUPPORTS_TEXT_BASED_API, TAPI_VERIFY_MODE,
  and OTHER_TAPI_FLAGS.
* Source/WebKitLegacy/mac/ExtraPrivateSymbolsForTAPI.h: Added, declares
  `WebCoreScrollView` which is implemented for backwards compatibility
  but removed from API/SPI headers.
* Source/WebKitLegacy/mac/Misc/WebIconDatabase.h:
  Declare WebIconDatabaseDidRemoveAllIconsNotification.
  Delete WebIconDatabaseEnabledDefaultsKey; it's not used anywhere and
  is not in any export lists.
* Source/WebKitLegacy/mac/Misc/WebIconDatabase.mm: Ditto.
* Source/WebKitLegacy/mac/Panels/WebPanelAuthenticationHandler.h: Move
  WebPanelAuthenticationHandler ivars to the .m file; they are neither
  exported nor used outside the implementation.
* Source/WebKitLegacy/mac/Panels/WebPanelAuthenticationHandler.m: See
  above.
* Source/WebKitLegacy/mac/WebCoreSupport/WebJavaScriptTextInputPanel.h:
  Ditto for WebJavaScriptTextInputPanel's ivars.
* Source/WebKitLegacy/mac/WebCoreSupport/WebJavaScriptTextInputPanel.m:
  See above.
* Source/WebKitLegacy/mac/WebKit.mac.exp: WebUndefined is declared in a
  migrated header (WebScriptObject.h) and used by DumpRenderTree, so it
  should be reexported.
* Source/WebKitLegacy/mac/WebView/WebViewInternal.h: Move unexported key
  strings here from WebViewPrivate.h.
* Source/WebKitLegacy/mac/WebView/WebViewPrivate.h: See above.

Xcode 13.x does not respect file filters (e.g.
EXCLUDED_SOURCE_FILE_NAMES) in TAPI filelists (rdar://92126006), so
raise the target version for TAPI_USE_SRCROOT mode to 14.0. This still
provides macOS and iOS coverage with SRCROOT mode in EWS. Also, the
feature flag can be passed as a defaults override, not an environment
variable, so do that instead.

* Tools/Scripts/build-webkit:
* Tools/Scripts/webkitdirs.pm:
(XcodeOptions):

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




More information about the webkit-changes mailing list