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

Side by Side Diff: content/child/service_worker/service_worker_dispatcher.cc

Issue 515493002: ServiceWorker: Clean up WebServiceWorkerRegistrationImpl (Closed) Base URL: http://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « no previous file | content/child/service_worker/web_service_worker_registration_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/child/service_worker/service_worker_dispatcher.h" 5 #include "content/child/service_worker/service_worker_dispatcher.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/stl_util.h" 8 #include "base/stl_util.h"
9 #include "base/threading/thread_local.h" 9 #include "base/threading/thread_local.h"
10 #include "content/child/child_thread.h" 10 #include "content/child/child_thread.h"
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 } 333 }
334 provider->second->OnSetInstallingServiceWorker(provider_id, info); 334 provider->second->OnSetInstallingServiceWorker(provider_id, info);
335 if (info.handle_id != kInvalidServiceWorkerHandleId) 335 if (info.handle_id != kInvalidServiceWorkerHandleId)
336 worker_to_provider_[info.handle_id] = provider->second; 336 worker_to_provider_[info.handle_id] = provider->second;
337 } 337 }
338 338
339 RegistrationObjectMap::iterator found = 339 RegistrationObjectMap::iterator found =
340 registrations_.find(registration_handle_id); 340 registrations_.find(registration_handle_id);
341 if (found != registrations_.end()) { 341 if (found != registrations_.end()) {
342 // Populate the .installing field with the new worker object. 342 // Populate the .installing field with the new worker object.
343 found->second->setInstalling(GetServiceWorker(info, false)); 343 found->second->SetInstalling(GetServiceWorker(info, false));
344 if (info.handle_id != kInvalidServiceWorkerHandleId) 344 if (info.handle_id != kInvalidServiceWorkerHandleId)
345 found->second->OnUpdateFound(); 345 found->second->OnUpdateFound();
346 } 346 }
347 } 347 }
348 348
349 void ServiceWorkerDispatcher::SetWaitingServiceWorker( 349 void ServiceWorkerDispatcher::SetWaitingServiceWorker(
350 int provider_id, 350 int provider_id,
351 int registration_handle_id, 351 int registration_handle_id,
352 const ServiceWorkerObjectInfo& info) { 352 const ServiceWorkerObjectInfo& info) {
353 ProviderContextMap::iterator provider = provider_contexts_.find(provider_id); 353 ProviderContextMap::iterator provider = provider_contexts_.find(provider_id);
354 if (provider != provider_contexts_.end()) { 354 if (provider != provider_contexts_.end()) {
355 int existing_waiting_id = provider->second->waiting_handle_id(); 355 int existing_waiting_id = provider->second->waiting_handle_id();
356 if (existing_waiting_id != info.handle_id && 356 if (existing_waiting_id != info.handle_id &&
357 existing_waiting_id != kInvalidServiceWorkerHandleId) { 357 existing_waiting_id != kInvalidServiceWorkerHandleId) {
358 WorkerToProviderMap::iterator associated_provider = 358 WorkerToProviderMap::iterator associated_provider =
359 worker_to_provider_.find(existing_waiting_id); 359 worker_to_provider_.find(existing_waiting_id);
360 DCHECK(associated_provider != worker_to_provider_.end()); 360 DCHECK(associated_provider != worker_to_provider_.end());
361 DCHECK(associated_provider->second->provider_id() == provider_id); 361 DCHECK(associated_provider->second->provider_id() == provider_id);
362 worker_to_provider_.erase(associated_provider); 362 worker_to_provider_.erase(associated_provider);
363 } 363 }
364 provider->second->OnSetWaitingServiceWorker(provider_id, info); 364 provider->second->OnSetWaitingServiceWorker(provider_id, info);
365 if (info.handle_id != kInvalidServiceWorkerHandleId) 365 if (info.handle_id != kInvalidServiceWorkerHandleId)
366 worker_to_provider_[info.handle_id] = provider->second; 366 worker_to_provider_[info.handle_id] = provider->second;
367 } 367 }
368 368
369 RegistrationObjectMap::iterator found = 369 RegistrationObjectMap::iterator found =
370 registrations_.find(registration_handle_id); 370 registrations_.find(registration_handle_id);
371 if (found != registrations_.end()) { 371 if (found != registrations_.end()) {
372 // Populate the .waiting field with the new worker object. 372 // Populate the .waiting field with the new worker object.
373 found->second->setWaiting(GetServiceWorker(info, false)); 373 found->second->SetWaiting(GetServiceWorker(info, false));
374 } 374 }
375 } 375 }
376 376
377 void ServiceWorkerDispatcher::SetActiveServiceWorker( 377 void ServiceWorkerDispatcher::SetActiveServiceWorker(
378 int provider_id, 378 int provider_id,
379 int registration_handle_id, 379 int registration_handle_id,
380 const ServiceWorkerObjectInfo& info) { 380 const ServiceWorkerObjectInfo& info) {
381 ProviderContextMap::iterator provider = provider_contexts_.find(provider_id); 381 ProviderContextMap::iterator provider = provider_contexts_.find(provider_id);
382 if (provider != provider_contexts_.end()) { 382 if (provider != provider_contexts_.end()) {
383 int existing_active_id = provider->second->active_handle_id(); 383 int existing_active_id = provider->second->active_handle_id();
384 if (existing_active_id != info.handle_id && 384 if (existing_active_id != info.handle_id &&
385 existing_active_id != kInvalidServiceWorkerHandleId) { 385 existing_active_id != kInvalidServiceWorkerHandleId) {
386 WorkerToProviderMap::iterator associated_provider = 386 WorkerToProviderMap::iterator associated_provider =
387 worker_to_provider_.find(existing_active_id); 387 worker_to_provider_.find(existing_active_id);
388 DCHECK(associated_provider != worker_to_provider_.end()); 388 DCHECK(associated_provider != worker_to_provider_.end());
389 DCHECK(associated_provider->second->provider_id() == provider_id); 389 DCHECK(associated_provider->second->provider_id() == provider_id);
390 worker_to_provider_.erase(associated_provider); 390 worker_to_provider_.erase(associated_provider);
391 } 391 }
392 provider->second->OnSetActiveServiceWorker(provider_id, info); 392 provider->second->OnSetActiveServiceWorker(provider_id, info);
393 if (info.handle_id != kInvalidServiceWorkerHandleId) 393 if (info.handle_id != kInvalidServiceWorkerHandleId)
394 worker_to_provider_[info.handle_id] = provider->second; 394 worker_to_provider_[info.handle_id] = provider->second;
395 } 395 }
396 396
397 RegistrationObjectMap::iterator found = 397 RegistrationObjectMap::iterator found =
398 registrations_.find(registration_handle_id); 398 registrations_.find(registration_handle_id);
399 if (found != registrations_.end()) { 399 if (found != registrations_.end()) {
400 // Populate the .active field with the new worker object. 400 // Populate the .active field with the new worker object.
401 found->second->setActive(GetServiceWorker(info, false)); 401 found->second->SetActive(GetServiceWorker(info, false));
402 } 402 }
403 } 403 }
404 404
405 void ServiceWorkerDispatcher::OnSetControllerServiceWorker( 405 void ServiceWorkerDispatcher::OnSetControllerServiceWorker(
406 int thread_id, 406 int thread_id,
407 int provider_id, 407 int provider_id,
408 const ServiceWorkerObjectInfo& info) { 408 const ServiceWorkerObjectInfo& info) {
409 ProviderContextMap::iterator provider = provider_contexts_.find(provider_id); 409 ProviderContextMap::iterator provider = provider_contexts_.find(provider_id);
410 if (provider != provider_contexts_.end()) { 410 if (provider != provider_contexts_.end()) {
411 provider->second->OnSetControllerServiceWorker(provider_id, info); 411 provider->second->OnSetControllerServiceWorker(provider_id, info);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 registrations_[registration_handle_id] = registration; 467 registrations_[registration_handle_id] = registration;
468 } 468 }
469 469
470 void ServiceWorkerDispatcher::RemoveServiceWorkerRegistration( 470 void ServiceWorkerDispatcher::RemoveServiceWorkerRegistration(
471 int registration_handle_id) { 471 int registration_handle_id) {
472 DCHECK(ContainsKey(registrations_, registration_handle_id)); 472 DCHECK(ContainsKey(registrations_, registration_handle_id));
473 registrations_.erase(registration_handle_id); 473 registrations_.erase(registration_handle_id);
474 } 474 }
475 475
476 } // namespace content 476 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/child/service_worker/web_service_worker_registration_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698