Title: [235440] trunk
Revision
235440
Author
sihui_...@apple.com
Date
2018-08-28 14:26:22 -0700 (Tue, 28 Aug 2018)

Log Message

Add error information to help debug test failure in WKNavigation.ProcessCrashDuringCallback
https://bugs.webkit.org/show_bug.cgi?id=189037

Reviewed by Chris Dumez.

Source/WebKit:

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _getMainResourceDataWithCompletionHandler:]):
(-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
(TEST):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (235439 => 235440)


--- trunk/Source/WebKit/ChangeLog	2018-08-28 21:02:34 UTC (rev 235439)
+++ trunk/Source/WebKit/ChangeLog	2018-08-28 21:26:22 UTC (rev 235440)
@@ -1,3 +1,15 @@
+2018-08-28  Sihui Liu  <sihui_...@apple.com>
+
+        Add error information to help debug test failure in WKNavigation.ProcessCrashDuringCallback
+        https://bugs.webkit.org/show_bug.cgi?id=189037
+
+        Reviewed by Chris Dumez.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _getMainResourceDataWithCompletionHandler:]):
+        (-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
+        (-[WKWebView _getContentsAsStringWithCompletionHandler:]):
+
 2018-08-28  Basuke Suzuki  <basuke.suz...@sony.com>
 
         [Curl] Fix issue that extra cookie is added when redirect happens.

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm (235439 => 235440)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2018-08-28 21:02:34 UTC (rev 235439)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm	2018-08-28 21:26:22 UTC (rev 235440)
@@ -4573,8 +4573,7 @@
         void (^completionHandlerBlock)(NSData *, NSError *) = (void (^)(NSData *, NSError *))handler.get();
         if (error != WebKit::CallbackBase::Error::None) {
             // FIXME: Pipe a proper error in from the WebPageProxy.
-            RetainPtr<NSError> error = adoptNS([[NSError alloc] init]);
-            completionHandlerBlock(nil, error.get());
+            completionHandlerBlock(nil, [NSError errorWithDomain:WKErrorDomain code:static_cast<int>(error) userInfo:nil]);
         } else
             completionHandlerBlock(wrapper(*data), nil);
     });
@@ -4588,8 +4587,7 @@
         void (^completionHandlerBlock)(NSData *, NSError *) = (void (^)(NSData *, NSError *))handler.get();
         if (error != WebKit::CallbackBase::Error::None) {
             // FIXME: Pipe a proper error in from the WebPageProxy.
-            RetainPtr<NSError> error = adoptNS([[NSError alloc] init]);
-            completionHandlerBlock(nil, error.get());
+            completionHandlerBlock(nil, [NSError errorWithDomain:WKErrorDomain code:static_cast<int>(error) userInfo:nil]);
         } else
             completionHandlerBlock(wrapper(*data), nil);
     });
@@ -4602,8 +4600,7 @@
     _page->getContentsAsString([handler](String string, WebKit::CallbackBase::Error error) {
         if (error != WebKit::CallbackBase::Error::None) {
             // FIXME: Pipe a proper error in from the WebPageProxy.
-            RetainPtr<NSError> error = adoptNS([[NSError alloc] init]);
-            handler(nil, error.get());
+            handler(nil, [NSError errorWithDomain:WKErrorDomain code:static_cast<int>(error) userInfo:nil]);
         } else
             handler(string, nil);
     });

Modified: trunk/Tools/ChangeLog (235439 => 235440)


--- trunk/Tools/ChangeLog	2018-08-28 21:02:34 UTC (rev 235439)
+++ trunk/Tools/ChangeLog	2018-08-28 21:26:22 UTC (rev 235440)
@@ -1,3 +1,13 @@
+2018-08-28  Sihui Liu  <sihui_...@apple.com>
+
+        Add error information to help debug test failure in WKNavigation.ProcessCrashDuringCallback
+        https://bugs.webkit.org/show_bug.cgi?id=189037
+
+        Reviewed by Chris Dumez.
+
+        * TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:
+        (TEST):
+
 2018-08-28  David Kilzer  <ddkil...@apple.com>
 
         Fix incorrect use of `sourceTree = "<group>";` for built products and frameworks in Xcode projects

Modified: trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm (235439 => 235440)


--- trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm	2018-08-28 21:02:34 UTC (rev 235439)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm	2018-08-28 21:26:22 UTC (rev 235440)
@@ -229,19 +229,22 @@
 
     __block WKWebView *view = webView.get();
     [webView _getContentsAsStringWithCompletionHandler:^(NSString *contents, NSError *error) {
-        EXPECT_TRUE(!!error);
+        if (!!error)
+            EXPECT_EQ(WKErrorWebContentProcessTerminated, error.code);
         ++callbackCount;
         if (callbackCount == 6)
             calledAllCallbacks = true;
     }];
     [webView _getContentsAsStringWithCompletionHandler:^(NSString *contents, NSError *error) {
-        EXPECT_TRUE(!!error);
+        if (!!error)
+            EXPECT_EQ(WKErrorWebContentProcessTerminated, error.code);
         ++callbackCount;
         if (callbackCount == 6)
             calledAllCallbacks = true;
     }];
     [webView _getContentsAsStringWithCompletionHandler:^(NSString *contents, NSError *error) {
-        EXPECT_TRUE(!!error);
+        if (!!error)
+            EXPECT_EQ(WKErrorWebContentProcessTerminated, error.code);
         [view _close]; // Calling _close will also invalidate all callbacks.
         ++callbackCount;
         if (callbackCount == 6)
@@ -248,19 +251,22 @@
             calledAllCallbacks = true;
     }];
     [webView _getContentsAsStringWithCompletionHandler:^(NSString *contents, NSError *error) {
-        EXPECT_TRUE(!!error);
+        if (!!error)
+            EXPECT_EQ(WKErrorWebContentProcessTerminated, error.code);
         ++callbackCount;
         if (callbackCount == 6)
             calledAllCallbacks = true;
     }];
     [webView _getContentsAsStringWithCompletionHandler:^(NSString *contents, NSError *error) {
-        EXPECT_TRUE(!!error);
+        if (!!error)
+            EXPECT_EQ(WKErrorWebContentProcessTerminated, error.code);
         ++callbackCount;
         if (callbackCount == 6)
             calledAllCallbacks = true;
     }];
     [webView _getContentsAsStringWithCompletionHandler:^(NSString *contents, NSError *error) {
-        EXPECT_TRUE(!!error);
+        if (!!error)
+            EXPECT_EQ(WKErrorWebContentProcessTerminated, error.code);
         ++callbackCount;
         if (callbackCount == 6)
             calledAllCallbacks = true;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to