Index: Source/web/ServiceWorkerGlobalScopeClientImpl.cpp |
diff --git a/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp b/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp |
index ab88fe3e175ff4e6484243afe5449a5985baf42a..a08df446ac810f6955a6b7667f8912a069e18d89 100644 |
--- a/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp |
+++ b/Source/web/ServiceWorkerGlobalScopeClientImpl.cpp |
@@ -74,13 +74,20 @@ |
m_client.didHandleInstallEvent(installEventID, result); |
} |
-void ServiceWorkerGlobalScopeClientImpl::didHandleFetchEvent(int fetchEventID) |
+void ServiceWorkerGlobalScopeClientImpl::didHandleFetchEvent(int fetchEventID, Response* response) |
{ |
- m_client.didHandleFetchEvent(fetchEventID); |
-} |
+ if (!response) { |
+ m_client.didHandleFetchEvent(fetchEventID); |
+ return; |
+ } |
-void ServiceWorkerGlobalScopeClientImpl::didHandleFetchEvent(int fetchEventID, const WebServiceWorkerResponse& webResponse) |
-{ |
+ WebServiceWorkerResponse webResponse; |
+ response->populateWebServiceWorkerResponse(webResponse); |
+ if (webResponse.status() == 0) { |
+ // The status code is 0 means a network error. |
+ m_client.didHandleFetchEvent(fetchEventID); |
+ return; |
+ } |
m_client.didHandleFetchEvent(fetchEventID, webResponse); |
} |