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_context_core.h" | 5 #include "content/browser/service_worker/service_worker_context_core.h" |
6 | 6 |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "base/message_loop/message_loop_proxy.h" | 8 #include "base/message_loop/message_loop_proxy.h" |
9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
10 #include "content/browser/service_worker/embedded_worker_registry.h" | 10 #include "content/browser/service_worker/embedded_worker_registry.h" |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
95 storage_(ServiceWorkerStorage::Create(path, | 95 storage_(ServiceWorkerStorage::Create(path, |
96 AsWeakPtr(), | 96 AsWeakPtr(), |
97 database_task_runner, | 97 database_task_runner, |
98 disk_cache_thread, | 98 disk_cache_thread, |
99 quota_manager_proxy)), | 99 quota_manager_proxy)), |
100 cache_manager_( | 100 cache_manager_( |
101 ServiceWorkerCacheStorageManager::Create(path, cache_task_runner)), | 101 ServiceWorkerCacheStorageManager::Create(path, cache_task_runner)), |
102 embedded_worker_registry_(EmbeddedWorkerRegistry::Create(AsWeakPtr())), | 102 embedded_worker_registry_(EmbeddedWorkerRegistry::Create(AsWeakPtr())), |
103 job_coordinator_(new ServiceWorkerJobCoordinator(AsWeakPtr())), | 103 job_coordinator_(new ServiceWorkerJobCoordinator(AsWeakPtr())), |
104 next_handle_id_(0), | 104 next_handle_id_(0), |
| 105 next_registration_handle_id_(0), |
105 observer_list_(observer_list) { | 106 observer_list_(observer_list) { |
106 } | 107 } |
107 | 108 |
108 ServiceWorkerContextCore::ServiceWorkerContextCore( | 109 ServiceWorkerContextCore::ServiceWorkerContextCore( |
109 ServiceWorkerContextCore* old_context, | 110 ServiceWorkerContextCore* old_context, |
110 ServiceWorkerContextWrapper* wrapper) | 111 ServiceWorkerContextWrapper* wrapper) |
111 : weak_factory_(this), | 112 : weak_factory_(this), |
112 wrapper_(wrapper), | 113 wrapper_(wrapper), |
113 providers_(old_context->providers_.release()), | 114 providers_(old_context->providers_.release()), |
114 storage_( | 115 storage_( |
115 ServiceWorkerStorage::Create(AsWeakPtr(), old_context->storage())), | 116 ServiceWorkerStorage::Create(AsWeakPtr(), old_context->storage())), |
116 cache_manager_(ServiceWorkerCacheStorageManager::Create( | 117 cache_manager_(ServiceWorkerCacheStorageManager::Create( |
117 old_context->cache_manager())), | 118 old_context->cache_manager())), |
118 embedded_worker_registry_(EmbeddedWorkerRegistry::Create( | 119 embedded_worker_registry_(EmbeddedWorkerRegistry::Create( |
119 AsWeakPtr(), | 120 AsWeakPtr(), |
120 old_context->embedded_worker_registry())), | 121 old_context->embedded_worker_registry())), |
121 job_coordinator_(new ServiceWorkerJobCoordinator(AsWeakPtr())), | 122 job_coordinator_(new ServiceWorkerJobCoordinator(AsWeakPtr())), |
122 next_handle_id_(0), | 123 next_handle_id_(0), |
| 124 next_registration_handle_id_(0), |
123 observer_list_(old_context->observer_list_) { | 125 observer_list_(old_context->observer_list_) { |
124 } | 126 } |
125 | 127 |
126 ServiceWorkerContextCore::~ServiceWorkerContextCore() { | 128 ServiceWorkerContextCore::~ServiceWorkerContextCore() { |
127 for (VersionMap::iterator it = live_versions_.begin(); | 129 for (VersionMap::iterator it = live_versions_.begin(); |
128 it != live_versions_.end(); | 130 it != live_versions_.end(); |
129 ++it) { | 131 ++it) { |
130 it->second->RemoveListener(this); | 132 it->second->RemoveListener(this); |
131 } | 133 } |
132 weak_factory_.InvalidateWeakPtrs(); | 134 weak_factory_.InvalidateWeakPtrs(); |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
310 ++iter) { | 312 ++iter) { |
311 infos.push_back(iter->second->GetInfo()); | 313 infos.push_back(iter->second->GetInfo()); |
312 } | 314 } |
313 return infos; | 315 return infos; |
314 } | 316 } |
315 | 317 |
316 int ServiceWorkerContextCore::GetNewServiceWorkerHandleId() { | 318 int ServiceWorkerContextCore::GetNewServiceWorkerHandleId() { |
317 return next_handle_id_++; | 319 return next_handle_id_++; |
318 } | 320 } |
319 | 321 |
| 322 int ServiceWorkerContextCore::GetNewRegistrationHandleId() { |
| 323 return next_registration_handle_id_++; |
| 324 } |
| 325 |
320 void ServiceWorkerContextCore::ScheduleDeleteAndStartOver() const { | 326 void ServiceWorkerContextCore::ScheduleDeleteAndStartOver() const { |
321 storage_->Disable(); | 327 storage_->Disable(); |
322 base::MessageLoop::current()->PostTask( | 328 base::MessageLoop::current()->PostTask( |
323 FROM_HERE, | 329 FROM_HERE, |
324 base::Bind(&ServiceWorkerContextWrapper::DeleteAndStartOver, wrapper_)); | 330 base::Bind(&ServiceWorkerContextWrapper::DeleteAndStartOver, wrapper_)); |
325 } | 331 } |
326 | 332 |
327 void ServiceWorkerContextCore::DeleteAndStartOver( | 333 void ServiceWorkerContextCore::DeleteAndStartOver( |
328 const StatusCallback& callback) { | 334 const StatusCallback& callback) { |
329 job_coordinator_->AbortAll(); | 335 job_coordinator_->AbortAll(); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 version->embedded_worker()->thread_id(), | 395 version->embedded_worker()->thread_id(), |
390 ServiceWorkerContextObserver::ConsoleMessage( | 396 ServiceWorkerContextObserver::ConsoleMessage( |
391 source_identifier, message_level, message, line_number, source_url)); | 397 source_identifier, message_level, message, line_number, source_url)); |
392 } | 398 } |
393 | 399 |
394 ServiceWorkerProcessManager* ServiceWorkerContextCore::process_manager() { | 400 ServiceWorkerProcessManager* ServiceWorkerContextCore::process_manager() { |
395 return wrapper_->process_manager(); | 401 return wrapper_->process_manager(); |
396 } | 402 } |
397 | 403 |
398 } // namespace content | 404 } // namespace content |
OLD | NEW |