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

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

Issue 205033002: Browser side of new ServiceWorker 'sync' event. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Kinuko comments Created 6 years, 8 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
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 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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