Add nullability qualifiers to all API headers
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Feb 2015 19:38:08 +0000 (19:38 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 16 Feb 2015 19:38:08 +0000 (19:38 +0000)
https://bugs.webkit.org/show_bug.cgi?id=141652
rdar://problem/19793630

Reviewed by Dan Bernstein.

* Shared/API/Cocoa/WKFoundation.h:
Add a WK_NULLABLE_SPECIFIER macro.

* UIProcess/API/Cocoa/WKBackForwardListItem.h:
* UIProcess/API/Cocoa/WKFrameInfo.h:
* UIProcess/API/Cocoa/WKNavigationAction.h:
* UIProcess/API/Cocoa/WKNavigationDelegate.h:
* UIProcess/API/Cocoa/WKNavigationResponse.h:
* UIProcess/API/Cocoa/WKScriptMessage.h:
* UIProcess/API/Cocoa/WKScriptMessageHandler.h:
* UIProcess/API/Cocoa/WKUIDelegate.h:
* UIProcess/API/Cocoa/WKUserContentController.h:
* UIProcess/API/Cocoa/WKUserScript.h:
* UIProcess/API/Cocoa/WKWebView.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWindowFeatures.h:

* mac/postprocess-framework-headers.sh:
Handle the WK_NULLABLE_SPECIFIER macro. Change the WK_NULLABLE sed command to replace
all occurrences of WK_NULLABLE instead of just the first one.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@180162 268f45cc-cd09-0410-ab3c-d52691b4dbfc

16 files changed:
Source/WebKit2/ChangeLog
Source/WebKit2/Shared/API/Cocoa/WKFoundation.h
Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListItem.h
Source/WebKit2/UIProcess/API/Cocoa/WKFrameInfo.h
Source/WebKit2/UIProcess/API/Cocoa/WKNavigationAction.h
Source/WebKit2/UIProcess/API/Cocoa/WKNavigationDelegate.h
Source/WebKit2/UIProcess/API/Cocoa/WKNavigationResponse.h
Source/WebKit2/UIProcess/API/Cocoa/WKScriptMessage.h
Source/WebKit2/UIProcess/API/Cocoa/WKScriptMessageHandler.h
Source/WebKit2/UIProcess/API/Cocoa/WKUIDelegate.h
Source/WebKit2/UIProcess/API/Cocoa/WKUserContentController.h
Source/WebKit2/UIProcess/API/Cocoa/WKUserScript.h
Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h
Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.h
Source/WebKit2/UIProcess/API/Cocoa/WKWindowFeatures.h
Source/WebKit2/mac/postprocess-framework-headers.sh

index 76ab265ca7274898ce02c27993af8c481f43467d..b8eee8cc1b30ee6cb9bfdbb68be6c5f0db583057 100644 (file)
@@ -1,3 +1,32 @@
+2015-02-16  Anders Carlsson  <andersca@apple.com>
+
+        Add nullability qualifiers to all API headers
+        https://bugs.webkit.org/show_bug.cgi?id=141652
+        rdar://problem/19793630
+
+        Reviewed by Dan Bernstein.
+
+        * Shared/API/Cocoa/WKFoundation.h:
+        Add a WK_NULLABLE_SPECIFIER macro.
+
+        * UIProcess/API/Cocoa/WKBackForwardListItem.h:
+        * UIProcess/API/Cocoa/WKFrameInfo.h:
+        * UIProcess/API/Cocoa/WKNavigationAction.h:
+        * UIProcess/API/Cocoa/WKNavigationDelegate.h:
+        * UIProcess/API/Cocoa/WKNavigationResponse.h:
+        * UIProcess/API/Cocoa/WKScriptMessage.h:
+        * UIProcess/API/Cocoa/WKScriptMessageHandler.h:
+        * UIProcess/API/Cocoa/WKUIDelegate.h:
+        * UIProcess/API/Cocoa/WKUserContentController.h:
+        * UIProcess/API/Cocoa/WKUserScript.h:
+        * UIProcess/API/Cocoa/WKWebView.h:
+        * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
+        * UIProcess/API/Cocoa/WKWindowFeatures.h:
+
+        * mac/postprocess-framework-headers.sh:
+        Handle the WK_NULLABLE_SPECIFIER macro. Change the WK_NULLABLE sed command to replace
+        all occurrences of WK_NULLABLE instead of just the first one.
+
 2015-02-16  Dan Bernstein  <mitz@apple.com>
 
         Update SPI availability annotations 
index 0f4535ba90fb324cfdf67f4a2db589de876de70f..5a04f5cd1edd088862ce55dd9a3d42b95089c050 100644 (file)
 #if !__has_attribute(noescape)
 #define WK_NULLABLE
 #define WK_NULL_UNSPECIFIED
+#define WK_NULLABLE_SPECIFIER
 #define WK_NULLABLE_PROPERTY
 #else
 #define WK_NULLABLE nullable
 #define WK_NULL_UNSPECIFIED null_unspecified
+#define WK_NULLABLE_SPECIFIER __nullable
 #define WK_NULLABLE_PROPERTY nullable,
 #endif
 
index 6cd8d278c5e43c4f50a074ebca1443bba2ecb944..204413c3ec11a86ab86bda875a30cb45d7c91021 100644 (file)
@@ -31,6 +31,8 @@
 
 /*! A WKBackForwardListItem object represents a webpage in the back-forward list of a web view.
  */
+WK_ASSUME_NONNULL_BEGIN
+
 WK_CLASS_AVAILABLE(10_10, 8_0)
 @interface WKBackForwardListItem : NSObject
 
@@ -40,7 +42,7 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 /*! @abstract The title of the webpage represented by this item.
  */
-@property (readonly, copy) NSString *title;
+@property (WK_NULLABLE_PROPERTY readonly, copy) NSString *title;
 
 /*! @abstract The URL of the initial request that created this item.
  */
@@ -48,4 +50,6 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index 15ddfac6f95d86d892a1a8f6d4a534936570fbe3..ed11be3e0f5bb807d57938f5a9180ed99c3fa3a2 100644 (file)
@@ -34,6 +34,8 @@
  it does not uniquely identify a frame across multiple delegate method
  calls.
  */
+WK_ASSUME_NONNULL_BEGIN
+
 WK_CLASS_AVAILABLE(10_10, 8_0)
 @interface WKFrameInfo : NSObject <NSCopying>
 
@@ -48,4 +50,6 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index 8cbbbe3d7484ee275faf24a883464b42ff800e26..1ccd901cdbc396b13988a35f0ee144802182007f 100644 (file)
@@ -33,6 +33,8 @@
 #import <AppKit/AppKit.h>
 #endif
 
+WK_ASSUME_NONNULL_BEGIN
+
 @class WKFrameInfo;
 
 /*! @enum WKNavigationType
@@ -65,7 +67,7 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 /*! @abstract The target frame, or nil if this is a new window navigation.
  */
-@property (nonatomic, readonly, copy) WKFrameInfo *targetFrame;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly, copy) WKFrameInfo *targetFrame;
 
 /*! @abstract The type of action that triggered the navigation.
  @discussion The value is one of the constants of the enumerated type WKNavigationType.
@@ -90,4 +92,6 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index b7dd0290889c6a6867b17dedebc17671ea5863f9..6e5cdd63f60bfbccbdf3f4902c4a4fe53b35af02 100644 (file)
@@ -29,6 +29,8 @@
 
 #import <Foundation/Foundation.h>
 
+WK_ASSUME_NONNULL_BEGIN
+
 @class WKNavigation;
 @class WKNavigationAction;
 @class WKNavigationResponse;
@@ -88,14 +90,14 @@ typedef NS_ENUM(NSInteger, WKNavigationResponsePolicy) {
  @param webView The web view invoking the delegate method.
  @param navigation The navigation.
  */
-- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation;
+- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WK_NULL_UNSPECIFIED WKNavigation *)navigation;
 
 /*! @abstract Invoked when a server redirect is received for the main
  frame.
  @param webView The web view invoking the delegate method.
  @param navigation The navigation.
  */
-- (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation;
+- (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WK_NULL_UNSPECIFIED WKNavigation *)navigation;
 
 /*! @abstract Invoked when an error occurs while starting to load data for
  the main frame.
@@ -103,19 +105,19 @@ typedef NS_ENUM(NSInteger, WKNavigationResponsePolicy) {
  @param navigation The navigation.
  @param error The error that occurred.
  */
-- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error;
+- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WK_NULL_UNSPECIFIED WKNavigation *)navigation withError:(NSError *)error;
 
 /*! @abstract Invoked when content starts arriving for the main frame.
  @param webView The web view invoking the delegate method.
  @param navigation The navigation.
  */
-- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation;
+- (void)webView:(WKWebView *)webView didCommitNavigation:(WK_NULL_UNSPECIFIED WKNavigation *)navigation;
 
 /*! @abstract Invoked when a main frame navigation completes.
  @param webView The web view invoking the delegate method.
  @param navigation The navigation.
  */
-- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation;
+- (void)webView:(WKWebView *)webView didFinishNavigation:(WK_NULL_UNSPECIFIED WKNavigation *)navigation;
 
 /*! @abstract Invoked when an error occurs during a committed main frame
  navigation.
@@ -123,7 +125,7 @@ typedef NS_ENUM(NSInteger, WKNavigationResponsePolicy) {
  @param navigation The navigation.
  @param error The error that occurred.
  */
-- (void)webView:(WKWebView *)webView didFailNavigation:(WKNavigation *)navigation withError:(NSError *)error;
+- (void)webView:(WKWebView *)webView didFailNavigation:(WK_NULL_UNSPECIFIED WKNavigation *)navigation withError:(NSError *)error;
 
 /*! @abstract Invoked when the web view needs to respond to an authentication challenge.
  @param webView The web view that received the authentication challenge.
@@ -135,8 +137,10 @@ typedef NS_ENUM(NSInteger, WKNavigationResponsePolicy) {
  credential.
  @discussion If you do not implement this method, the web view will respond to the authentication challenge with the NSURLSessionAuthChallengeRejectProtectionSpace disposition.
  */
-- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler;
+- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, WK_NULLABLE_SPECIFIER NSURLCredential *credential))completionHandler;
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index e367fb39a302b1cd49c4ee60f133df2f473feeeb..75e147f5369b6f89f23c6b76cb2d5d813a5e7be3 100644 (file)
@@ -29,6 +29,8 @@
 
 #import <Foundation/Foundation.h>
 
+WK_ASSUME_NONNULL_BEGIN
+
 @class WKFrameInfo;
 
 /*! Contains information about a navigation response, used for making policy decisions.
@@ -51,4 +53,6 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index 1871ebcd950125f2094fd4c2361881230195c561..92d586e413e20989dfaa8964a0aa5fd1b84fe3b1 100644 (file)
@@ -29,6 +29,8 @@
 
 #import <Foundation/Foundation.h>
 
+WK_ASSUME_NONNULL_BEGIN
+
 @class WKFrameInfo;
 @class WKWebView;
 
@@ -45,7 +47,7 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 @property (nonatomic, readonly, copy) id body;
 
 /*! @abstract The web view sending the message. */
-@property (nonatomic, readonly, weak) WKWebView *webView;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly, weak) WKWebView *webView;
 
 /*! @abstract The frame sending the message. */
 @property (nonatomic, readonly, copy) WKFrameInfo *frameInfo;
@@ -56,4 +58,6 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index 2411f0ff104216f5ee53ee59f2d7b62deab12e40..9d24bc5944d6cba95bb65aae93ba846785f1cb45 100644 (file)
@@ -29,6 +29,8 @@
 
 #import <Foundation/Foundation.h>
 
+WK_ASSUME_NONNULL_BEGIN
+
 @class WKScriptMessage;
 @class WKUserContentController;
 
@@ -48,4 +50,6 @@
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index 4c19f6bedbcb7aebcf317a7f2d1502ac74cb725a..9b0cca99b25c884d73aea58350a5994e2fcc4e9e 100644 (file)
@@ -29,6 +29,8 @@
 
 #import <Foundation/Foundation.h>
 
+WK_ASSUME_NONNULL_BEGIN
+
 @class WKFrameInfo;
 @class WKNavigationAction;
 @class WKWebViewConfiguration;
@@ -53,7 +55,7 @@
 
  If you do not implement this method, the web view will cancel the navigation.
  */
-- (WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures;
+- (WK_NULLABLE WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures;
 
 /*! @abstract Displays a JavaScript alert panel.
  @param webView The web view invoking the delegate method.
 
  If you do not implement this method, the web view will behave as if the user selected the Cancel button.
  */
-- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSString *result))completionHandler;
+- (void)webView:(WKWebView *)webView runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(WK_NULLABLE NSString *)defaultText initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(WK_NULLABLE_SPECIFIER NSString *result))completionHandler;
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index ab6303be5d5cbc0e484275b8428688f602e4d9eb..f049957168a5ce054791ed184464e3a7fc1347e2 100644 (file)
@@ -29,6 +29,8 @@
 
 #import <Foundation/Foundation.h>
 
+WK_ASSUME_NONNULL_BEGIN
+
 @class WKUserScript;
 @protocol WKScriptMessageHandler;
 
@@ -70,4 +72,6 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index 49b9dad44408c030e4e705456d4a627bfe731bcc..3a480e17a1988886af0a249badb3395f3b3dd0a4 100644 (file)
@@ -34,6 +34,8 @@
  @constant WKUserScriptInjectionTimeAtDocumentStart    Inject the script after the document element has been created, but before any other content has been loaded.
  @constant WKUserScriptInjectionTimeAtDocumentEnd      Inject the script after the document has finished loading, but before any subresources may have finished loading.
  */
+WK_ASSUME_NONNULL_BEGIN
+
 typedef NS_ENUM(NSInteger, WKUserScriptInjectionTime) {
     WKUserScriptInjectionTimeAtDocumentStart,
     WKUserScriptInjectionTimeAtDocumentEnd
@@ -62,4 +64,6 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index 015f59c325946b32f5d46a3bf931d6250c54d5ef..00832fdd390399d2de7c5ef55edca3d58571b592 100644 (file)
@@ -33,6 +33,8 @@
 #import <AppKit/AppKit.h>
 #endif
 
+WK_ASSUME_NONNULL_BEGIN
+
 @class WKBackForwardList;
 @class WKBackForwardListItem;
 @class WKNavigation;
@@ -59,10 +61,10 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 @property (nonatomic, readonly, copy) WKWebViewConfiguration *configuration;
 
 /*! @abstract The web view's navigation delegate. */
-@property (nonatomic, weak) id <WKNavigationDelegate> navigationDelegate;
+@property (WK_NULLABLE_PROPERTY nonatomic, weak) id <WKNavigationDelegate> navigationDelegate;
 
 /*! @abstract The web view's user interface delegate. */
-@property (nonatomic, weak) id <WKUIDelegate> UIDelegate;
+@property (WK_NULLABLE_PROPERTY nonatomic, weak) id <WKUIDelegate> UIDelegate;
 
 /*! @abstract The web view's back-forward list. */
 @property (nonatomic, readonly, strong) WKBackForwardList *backForwardList;
@@ -87,7 +89,7 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
  @param request The request specifying the URL to which to navigate.
  @result A new navigation for the given request.
  */
-- (WKNavigation *)loadRequest:(NSURLRequest *)request;
+- (WK_NULLABLE WKNavigation *)loadRequest:(NSURLRequest *)request;
 
 /*! @abstract Navigates to the requested file URL on the filesystem.
  @param URL The file URL to which to navigate.
@@ -96,14 +98,14 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
  If readAccessURL references a directory, files inside that file may be loaded by WebKit.
  @result A new navigation for the given file URL.
  */
-- (WKNavigation *)loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+- (WK_NULLABLE WKNavigation *)loadFileURL:(NSURL *)URL allowingReadAccessToURL:(NSURL *)readAccessURL WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
 
 /*! @abstract Sets the webpage contents and base URL.
  @param string The string to use as the contents of the webpage.
  @param baseURL A URL that is used to resolve relative URLs within the document.
  @result A new navigation.
  */
-- (WKNavigation *)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;
+- (WK_NULLABLE WKNavigation *)loadHTMLString:(NSString *)string baseURL:(WK_NULLABLE NSURL *)baseURL;
 
 /*! @abstract Sets the webpage contents and base URL.
  @param data The data to use as the contents of the webpage.
@@ -112,7 +114,7 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
  @param baseURL A URL that is used to resolve relative URLs within the document.
  @result A new navigation.
  */
-- (WKNavigation *)loadData:(NSData *)data MIMEType:(NSString *)MIMEType characterEncodingName:(NSString *)characterEncodingName baseURL:(NSURL *)baseURL WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+- (WK_NULLABLE WKNavigation *)loadData:(NSData *)data MIMEType:(NSString *)MIMEType characterEncodingName:(NSString *)characterEncodingName baseURL:(NSURL *)baseURL WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
 
 /*! @abstract Navigates to an item from the back-forward list and sets it
  as the current item.
@@ -122,13 +124,13 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
  the current item or is not part of the web view's back-forward list.
  @seealso backForwardList
  */
-- (WKNavigation *)goToBackForwardListItem:(WKBackForwardListItem *)item;
+- (WK_NULLABLE WKNavigation *)goToBackForwardListItem:(WKBackForwardListItem *)item;
 
 /*! @abstract The page title.
  @discussion @link WKWebView @/link is key-value observing (KVO) compliant
  for this property.
  */
-@property (nonatomic, readonly, copy) NSString *title;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly, copy) NSString *title;
 
 /*! @abstract The active URL.
  @discussion This is the URL that should be reflected in the user
@@ -136,7 +138,7 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
  @link WKWebView @/link is key-value observing (KVO) compliant for this
  property.
  */
-@property (nonatomic, readonly, copy) NSURL *URL;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly, copy) NSURL *URL;
 
 /*! @abstract A Boolean value indicating whether the view is currently
  loading content.
@@ -182,24 +184,24 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
  @result A new navigation to the requested item, or nil if there is no back
  item in the back-forward list.
  */
-- (WKNavigation *)goBack;
+- (WK_NULLABLE WKNavigation *)goBack;
 
 /*! @abstract Navigates to the forward item in the back-forward list.
  @result A new navigation to the requested item, or nil if there is no
  forward item in the back-forward list.
  */
-- (WKNavigation *)goForward;
+- (WK_NULLABLE WKNavigation *)goForward;
 
 /*! @abstract Reloads the current page.
  @result A new navigation representing the reload.
  */
-- (WKNavigation *)reload;
+- (WK_NULLABLE WKNavigation *)reload;
 
 /*! @abstract Reloads the current page, performing end-to-end revalidation
  using cache-validating conditionals if possible.
  @result A new navigation representing the reload.
  */
-- (WKNavigation *)reloadFromOrigin;
+- (WK_NULLABLE WKNavigation *)reloadFromOrigin;
 
 /*! @abstract Stops loading all resources on the current page.
  */
@@ -210,7 +212,7 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
  @param completionHandler A block to invoke when script evaluation completes or fails.
  @discussion The completionHandler is passed the result of the script evaluation or an error.
 */
-- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^)(id, NSError *))completionHandler;
+- (void)evaluateJavaScript:(NSString *)javaScriptString completionHandler:(void (^ WK_NULLABLE_SPECIFIER)(WK_NULLABLE_SPECIFIER id, WK_NULLABLE_SPECIFIER NSError *))completionHandler;
 
 /*! @abstract A Boolean value indicating whether horizontal swipe gestures
  will trigger back-forward list navigations.
@@ -220,7 +222,7 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 /*! @abstract The custom user agent string or nil if no custom user agent string has been set.
 */
-@property (nonatomic, copy) NSString *customUserAgent WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+@property (WK_NULLABLE_PROPERTY nonatomic, copy) NSString *customUserAgent WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
 
 #if TARGET_OS_IPHONE
 /*! @abstract The scroll view associated with the web view.
@@ -261,33 +263,35 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
  back-forward list.
  @param sender The object that sent this message.
  */
-- (IBAction)goBack:(id)sender;
+- (IBAction)goBack:(WK_NULLABLE id)sender;
 
 /*! @abstract Action method that navigates to the forward item in the
  back-forward list.
  @param sender The object that sent this message.
  */
-- (IBAction)goForward:(id)sender;
+- (IBAction)goForward:(WK_NULLABLE id)sender;
 
 /*! @abstract Action method that reloads the current page.
  @param sender The object that sent this message.
  */
-- (IBAction)reload:(id)sender;
+- (IBAction)reload:(WK_NULLABLE id)sender;
 
 /*! @abstract Action method that reloads the current page, performing
  end-to-end revalidation using cache-validating conditionals if possible.
  @param sender The object that sent this message.
  */
-- (IBAction)reloadFromOrigin:(id)sender;
+- (IBAction)reloadFromOrigin:(WK_NULLABLE id)sender;
 
 /*! @abstract Action method that stops loading all resources on the current
  page.
  @param sender The object that sent this message.
  */
-- (IBAction)stopLoading:(id)sender;
+- (IBAction)stopLoading:(WK_NULLABLE id)sender;
 
 @end
 
 #endif
 
+WK_ASSUME_NONNULL_END
+
 #endif
index 067de7715862e8846590f5226c154506e8cf3ec7..848c222249278ace20d91738202ceefbc1ddd5de 100644 (file)
@@ -29,6 +29,8 @@
 
 #import <Foundation/Foundation.h>
 
+WK_ASSUME_NONNULL_BEGIN
+
 @class WKPreferences;
 @class WKProcessPool;
 @class WKUserContentController;
@@ -79,7 +81,7 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 /*! @abstract The name of the application as used in the user agent string.
 */
-@property (nonatomic, copy) NSString *applicationNameForUserAgent WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+@property (WK_NULLABLE_PROPERTY nonatomic, copy) NSString *applicationNameForUserAgent WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
 
 #if TARGET_OS_IPHONE
 /*! @abstract A Boolean value indicating whether HTML5 videos play inline
@@ -110,4 +112,6 @@ WK_CLASS_AVAILABLE(10_10, 8_0)
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index 890e5420b5dc7a4f4d06cf38cf2323988b9c6d44..d9cc05b833d1a9e9946a9d96e0927f03fdf15d40 100644 (file)
 
 /*! WKWindowFeatures specifies optional attributes for the containing window when a new WKWebView is requested.
  */
+WK_ASSUME_NONNULL_BEGIN
+
 WK_CLASS_AVAILABLE(10_10, 8_0)
 @interface WKWindowFeatures : NSObject
 
 /*! @abstract BOOL. Whether the menu bar should be visible. nil if menu bar visibility was not specified.
  */
-@property (nonatomic, readonly) NSNumber *menuBarVisibility;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly) NSNumber *menuBarVisibility;
 
 /*! @abstract BOOL. Whether the status bar should be visible. nil if status bar visibility was not specified.
  */
-@property (nonatomic, readonly) NSNumber *statusBarVisibility;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly) NSNumber *statusBarVisibility;
 
 /*! @abstract BOOL. Whether toolbars should be visible. nil if toolbar visibility was not specified.
  */
-@property (nonatomic, readonly) NSNumber *toolbarsVisibility;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly) NSNumber *toolbarsVisibility;
 
 /*! @abstract BOOL. Whether the containing window should be resizable. nil if resizability was not specified.
  */
-@property (nonatomic, readonly) NSNumber *allowsResizing;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly) NSNumber *allowsResizing;
 
 /*! @abstract CGFloat. The x coordinate of the containing window. nil if the x coordinate was not specified.
  */
-@property (nonatomic, readonly) NSNumber *x;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly) NSNumber *x;
 
 /*! @abstract CGFloat. The y coordinate of the containing window. nil if the y coordinate was not specified.
  */
-@property (nonatomic, readonly) NSNumber *y;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly) NSNumber *y;
 
 /*! @abstract CGFloat. The width coordinate of the containing window. nil if the width was not specified.
  */
-@property (nonatomic, readonly) NSNumber *width;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly) NSNumber *width;
 
 /*! @abstract CGFloat. The height coordinate of the containing window. nil if the height was not specified.
  */
-@property (nonatomic, readonly) NSNumber *height;
+@property (WK_NULLABLE_PROPERTY nonatomic, readonly) NSNumber *height;
 
 @end
 
+WK_ASSUME_NONNULL_END
+
 #endif
index f29ffdd55647e0e96db173471ef782a7153ce1cd..b1e52fe85499931be84a7d1c8bfe986c37f2518a 100755 (executable)
@@ -45,7 +45,7 @@ function rewrite_headers () {
 
     for HEADER_PATH in $1/*.h; do
         if [[ $HEADER_PATH -nt $TIMESTAMP_PATH ]]; then
-            sed -e s/WK_MAC_TBA/${OSX_VERSION}/ -e s/WK_IOS_TBA/${IOS_VERSION}/ -e s/^WK_CLASS_AVAILABLE/NS_CLASS_AVAILABLE/ -e s/WK_AVAILABLE/NS_AVAILABLE/ -e s/WK_DEPRECATED/NS_DEPRECATED/ -e s/WK_DESIGNATED_INITIALIZER/NS_DESIGNATED_INITIALIZER/ -e s/WK_ENUM_AVAILABLE/NS_ENUM_AVAILABLE/ -e s/WK_UNAVAILABLE/NS_UNAVAILABLE/ -e s/WK_ASSUME_NONNULL_BEGIN/NS_ASSUME_NONNULL_BEGIN/ -e s/WK_ASSUME_NONNULL_END/NS_ASSUME_NONNULL_END/ -e s/WK_NULLABLE_PROPERTY/nullable,/ -e s/WK_NULLABLE/nullable/ -e s/WK_NULL_UNSPECIFIED/null_unspecified/ ${HEADER_PATH} > ${TARGET_TEMP_DIR}/${HEADER_PATH##*/} || exit $_;
+            sed -e s/WK_MAC_TBA/${OSX_VERSION}/ -e s/WK_IOS_TBA/${IOS_VERSION}/ -e s/^WK_CLASS_AVAILABLE/NS_CLASS_AVAILABLE/ -e s/WK_AVAILABLE/NS_AVAILABLE/ -e s/WK_DEPRECATED/NS_DEPRECATED/ -e s/WK_DESIGNATED_INITIALIZER/NS_DESIGNATED_INITIALIZER/ -e s/WK_ENUM_AVAILABLE/NS_ENUM_AVAILABLE/ -e s/WK_UNAVAILABLE/NS_UNAVAILABLE/ -e s/WK_ASSUME_NONNULL_BEGIN/NS_ASSUME_NONNULL_BEGIN/ -e s/WK_ASSUME_NONNULL_END/NS_ASSUME_NONNULL_END/ -e s/WK_NULLABLE_PROPERTY/nullable,/ -e s/WK_NULLABLE_SPECIFIER/__nullable/g -e s/WK_NULLABLE/nullable/g -e s/WK_NULL_UNSPECIFIED/null_unspecified/ ${HEADER_PATH} > ${TARGET_TEMP_DIR}/${HEADER_PATH##*/} || exit $_;
             mv ${TARGET_TEMP_DIR}/${HEADER_PATH##*/} $HEADER_PATH;
         fi
     done