Title: [141026] trunk/Source/WebKit2
Revision
141026
Author
[email protected]
Date
2013-01-28 16:41:36 -0800 (Mon, 28 Jan 2013)

Log Message

WebKit2 should notify the client if the NetworkProcess crashes.
<rdar://problem/13090513> and https://bugs.webkit.org/show_bug.cgi?id=108126

Reviewed by Sam Weinig.

Add new client callback to the ContextClient:
* UIProcess/API/C/WKContext.h:
* UIProcess/WebContextClient.cpp:
(WebKit::WebContextClient::networkProcessDidCrash):
* UIProcess/WebContextClient.h:

Call out to the client when the NetworkProcess crashes:
* UIProcess/WebContext.cpp:
(WebKit::WebContext::networkProcessCrashed):
* UIProcess/WebContext.h:

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (141025 => 141026)


--- trunk/Source/WebKit2/ChangeLog	2013-01-29 00:18:29 UTC (rev 141025)
+++ trunk/Source/WebKit2/ChangeLog	2013-01-29 00:41:36 UTC (rev 141026)
@@ -1,3 +1,24 @@
+2013-01-28  Brady Eidson  <[email protected]>
+
+        WebKit2 should notify the client if the NetworkProcess crashes.
+        <rdar://problem/13090513> and https://bugs.webkit.org/show_bug.cgi?id=108126
+
+        Reviewed by Sam Weinig.
+
+        Add new client callback to the ContextClient:
+        * UIProcess/API/C/WKContext.h:
+        * UIProcess/WebContextClient.cpp:
+        (WebKit::WebContextClient::networkProcessDidCrash):
+        * UIProcess/WebContextClient.h:
+
+        Call out to the client when the NetworkProcess crashes:
+        * UIProcess/WebContext.cpp:
+        (WebKit::WebContext::networkProcessCrashed):
+        * UIProcess/WebContext.h:
+
+        * UIProcess/Network/NetworkProcessProxy.cpp:
+        (WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
+
 2013-01-28  Pratik Solanki  <[email protected]>
 
         PLATFORM(IOS) should come before __MAC_OS_X_VERSION_MIN_REQUIRED

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKContext.h (141025 => 141026)


--- trunk/Source/WebKit2/UIProcess/API/C/WKContext.h	2013-01-29 00:18:29 UTC (rev 141025)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKContext.h	2013-01-29 00:41:36 UTC (rev 141026)
@@ -41,11 +41,13 @@
 
 // Context Client
 typedef void (*WKContextPlugInAutoStartOriginHashesChangedCallback)(WKContextRef context, const void *clientInfo);
+typedef void (*WKContextNetworkProcessDidCrashCallback)(WKContextRef context, const void *clientInfo);
 
 struct WKContextClient {
     int                                                                 version;
     const void *                                                        clientInfo;
     WKContextPlugInAutoStartOriginHashesChangedCallback                 plugInAutoStartOriginHashesChanged;
+    WKContextNetworkProcessDidCrashCallback                             networkProcessDidCrash;
 };
 typedef struct WKContextClient WKContextClient;
 

Modified: trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp (141025 => 141026)


--- trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp	2013-01-29 00:18:29 UTC (rev 141025)
+++ trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp	2013-01-29 00:41:36 UTC (rev 141026)
@@ -105,7 +105,7 @@
     }
 
     // Tell the network process manager to forget about this network process proxy. This may cause us to be deleted.
-    m_webContext->removeNetworkProcessProxy(this);
+    m_webContext->networkProcessCrashed(this);
 }
 
 void NetworkProcessProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::MessageDecoder& decoder)

Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (141025 => 141026)


--- trunk/Source/WebKit2/UIProcess/WebContext.cpp	2013-01-29 00:18:29 UTC (rev 141025)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp	2013-01-29 00:41:36 UTC (rev 141026)
@@ -375,7 +375,7 @@
     m_networkProcess->send(Messages::NetworkProcess::InitializeNetworkProcess(parameters), 0);
 }
 
-void WebContext::removeNetworkProcessProxy(NetworkProcessProxy* networkProcessProxy)
+void WebContext::networkProcessCrashed(NetworkProcessProxy* networkProcessProxy)
 {
     ASSERT(m_networkProcess);
     ASSERT(networkProcessProxy == m_networkProcess.get());
@@ -386,6 +386,8 @@
         it->value->processDidClose(networkProcessProxy);
 
     m_networkProcess = nullptr;
+
+    m_client.networkProcessDidCrash(this);
 }
 
 void WebContext::getNetworkProcessConnection(PassRefPtr<Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply> reply)

Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (141025 => 141026)


--- trunk/Source/WebKit2/UIProcess/WebContext.h	2013-01-29 00:18:29 UTC (rev 141025)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h	2013-01-29 00:41:36 UTC (rev 141026)
@@ -264,7 +264,7 @@
 #if ENABLE(NETWORK_PROCESS)
     void ensureNetworkProcess();
     NetworkProcessProxy* networkProcess() { return m_networkProcess.get(); }
-    void removeNetworkProcessProxy(NetworkProcessProxy*);
+    void networkProcessCrashed(NetworkProcessProxy*);
 
     void getNetworkProcessConnection(PassRefPtr<Messages::WebProcessProxy::GetNetworkProcessConnection::DelayedReply>);
 #endif

Modified: trunk/Source/WebKit2/UIProcess/WebContextClient.cpp (141025 => 141026)


--- trunk/Source/WebKit2/UIProcess/WebContextClient.cpp	2013-01-29 00:18:29 UTC (rev 141025)
+++ trunk/Source/WebKit2/UIProcess/WebContextClient.cpp	2013-01-29 00:41:36 UTC (rev 141026)
@@ -38,4 +38,12 @@
     m_client.plugInAutoStartOriginHashesChanged(toAPI(context), m_client.clientInfo);
 }
 
+void WebContextClient::networkProcessDidCrash(WebContext* context)
+{
+    if (!m_client.networkProcessDidCrash)
+        return;
+
+    m_client.networkProcessDidCrash(toAPI(context), m_client.clientInfo);
+}
+
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/WebContextClient.h (141025 => 141026)


--- trunk/Source/WebKit2/UIProcess/WebContextClient.h	2013-01-29 00:18:29 UTC (rev 141025)
+++ trunk/Source/WebKit2/UIProcess/WebContextClient.h	2013-01-29 00:41:36 UTC (rev 141026)
@@ -36,6 +36,7 @@
 class WebContextClient : public APIClient<WKContextClient, kWKContextClientCurrentVersion> {
 public:
     void plugInAutoStartOriginHashesChanged(WebContext*);
+    void networkProcessDidCrash(WebContext*);
 };
 
 } // namespace WebKit
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to