<https://webkit.org/b/126499> Move WebKit off the legacy WebKit availability macros
authormrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 6 Jan 2014 08:15:52 +0000 (08:15 +0000)
committermrowe@apple.com <mrowe@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 6 Jan 2014 08:15:52 +0000 (08:15 +0000)
commit5c22f82f312e469ebff3e66948a02ff8a18eb011
treecf727d37678f7ef156e1f29518b74647aba43e61
parent41bc9bbfcb856da33793c45763c53587c58939d5
<https://webkit.org/b/126499> Move WebKit off the legacy WebKit availability macros

The legacy WebKit availability macros are verbose, confusing, and provide no benefit
over using the system availability macros directly. The original vision was that
they'd serve a cross-platform purpose but that never came to be.

Since WebKit1 is API on OS X but SPI on iOS, some indirection is still needed in the
availability macros to allow the headers to advertise the API as unavailable on OS X
without interfering with the ability to build on iOS. This is achieved by defining
WEBKIT-prefixed versions of the Foundation availability macros that are defined to
their NS-prefixed equivalents. The installed headers are post-processed to map these
macros back to their Foundation equivalents.

Part of <rdar://problem/15512304>.

Source/WebCore:

Reviewed by Sam Weinig.

* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/WebKitAvailability.h: Added. This lives at the WebCore level since it
will be needed by the Objective-C DOM bindings.

Source/WebKit:

Reviewed by Sam Weinig.

* WebKit.xcodeproj/project.pbxproj: Change the Postprocess Headers build phase to
invoke mac/postprocess-headers.sh.

Source/WebKit/mac:

The OS X version used in the new availability macros is based on the mapping in
JavaScriptCore/WebKitAvailability.h.

Reviewed by Sam Weinig.

* Carbon/CarbonUtils.h:
* Carbon/HIWebView.h:
* MigrateHeaders.make: Migrate WebKitAvailability.h from WebCore as an API header.
* Plugins/WebPlugin.h:
* Plugins/WebPluginViewFactory.h:
* WebView/WebFrameLoadDelegate.h:
* WebView/WebResourceLoadDelegatePrivate.h:
* WebView/WebUIDelegate.h:
* postprocess-headers.sh: Added. Extracted from the Xcode project. Extended to map the
WEBKIT-prefixed macros to their NS-prefixed equivalents on OS X and to remove them on iOS.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@161332 268f45cc-cd09-0410-ab3c-d52691b4dbfc
15 files changed:
Source/WebCore/ChangeLog
Source/WebCore/WebCore.xcodeproj/project.pbxproj
Source/WebCore/bindings/objc/WebKitAvailability.h [new file with mode: 0644]
Source/WebKit/ChangeLog
Source/WebKit/WebKit.xcodeproj/project.pbxproj
Source/WebKit/mac/Carbon/CarbonUtils.h
Source/WebKit/mac/Carbon/HIWebView.h
Source/WebKit/mac/ChangeLog
Source/WebKit/mac/MigrateHeaders.make
Source/WebKit/mac/Plugins/WebPlugin.h
Source/WebKit/mac/Plugins/WebPluginViewFactory.h
Source/WebKit/mac/WebView/WebFrameLoadDelegate.h
Source/WebKit/mac/WebView/WebResourceLoadDelegatePrivate.h
Source/WebKit/mac/WebView/WebUIDelegate.h
Source/WebKit/mac/postprocess-headers.sh [new file with mode: 0755]