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 76ab265..b8eee8c 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 0f4535b..5a04f5c 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 6cd8d27..204413c 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 15ddfac..ed11be3 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 8cbbbe3..1ccd901 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 b7dd029..6e5cdd6 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 e367fb3..75e147f 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 1871ebc..92d586e 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 2411f0f..9d24bc5 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 4c19f6b..9b0cca9 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 ab6303b..f049957 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 49b9dad..3a480e1 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 015f59c..00832fd 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 067de77..848c222 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 890e542..d9cc05b 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 f29ffdd..b1e52fe 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