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

Side by Side Diff: content/browser/service_worker/service_worker_fetch_dispatcher.cc

Issue 2399933003: Revert of Mojoify FetchEvent of Service Worker. (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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/service_worker/service_worker_fetch_dispatcher.h" 5 #include "content/browser/service_worker/service_worker_fetch_dispatcher.h"
6 6
7 #include <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "base/trace_event/trace_event.h" 12 #include "base/trace_event/trace_event.h"
13 #include "content/browser/service_worker/embedded_worker_status.h" 13 #include "content/browser/service_worker/embedded_worker_status.h"
14 #include "content/browser/service_worker/service_worker_version.h" 14 #include "content/browser/service_worker/service_worker_version.h"
15 #include "content/common/service_worker/fetch_event_dispatcher.mojom.h"
16 #include "content/common/service_worker/service_worker_messages.h" 15 #include "content/common/service_worker/service_worker_messages.h"
17 #include "content/common/service_worker/service_worker_status_code.h"
18 #include "content/common/service_worker/service_worker_utils.h" 16 #include "content/common/service_worker/service_worker_utils.h"
19 #include "net/log/net_log.h" 17 #include "net/log/net_log.h"
20 #include "net/log/net_log_capture_mode.h" 18 #include "net/log/net_log_capture_mode.h"
21 19
22 #include "net/log/net_log_event_type.h" 20 #include "net/log/net_log_event_type.h"
23 21
24 namespace content { 22 namespace content {
25 23
26 namespace { 24 namespace {
27 25
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 base::Bind(&NetLogServiceWorkerStatusCallback, status)); 67 base::Bind(&NetLogServiceWorkerStatusCallback, status));
70 } 68 }
71 69
72 ServiceWorkerMetrics::EventType FetchTypeToWaitUntilEventType( 70 ServiceWorkerMetrics::EventType FetchTypeToWaitUntilEventType(
73 ServiceWorkerFetchType type) { 71 ServiceWorkerFetchType type) {
74 if (type == ServiceWorkerFetchType::FOREIGN_FETCH) 72 if (type == ServiceWorkerFetchType::FOREIGN_FETCH)
75 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH_WAITUNTIL; 73 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH_WAITUNTIL;
76 return ServiceWorkerMetrics::EventType::FETCH_WAITUNTIL; 74 return ServiceWorkerMetrics::EventType::FETCH_WAITUNTIL;
77 } 75 }
78 76
79 void OnFetchEventFinished(ServiceWorkerVersion* version,
80 int event_finish_id,
81 ServiceWorkerStatusCode status,
82 base::Time dispatch_event_time) {
83 version->FinishRequest(event_finish_id, status != SERVICE_WORKER_ERROR_ABORT,
84 dispatch_event_time);
85 }
86
87 } // namespace 77 } // namespace
88 78
89 // Helper to receive the fetch event response even if 79 // Helper to receive the fetch event response even if
90 // ServiceWorkerFetchDispatcher has been destroyed. 80 // ServiceWorkerFetchDispatcher has been destroyed.
91 class ServiceWorkerFetchDispatcher::ResponseCallback { 81 class ServiceWorkerFetchDispatcher::ResponseCallback {
92 public: 82 public:
93 ResponseCallback(base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher, 83 ResponseCallback(base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher,
94 ServiceWorkerVersion* version) 84 ServiceWorkerVersion* version)
95 : fetch_dispatcher_(fetch_dispatcher), version_(version) {} 85 : fetch_dispatcher_(fetch_dispatcher), version_(version) {}
96 86
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 int event_finish_id = version_->StartRequest( 204 int event_finish_id = version_->StartRequest(
215 FetchTypeToWaitUntilEventType(request_->fetch_type), 205 FetchTypeToWaitUntilEventType(request_->fetch_type),
216 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback)); 206 base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
217 207
218 ResponseCallback* response_callback = 208 ResponseCallback* response_callback =
219 new ResponseCallback(weak_factory_.GetWeakPtr(), version_.get()); 209 new ResponseCallback(weak_factory_.GetWeakPtr(), version_.get());
220 version_->RegisterRequestCallback<ServiceWorkerHostMsg_FetchEventResponse>( 210 version_->RegisterRequestCallback<ServiceWorkerHostMsg_FetchEventResponse>(
221 response_id, 211 response_id,
222 base::Bind(&ServiceWorkerFetchDispatcher::ResponseCallback::Run, 212 base::Bind(&ServiceWorkerFetchDispatcher::ResponseCallback::Run,
223 base::Owned(response_callback))); 213 base::Owned(response_callback)));
224 214 version_->RegisterSimpleRequest<ServiceWorkerHostMsg_FetchEventFinished>(
225 base::WeakPtr<mojom::FetchEventDispatcher> dispatcher = 215 event_finish_id);
226 version_->GetMojoServiceForRequest<mojom::FetchEventDispatcher>( 216 version_->DispatchEvent({response_id, event_finish_id},
227 event_finish_id); 217 ServiceWorkerMsg_FetchEvent(
228 // |dispatcher| is owned by |version_|. So it is safe to pass the unretained 218 response_id, event_finish_id, *request_.get()));
229 // raw pointer of |version_| to OnFetchEventFinished callback.
230 dispatcher->DispatchFetchEvent(
231 response_id, *request_,
232 base::Bind(&OnFetchEventFinished, base::Unretained(version_.get()),
233 event_finish_id));
234 } 219 }
235 220
236 void ServiceWorkerFetchDispatcher::DidFailToDispatch( 221 void ServiceWorkerFetchDispatcher::DidFailToDispatch(
237 ServiceWorkerStatusCode status) { 222 ServiceWorkerStatusCode status) {
238 EndNetLogEventWithServiceWorkerStatus( 223 EndNetLogEventWithServiceWorkerStatus(
239 net_log_, net::NetLogEventType::SERVICE_WORKER_FETCH_EVENT, status); 224 net_log_, net::NetLogEventType::SERVICE_WORKER_FETCH_EVENT, status);
240 DidFail(status); 225 DidFail(status);
241 } 226 }
242 227
243 void ServiceWorkerFetchDispatcher::DidFail(ServiceWorkerStatusCode status) { 228 void ServiceWorkerFetchDispatcher::DidFail(ServiceWorkerStatusCode status) {
(...skipping 27 matching lines...) Expand all
271 } 256 }
272 257
273 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() 258 ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType()
274 const { 259 const {
275 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH) 260 if (request_->fetch_type == ServiceWorkerFetchType::FOREIGN_FETCH)
276 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH; 261 return ServiceWorkerMetrics::EventType::FOREIGN_FETCH;
277 return ResourceTypeToEventType(resource_type_); 262 return ResourceTypeToEventType(resource_type_);
278 } 263 }
279 264
280 } // namespace content 265 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698