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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
67 | 67 |
68 if (message.type() != ServiceWorkerHostMsg_InstallEventFinished::ID) { | 68 if (message.type() != ServiceWorkerHostMsg_InstallEventFinished::ID) { |
69 NOTREACHED() << "Got unexpected response for InstallEvent: " | 69 NOTREACHED() << "Got unexpected response for InstallEvent: " |
70 << message.type(); | 70 << message.type(); |
71 callback.Run(SERVICE_WORKER_ERROR_FAILED); | 71 callback.Run(SERVICE_WORKER_ERROR_FAILED); |
72 return; | 72 return; |
73 } | 73 } |
74 callback.Run(SERVICE_WORKER_OK); | 74 callback.Run(SERVICE_WORKER_OK); |
75 } | 75 } |
76 | 76 |
77 void HandleFetchResponse(const StatusCallback& callback, | |
78 ServiceWorkerStatusCode status, | |
79 const IPC::Message& message) { | |
80 if (message.type() != ServiceWorkerHostMsg_FetchEventFinished::ID) { | |
81 NOTREACHED() << "Got unexpected response for FetchEvent: " | |
82 << message.type(); | |
83 callback.Run(SERVICE_WORKER_ERROR_FAILED); | |
84 return; | |
85 } | |
86 callback.Run(status); | |
87 } | |
88 | |
77 } // namespace | 89 } // namespace |
78 | 90 |
79 ServiceWorkerVersion::ServiceWorkerVersion( | 91 ServiceWorkerVersion::ServiceWorkerVersion( |
80 ServiceWorkerRegistration* registration, | 92 ServiceWorkerRegistration* registration, |
81 EmbeddedWorkerRegistry* worker_registry, | 93 EmbeddedWorkerRegistry* worker_registry, |
82 int64 version_id) | 94 int64 version_id) |
83 : version_id_(version_id), | 95 : version_id_(version_id), |
84 is_shutdown_(false), | 96 is_shutdown_(false), |
85 registration_(registration), | 97 registration_(registration), |
86 weak_factory_(this) { | 98 weak_factory_(this) { |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
187 } | 199 } |
188 | 200 |
189 void ServiceWorkerVersion::DispatchInstallEvent( | 201 void ServiceWorkerVersion::DispatchInstallEvent( |
190 int active_version_embedded_worker_id, | 202 int active_version_embedded_worker_id, |
191 const StatusCallback& callback) { | 203 const StatusCallback& callback) { |
192 SendMessageAndRegisterCallback( | 204 SendMessageAndRegisterCallback( |
193 ServiceWorkerMsg_InstallEvent(active_version_embedded_worker_id), | 205 ServiceWorkerMsg_InstallEvent(active_version_embedded_worker_id), |
194 base::Bind(&HandleInstallFinished, callback)); | 206 base::Bind(&HandleInstallFinished, callback)); |
195 } | 207 } |
196 | 208 |
197 bool ServiceWorkerVersion::DispatchFetchEvent( | 209 void ServiceWorkerVersion::DispatchFetchEvent( |
198 const ServiceWorkerFetchRequest& request) { | 210 const ServiceWorkerFetchRequest& request, |
199 if (status() != RUNNING) | 211 const StatusCallback& callback) { |
200 return false; | 212 // TODO(falken): Must check status() == RUNNING? |
201 return embedded_worker_->SendMessage( | 213 SendMessageAndRegisterCallback( |
kinuko
2014/02/14 08:56:24
SendMessageAndRegisterCallback internally checks i
falken
2014/02/19 05:32:19
OK, I see. TODO removed.
| |
202 kInvalidRequestId, ServiceWorkerMsg_FetchEvent(request)) | 214 ServiceWorkerMsg_FetchEvent(request), |
203 == SERVICE_WORKER_OK; | 215 base::Bind(&HandleFetchResponse, callback)); |
204 } | 216 } |
205 | 217 |
206 void ServiceWorkerVersion::AddProcessToWorker(int process_id) { | 218 void ServiceWorkerVersion::AddProcessToWorker(int process_id) { |
207 DCHECK(!is_shutdown_); | 219 DCHECK(!is_shutdown_); |
208 embedded_worker_->AddProcessReference(process_id); | 220 embedded_worker_->AddProcessReference(process_id); |
209 } | 221 } |
210 | 222 |
211 void ServiceWorkerVersion::RemoveProcessToWorker(int process_id) { | 223 void ServiceWorkerVersion::RemoveProcessToWorker(int process_id) { |
212 embedded_worker_->ReleaseProcessReference(process_id); | 224 embedded_worker_->ReleaseProcessReference(process_id); |
213 } | 225 } |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
245 if (callback) { | 257 if (callback) { |
246 callback->Run(SERVICE_WORKER_OK, message); | 258 callback->Run(SERVICE_WORKER_OK, message); |
247 message_callbacks_.Remove(request_id); | 259 message_callbacks_.Remove(request_id); |
248 return; | 260 return; |
249 } | 261 } |
250 NOTREACHED() << "Got unexpected message: " << request_id | 262 NOTREACHED() << "Got unexpected message: " << request_id |
251 << " " << message.type(); | 263 << " " << message.type(); |
252 } | 264 } |
253 | 265 |
254 } // namespace content | 266 } // namespace content |
OLD | NEW |