Index: third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp |
diff --git a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp |
index 3628ab92410eb639050a23dbb0fca31c228d1f06..6cc85eee099460532e5846ad35649af7a640a5c3 100644 |
--- a/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp |
+++ b/third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp |
@@ -51,6 +51,7 @@ |
#include "modules/serviceworkers/ExtendableEvent.h" |
#include "modules/serviceworkers/ExtendableMessageEvent.h" |
#include "modules/serviceworkers/FetchEvent.h" |
+#include "modules/serviceworkers/ForeignFetchEvent.h" |
#include "modules/serviceworkers/InstallEvent.h" |
#include "modules/serviceworkers/ServiceWorkerClient.h" |
#include "modules/serviceworkers/ServiceWorkerGlobalScope.h" |
@@ -138,12 +139,30 @@ void ServiceWorkerGlobalScopeProxy::dispatchExtendableMessageEvent(int eventID, |
void ServiceWorkerGlobalScopeProxy::dispatchFetchEvent(int eventID, const WebServiceWorkerRequest& webRequest) |
{ |
- dispatchFetchEventImpl(eventID, webRequest, EventTypeNames::fetch); |
+ RespondWithObserver* observer = RespondWithObserver::create(workerGlobalScope(), eventID, webRequest.url(), webRequest.mode(), webRequest.frameType(), webRequest.requestContext()); |
+ Request* request = Request::create(workerGlobalScope(), webRequest); |
+ request->getHeaders()->setGuard(Headers::ImmutableGuard); |
+ FetchEventInit eventInit; |
+ eventInit.setCancelable(true); |
+ eventInit.setRequest(request); |
+ eventInit.setClientId(webRequest.isMainResourceLoad() ? WebString() : webRequest.clientId()); |
+ eventInit.setIsReload(webRequest.isReload()); |
+ FetchEvent* fetchEvent = FetchEvent::create(EventTypeNames::fetch, eventInit, observer); |
+ DispatchEventResult dispatchResult = workerGlobalScope()->dispatchEvent(fetchEvent); |
+ observer->didDispatchEvent(dispatchResult); |
} |
void ServiceWorkerGlobalScopeProxy::dispatchForeignFetchEvent(int eventID, const WebServiceWorkerRequest& webRequest) |
{ |
- dispatchFetchEventImpl(eventID, webRequest, EventTypeNames::foreignfetch); |
+ ForeignFetchRespondWithObserver* observer = ForeignFetchRespondWithObserver::create(workerGlobalScope(), eventID, webRequest.url(), webRequest.mode(), webRequest.frameType(), webRequest.requestContext()); |
+ Request* request = Request::create(workerGlobalScope(), webRequest); |
+ request->getHeaders()->setGuard(Headers::ImmutableGuard); |
+ ForeignFetchEventInit eventInit; |
+ eventInit.setCancelable(true); |
+ eventInit.setRequest(request); |
+ ForeignFetchEvent* fetchEvent = ForeignFetchEvent::create(EventTypeNames::foreignfetch, eventInit, observer); |
+ DispatchEventResult dispatchResult = workerGlobalScope()->dispatchEvent(fetchEvent); |
+ observer->didDispatchEvent(dispatchResult); |
} |
void ServiceWorkerGlobalScopeProxy::dispatchGeofencingEvent(int eventID, WebGeofencingEventType eventType, const WebString& regionID, const WebCircularGeofencingRegion& region) |
@@ -295,19 +314,4 @@ ServiceWorkerGlobalScope* ServiceWorkerGlobalScopeProxy::workerGlobalScope() con |
return m_workerGlobalScope; |
} |
-void ServiceWorkerGlobalScopeProxy::dispatchFetchEventImpl(int eventID, const WebServiceWorkerRequest& webRequest, const AtomicString& eventTypeName) |
-{ |
- RespondWithObserver* observer = RespondWithObserver::create(workerGlobalScope(), eventID, webRequest.url(), webRequest.mode(), webRequest.frameType(), webRequest.requestContext()); |
- Request* request = Request::create(workerGlobalScope(), webRequest); |
- request->getHeaders()->setGuard(Headers::ImmutableGuard); |
- FetchEventInit eventInit; |
- eventInit.setCancelable(true); |
- eventInit.setRequest(request); |
- eventInit.setClientId(webRequest.isMainResourceLoad() ? WebString() : webRequest.clientId()); |
- eventInit.setIsReload(webRequest.isReload()); |
- RawPtr<FetchEvent> fetchEvent(FetchEvent::create(eventTypeName, eventInit, observer)); |
- DispatchEventResult dispatchResult = workerGlobalScope()->dispatchEvent(fetchEvent.release()); |
- observer->didDispatchEvent(dispatchResult); |
-} |
- |
} // namespace blink |