Index: Source/web/ServiceWorkerGlobalScopeProxy.cpp |
diff --git a/Source/web/ServiceWorkerGlobalScopeProxy.cpp b/Source/web/ServiceWorkerGlobalScopeProxy.cpp |
index 6b3513a7d5fa1fc44bff93e0b01799d74c2069b7..df99b45eac75a4b296ae44330adc2b6cddc64155 100644 |
--- a/Source/web/ServiceWorkerGlobalScopeProxy.cpp |
+++ b/Source/web/ServiceWorkerGlobalScopeProxy.cpp |
@@ -51,7 +51,9 @@ |
#include "modules/push_messaging/PushMessageData.h" |
#include "modules/serviceworkers/ExtendableEvent.h" |
#include "modules/serviceworkers/FetchEvent.h" |
+#include "modules/serviceworkers/ServiceWorkerClient.h" |
#include "modules/serviceworkers/ServiceWorkerGlobalScope.h" |
+#include "modules/serviceworkers/ServiceWorkerWindowClient.h" |
#include "modules/serviceworkers/WaitUntilObserver.h" |
#include "platform/RuntimeEnabledFeatures.h" |
#include "public/platform/WebCrossOriginServiceWorkerClient.h" |
@@ -103,7 +105,13 @@ void ServiceWorkerGlobalScopeProxy::dispatchFetchEvent(int eventID, const WebSer |
request->headers()->setGuard(Headers::ImmutableGuard); |
FetchEventInit eventInit; |
eventInit.setRequest(request); |
- eventInit.setIsReload(webRequest.isReload()); |
+ if (webRequest.client().clientType == WebServiceWorkerClientTypeWindow) { |
+ eventInit.setClient(ServiceWorkerWindowClient::create(webRequest.client())); |
+ eventInit.setIsReload(webRequest.isReload()); |
+ } else { |
+ eventInit.setClient(ServiceWorkerClient::create(webRequest.client())); |
+ eventInit.setIsReload(false); |
jsbell
2015/05/05 17:45:42
Is this necessary, or will it default to false?
Paritosh Kumar
2015/05/06 11:42:36
Yes, default will be false only. Not necessary. Th
|
+ } |
RefPtrWillBeRawPtr<FetchEvent> fetchEvent(FetchEvent::create(EventTypeNames::fetch, eventInit, observer)); |
defaultPrevented = !m_workerGlobalScope->dispatchEvent(fetchEvent.release()); |
observer->didDispatchEvent(defaultPrevented); |