| 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 |