Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(758)

Side by Side Diff: third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp

Issue 2416863002: Use fetch_event_id (fetchEventID in blink) for FetchEvent (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 m_workerGlobalScope->getExecutionContext(), wrapUnique(handle.release())); 143 m_workerGlobalScope->getExecutionContext(), wrapUnique(handle.release()));
144 WaitUntilObserver* observer = WaitUntilObserver::create( 144 WaitUntilObserver* observer = WaitUntilObserver::create(
145 workerGlobalScope(), WaitUntilObserver::Message, eventID); 145 workerGlobalScope(), WaitUntilObserver::Message, eventID);
146 146
147 Event* event = 147 Event* event =
148 ExtendableMessageEvent::create(value, origin, ports, source, observer); 148 ExtendableMessageEvent::create(value, origin, ports, source, observer);
149 workerGlobalScope()->dispatchExtendableEvent(event, observer); 149 workerGlobalScope()->dispatchExtendableEvent(event, observer);
150 } 150 }
151 151
152 void ServiceWorkerGlobalScopeProxy::dispatchFetchEvent( 152 void ServiceWorkerGlobalScopeProxy::dispatchFetchEvent(
153 int responseID, 153 int fetchEventID,
154 int eventFinishID,
155 const WebServiceWorkerRequest& webRequest) { 154 const WebServiceWorkerRequest& webRequest) {
156 ScriptState::Scope scope( 155 ScriptState::Scope scope(
157 workerGlobalScope()->scriptController()->getScriptState()); 156 workerGlobalScope()->scriptController()->getScriptState());
158 WaitUntilObserver* waitUntilObserver = WaitUntilObserver::create( 157 WaitUntilObserver* waitUntilObserver = WaitUntilObserver::create(
159 workerGlobalScope(), WaitUntilObserver::Fetch, eventFinishID); 158 workerGlobalScope(), WaitUntilObserver::Fetch, fetchEventID);
160 RespondWithObserver* respondWithObserver = RespondWithObserver::create( 159 RespondWithObserver* respondWithObserver = RespondWithObserver::create(
161 workerGlobalScope(), responseID, webRequest.url(), webRequest.mode(), 160 workerGlobalScope(), fetchEventID, webRequest.url(), webRequest.mode(),
162 webRequest.frameType(), webRequest.requestContext(), waitUntilObserver); 161 webRequest.frameType(), webRequest.requestContext(), waitUntilObserver);
163 Request* request = Request::create( 162 Request* request = Request::create(
164 workerGlobalScope()->scriptController()->getScriptState(), webRequest); 163 workerGlobalScope()->scriptController()->getScriptState(), webRequest);
165 request->getHeaders()->setGuard(Headers::ImmutableGuard); 164 request->getHeaders()->setGuard(Headers::ImmutableGuard);
166 FetchEventInit eventInit; 165 FetchEventInit eventInit;
167 eventInit.setCancelable(true); 166 eventInit.setCancelable(true);
168 eventInit.setRequest(request); 167 eventInit.setRequest(request);
169 eventInit.setClientId( 168 eventInit.setClientId(
170 webRequest.isMainResourceLoad() ? WebString() : webRequest.clientId()); 169 webRequest.isMainResourceLoad() ? WebString() : webRequest.clientId());
171 eventInit.setIsReload(webRequest.isReload()); 170 eventInit.setIsReload(webRequest.isReload());
172 FetchEvent* fetchEvent = FetchEvent::create( 171 FetchEvent* fetchEvent = FetchEvent::create(
173 workerGlobalScope()->scriptController()->getScriptState(), 172 workerGlobalScope()->scriptController()->getScriptState(),
174 EventTypeNames::fetch, eventInit, respondWithObserver, waitUntilObserver); 173 EventTypeNames::fetch, eventInit, respondWithObserver, waitUntilObserver);
175 waitUntilObserver->willDispatchEvent(); 174 waitUntilObserver->willDispatchEvent();
176 respondWithObserver->willDispatchEvent(); 175 respondWithObserver->willDispatchEvent();
177 DispatchEventResult dispatchResult = 176 DispatchEventResult dispatchResult =
178 workerGlobalScope()->dispatchEvent(fetchEvent); 177 workerGlobalScope()->dispatchEvent(fetchEvent);
179 respondWithObserver->didDispatchEvent(dispatchResult); 178 respondWithObserver->didDispatchEvent(dispatchResult);
180 // false is okay because waitUntil for fetch event doesn't care about the 179 // false is okay because waitUntil for fetch event doesn't care about the
181 // promise rejection or an uncaught runtime script error. 180 // promise rejection or an uncaught runtime script error.
182 waitUntilObserver->didDispatchEvent(false /* errorOccurred */); 181 waitUntilObserver->didDispatchEvent(false /* errorOccurred */);
183 } 182 }
184 183
185 void ServiceWorkerGlobalScopeProxy::dispatchForeignFetchEvent( 184 void ServiceWorkerGlobalScopeProxy::dispatchForeignFetchEvent(
186 int responseID, 185 int fetchEventID,
187 int eventFinishID,
188 const WebServiceWorkerRequest& webRequest) { 186 const WebServiceWorkerRequest& webRequest) {
189 if (!OriginTrials::foreignFetchEnabled(workerGlobalScope())) { 187 if (!OriginTrials::foreignFetchEnabled(workerGlobalScope())) {
190 // If origin trial tokens have expired, or are otherwise no longer valid 188 // If origin trial tokens have expired, or are otherwise no longer valid
191 // no events should be dispatched. We can check it in the browser process if 189 // no events should be dispatched. We can check it in the browser process if
192 // the service worker is installed after M56. But if the service worker was 190 // the service worker is installed after M56. But if the service worker was
193 // installed in old version of Chrome (< M56) we have to check it in the 191 // installed in old version of Chrome (< M56) we have to check it in the
194 // renderer process (here). 192 // renderer process (here).
195 ServiceWorkerGlobalScopeClient::from(workerGlobalScope()) 193 ServiceWorkerGlobalScopeClient::from(workerGlobalScope())
196 ->respondToFetchEvent(responseID, WTF::currentTime()); 194 ->respondToFetchEvent(fetchEventID, WTF::currentTime());
197 ServiceWorkerGlobalScopeClient::from(workerGlobalScope()) 195 ServiceWorkerGlobalScopeClient::from(workerGlobalScope())
198 ->didHandleFetchEvent(eventFinishID, 196 ->didHandleFetchEvent(fetchEventID,
199 WebServiceWorkerEventResultCompleted, 197 WebServiceWorkerEventResultCompleted,
200 WTF::currentTime()); 198 WTF::currentTime());
201 return; 199 return;
202 } 200 }
203 201
204 ScriptState::Scope scope( 202 ScriptState::Scope scope(
205 workerGlobalScope()->scriptController()->getScriptState()); 203 workerGlobalScope()->scriptController()->getScriptState());
206 RefPtr<SecurityOrigin> origin = 204 RefPtr<SecurityOrigin> origin =
207 SecurityOrigin::create(webRequest.referrerUrl()); 205 SecurityOrigin::create(webRequest.referrerUrl());
208 WaitUntilObserver* waitUntilObserver = WaitUntilObserver::create( 206 WaitUntilObserver* waitUntilObserver = WaitUntilObserver::create(
209 workerGlobalScope(), WaitUntilObserver::Fetch, eventFinishID); 207 workerGlobalScope(), WaitUntilObserver::Fetch, fetchEventID);
210 ForeignFetchRespondWithObserver* respondWithObserver = 208 ForeignFetchRespondWithObserver* respondWithObserver =
211 ForeignFetchRespondWithObserver::create( 209 ForeignFetchRespondWithObserver::create(
212 workerGlobalScope(), responseID, webRequest.url(), webRequest.mode(), 210 workerGlobalScope(), fetchEventID, webRequest.url(),
213 webRequest.frameType(), webRequest.requestContext(), origin, 211 webRequest.mode(), webRequest.frameType(),
214 waitUntilObserver); 212 webRequest.requestContext(), origin, waitUntilObserver);
215 Request* request = Request::create( 213 Request* request = Request::create(
216 workerGlobalScope()->scriptController()->getScriptState(), webRequest); 214 workerGlobalScope()->scriptController()->getScriptState(), webRequest);
217 request->getHeaders()->setGuard(Headers::ImmutableGuard); 215 request->getHeaders()->setGuard(Headers::ImmutableGuard);
218 ForeignFetchEventInit eventInit; 216 ForeignFetchEventInit eventInit;
219 eventInit.setCancelable(true); 217 eventInit.setCancelable(true);
220 eventInit.setRequest(request); 218 eventInit.setRequest(request);
221 eventInit.setOrigin(origin->toString()); 219 eventInit.setOrigin(origin->toString());
222 ForeignFetchEvent* fetchEvent = ForeignFetchEvent::create( 220 ForeignFetchEvent* fetchEvent = ForeignFetchEvent::create(
223 workerGlobalScope()->scriptController()->getScriptState(), 221 workerGlobalScope()->scriptController()->getScriptState(),
224 EventTypeNames::foreignfetch, eventInit, respondWithObserver, 222 EventTypeNames::foreignfetch, eventInit, respondWithObserver,
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 return *m_document; 406 return *m_document;
409 } 407 }
410 408
411 ServiceWorkerGlobalScope* ServiceWorkerGlobalScopeProxy::workerGlobalScope() 409 ServiceWorkerGlobalScope* ServiceWorkerGlobalScopeProxy::workerGlobalScope()
412 const { 410 const {
413 DCHECK(m_workerGlobalScope); 411 DCHECK(m_workerGlobalScope);
414 return m_workerGlobalScope; 412 return m_workerGlobalScope;
415 } 413 }
416 414
417 } // namespace blink 415 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698