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

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: remove empty line 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 ServiceWorkerVersion::FetchCallback& callback,
78 ServiceWorkerStatusCode status,
79 const IPC::Message& message) {
80 Tuple1<ServiceWorkerFetchResponse> response;
81 if (message.type() != ServiceWorkerHostMsg_FetchEventFinished::ID) {
82 NOTREACHED() << "Got unexpected response for FetchEvent: "
83 << message.type();
84 callback.Run(SERVICE_WORKER_ERROR_FAILED, response.a);
85 return;
86 }
87 ServiceWorkerHostMsg_FetchEventFinished::Read(&message, &response);
88 callback.Run(status, response.a);
89 }
90
77 } // namespace 91 } // namespace
78 92
79 ServiceWorkerVersion::ServiceWorkerVersion( 93 ServiceWorkerVersion::ServiceWorkerVersion(
80 ServiceWorkerRegistration* registration, 94 ServiceWorkerRegistration* registration,
81 EmbeddedWorkerRegistry* worker_registry, 95 EmbeddedWorkerRegistry* worker_registry,
82 int64 version_id) 96 int64 version_id)
83 : version_id_(version_id), 97 : version_id_(version_id),
84 is_shutdown_(false), 98 is_shutdown_(false),
85 registration_(registration), 99 registration_(registration),
86 weak_factory_(this) { 100 weak_factory_(this) {
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 } 201 }
188 202
189 void ServiceWorkerVersion::DispatchInstallEvent( 203 void ServiceWorkerVersion::DispatchInstallEvent(
190 int active_version_embedded_worker_id, 204 int active_version_embedded_worker_id,
191 const StatusCallback& callback) { 205 const StatusCallback& callback) {
192 SendMessageAndRegisterCallback( 206 SendMessageAndRegisterCallback(
193 ServiceWorkerMsg_InstallEvent(active_version_embedded_worker_id), 207 ServiceWorkerMsg_InstallEvent(active_version_embedded_worker_id),
194 base::Bind(&HandleInstallFinished, callback)); 208 base::Bind(&HandleInstallFinished, callback));
195 } 209 }
196 210
197 bool ServiceWorkerVersion::DispatchFetchEvent( 211 void ServiceWorkerVersion::DispatchFetchEvent(
198 const ServiceWorkerFetchRequest& request) { 212 const ServiceWorkerFetchRequest& request,
199 if (status() != RUNNING) 213 const FetchCallback& callback) {
200 return false; 214 SendMessageAndRegisterCallback(
201 return embedded_worker_->SendMessage( 215 ServiceWorkerMsg_FetchEvent(request),
202 kInvalidRequestId, ServiceWorkerMsg_FetchEvent(request)) 216 base::Bind(&HandleFetchResponse, callback));
203 == SERVICE_WORKER_OK;
204 } 217 }
205 218
206 void ServiceWorkerVersion::AddProcessToWorker(int process_id) { 219 void ServiceWorkerVersion::AddProcessToWorker(int process_id) {
207 DCHECK(!is_shutdown_); 220 DCHECK(!is_shutdown_);
208 embedded_worker_->AddProcessReference(process_id); 221 embedded_worker_->AddProcessReference(process_id);
209 } 222 }
210 223
211 void ServiceWorkerVersion::RemoveProcessToWorker(int process_id) { 224 void ServiceWorkerVersion::RemoveProcessToWorker(int process_id) {
212 embedded_worker_->ReleaseProcessReference(process_id); 225 embedded_worker_->ReleaseProcessReference(process_id);
213 } 226 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 if (callback) { 258 if (callback) {
246 callback->Run(SERVICE_WORKER_OK, message); 259 callback->Run(SERVICE_WORKER_OK, message);
247 message_callbacks_.Remove(request_id); 260 message_callbacks_.Remove(request_id);
248 return; 261 return;
249 } 262 }
250 NOTREACHED() << "Got unexpected message: " << request_id 263 NOTREACHED() << "Got unexpected message: " << request_id
251 << " " << message.type(); 264 << " " << message.type();
252 } 265 }
253 266
254 } // namespace content 267 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_version.h ('k') | content/common/service_worker/service_worker_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698