OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_version.h" | 5 #include "content/browser/service_worker/service_worker_version.h" |
6 | 6 |
7 #include "base/stl_util.h" | 7 #include "base/stl_util.h" |
8 #include "content/browser/service_worker/embedded_worker_instance.h" | 8 #include "content/browser/service_worker/embedded_worker_instance.h" |
9 #include "content/browser/service_worker/embedded_worker_registry.h" | 9 #include "content/browser/service_worker/embedded_worker_registry.h" |
10 #include "content/browser/service_worker/service_worker_context_core.h" | 10 #include "content/browser/service_worker/service_worker_context_core.h" |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, | 139 SERVICE_WORKER_FETCH_EVENT_RESULT_FALLBACK, |
140 ServiceWorkerResponse()); | 140 ServiceWorkerResponse()); |
141 return; | 141 return; |
142 } | 142 } |
143 ServiceWorkerFetchEventResult result; | 143 ServiceWorkerFetchEventResult result; |
144 ServiceWorkerResponse response; | 144 ServiceWorkerResponse response; |
145 ServiceWorkerHostMsg_FetchEventFinished::Read(&message, &result, &response); | 145 ServiceWorkerHostMsg_FetchEventFinished::Read(&message, &result, &response); |
146 callback.Run(SERVICE_WORKER_OK, result, response); | 146 callback.Run(SERVICE_WORKER_OK, result, response); |
147 } | 147 } |
148 | 148 |
| 149 void HandleSyncEventFinished(const StatusCallback& callback, |
| 150 ServiceWorkerStatusCode status, |
| 151 const IPC::Message& message) { |
| 152 if (message.type() != ServiceWorkerHostMsg_SyncEventFinished::ID) { |
| 153 NOTREACHED() << "Got unexpected response for SyncEvent: " << message.type(); |
| 154 callback.Run(SERVICE_WORKER_ERROR_FAILED); |
| 155 return; |
| 156 } |
| 157 callback.Run(status); |
| 158 } |
| 159 |
149 } // namespace | 160 } // namespace |
150 | 161 |
151 ServiceWorkerVersion::ServiceWorkerVersion( | 162 ServiceWorkerVersion::ServiceWorkerVersion( |
152 ServiceWorkerRegistration* registration, | 163 ServiceWorkerRegistration* registration, |
153 EmbeddedWorkerRegistry* worker_registry, | 164 EmbeddedWorkerRegistry* worker_registry, |
154 int64 version_id) | 165 int64 version_id) |
155 : version_id_(version_id), | 166 : version_id_(version_id), |
156 status_(NEW), | 167 status_(NEW), |
157 is_shutdown_(false), | 168 is_shutdown_(false), |
158 registration_(registration), | 169 registration_(registration), |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 | 335 |
325 void ServiceWorkerVersion::DispatchFetchEvent( | 336 void ServiceWorkerVersion::DispatchFetchEvent( |
326 const ServiceWorkerFetchRequest& request, | 337 const ServiceWorkerFetchRequest& request, |
327 const FetchCallback& callback) { | 338 const FetchCallback& callback) { |
328 DCHECK_EQ(ACTIVE, status()) << status(); | 339 DCHECK_EQ(ACTIVE, status()) << status(); |
329 SendMessageAndRegisterCallback( | 340 SendMessageAndRegisterCallback( |
330 ServiceWorkerMsg_FetchEvent(request), | 341 ServiceWorkerMsg_FetchEvent(request), |
331 base::Bind(&HandleFetchResponse, callback)); | 342 base::Bind(&HandleFetchResponse, callback)); |
332 } | 343 } |
333 | 344 |
| 345 void ServiceWorkerVersion::DispatchSyncEvent(const StatusCallback& callback) { |
| 346 DCHECK_EQ(ACTIVE, status()) << status(); |
| 347 SendMessageAndRegisterCallback( |
| 348 ServiceWorkerMsg_SyncEvent(), |
| 349 base::Bind(&HandleSyncEventFinished, callback)); |
| 350 } |
| 351 |
334 void ServiceWorkerVersion::AddProcessToWorker(int process_id) { | 352 void ServiceWorkerVersion::AddProcessToWorker(int process_id) { |
335 DCHECK(!is_shutdown_); | 353 DCHECK(!is_shutdown_); |
336 embedded_worker_->AddProcessReference(process_id); | 354 embedded_worker_->AddProcessReference(process_id); |
337 } | 355 } |
338 | 356 |
339 void ServiceWorkerVersion::RemoveProcessToWorker(int process_id) { | 357 void ServiceWorkerVersion::RemoveProcessToWorker(int process_id) { |
340 // We may have been shutdown. | 358 // We may have been shutdown. |
341 if (embedded_worker_) | 359 if (embedded_worker_) |
342 embedded_worker_->ReleaseProcessReference(process_id); | 360 embedded_worker_->ReleaseProcessReference(process_id); |
343 } | 361 } |
(...skipping 29 matching lines...) Expand all Loading... |
373 if (callback) { | 391 if (callback) { |
374 callback->Run(SERVICE_WORKER_OK, message); | 392 callback->Run(SERVICE_WORKER_OK, message); |
375 message_callbacks_.Remove(request_id); | 393 message_callbacks_.Remove(request_id); |
376 return; | 394 return; |
377 } | 395 } |
378 NOTREACHED() << "Got unexpected message: " << request_id | 396 NOTREACHED() << "Got unexpected message: " << request_id |
379 << " " << message.type(); | 397 << " " << message.type(); |
380 } | 398 } |
381 | 399 |
382 } // namespace content | 400 } // namespace content |
OLD | NEW |