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

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

Issue 164753006: Start of Chrome-side plumbing for ServiceWorker fetch (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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 | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698