Chromium Code Reviews| 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 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CONTEXT_CORE_H_ | 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CONTEXT_CORE_H_ |
| 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CONTEXT_CORE_H_ | 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CONTEXT_CORE_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 37 class QuotaManagerProxy; | 37 class QuotaManagerProxy; |
| 38 class SpecialStoragePolicy; | 38 class SpecialStoragePolicy; |
| 39 } | 39 } |
| 40 | 40 |
| 41 namespace content { | 41 namespace content { |
| 42 | 42 |
| 43 class EmbeddedWorkerRegistry; | 43 class EmbeddedWorkerRegistry; |
| 44 class ServiceWorkerContextObserver; | 44 class ServiceWorkerContextObserver; |
| 45 class ServiceWorkerContextWrapper; | 45 class ServiceWorkerContextWrapper; |
| 46 class ServiceWorkerDatabaseTaskManager; | 46 class ServiceWorkerDatabaseTaskManager; |
| 47 class ServiceWorkerDispatcherHost; | |
| 47 class ServiceWorkerJobCoordinator; | 48 class ServiceWorkerJobCoordinator; |
| 48 class ServiceWorkerNavigationHandleCore; | 49 class ServiceWorkerNavigationHandleCore; |
| 49 class ServiceWorkerProviderHost; | 50 class ServiceWorkerProviderHost; |
| 50 class ServiceWorkerRegistration; | 51 class ServiceWorkerRegistration; |
| 51 class ServiceWorkerStorage; | 52 class ServiceWorkerStorage; |
| 52 | 53 |
| 53 // This class manages data associated with service workers. | 54 // This class manages data associated with service workers. |
| 54 // The class is single threaded and should only be used on the IO thread. | 55 // The class is single threaded and should only be used on the IO thread. |
| 55 // In chromium, there is one instance per storagepartition. This class | 56 // In chromium, there is one instance per storagepartition. This class |
| 56 // is the root of the containment hierarchy for service worker data | 57 // is the root of the containment hierarchy for service worker data |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 147 ServiceWorkerContextWrapper* wrapper() const { return wrapper_; } | 148 ServiceWorkerContextWrapper* wrapper() const { return wrapper_; } |
| 148 ServiceWorkerStorage* storage() { return storage_.get(); } | 149 ServiceWorkerStorage* storage() { return storage_.get(); } |
| 149 ServiceWorkerProcessManager* process_manager(); | 150 ServiceWorkerProcessManager* process_manager(); |
| 150 EmbeddedWorkerRegistry* embedded_worker_registry() { | 151 EmbeddedWorkerRegistry* embedded_worker_registry() { |
| 151 return embedded_worker_registry_.get(); | 152 return embedded_worker_registry_.get(); |
| 152 } | 153 } |
| 153 ServiceWorkerJobCoordinator* job_coordinator() { | 154 ServiceWorkerJobCoordinator* job_coordinator() { |
| 154 return job_coordinator_.get(); | 155 return job_coordinator_.get(); |
| 155 } | 156 } |
| 156 | 157 |
| 158 // Maintains DispatcherHosts to exchange service worker related messages | |
| 159 // through them. The DispatcherHosts are not owned by this class. | |
| 160 void AddDispatcherHost(int process_id, | |
| 161 ServiceWorkerDispatcherHost* dispatcher_host); | |
| 162 ServiceWorkerDispatcherHost* GetDispatcherHost(int process_id); | |
| 163 void RemoveDispatcherHost(int process_id); | |
| 164 | |
| 157 // The context class owns the set of ProviderHosts. | 165 // The context class owns the set of ProviderHosts. |
| 158 ServiceWorkerProviderHost* GetProviderHost(int process_id, int provider_id); | |
| 159 void AddProviderHost( | 166 void AddProviderHost( |
| 160 std::unique_ptr<ServiceWorkerProviderHost> provider_host); | 167 std::unique_ptr<ServiceWorkerProviderHost> provider_host); |
| 168 void AddProviderHost(int process_id, | |
|
horo
2017/02/08 02:14:11
Remove this.
shimazu
2017/02/13 03:25:56
Done.
| |
| 169 ServiceWorkerProviderHostInfo provider_host_info); | |
| 170 ServiceWorkerProviderHost* GetProviderHost(int process_id, int provider_id); | |
| 161 void RemoveProviderHost(int process_id, int provider_id); | 171 void RemoveProviderHost(int process_id, int provider_id); |
| 162 void RemoveAllProviderHostsForProcess(int process_id); | 172 void RemoveAllProviderHostsForProcess(int process_id); |
| 163 std::unique_ptr<ProviderHostIterator> GetProviderHostIterator(); | 173 std::unique_ptr<ProviderHostIterator> GetProviderHostIterator(); |
| 164 | 174 |
| 165 // Returns a ProviderHost iterator for all ServiceWorker clients for | 175 // Returns a ProviderHost iterator for all ServiceWorker clients for |
| 166 // the |origin|. This only returns ProviderHosts that are of CONTROLLEE | 176 // the |origin|. This only returns ProviderHosts that are of CONTROLLEE |
| 167 // and belong to the |origin|. | 177 // and belong to the |origin|. |
| 168 std::unique_ptr<ProviderHostIterator> GetClientProviderHostIterator( | 178 std::unique_ptr<ProviderHostIterator> GetClientProviderHostIterator( |
| 169 const GURL& origin); | 179 const GURL& origin); |
| 170 | 180 |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 335 ServiceWorkerStatusCode status, | 345 ServiceWorkerStatusCode status, |
| 336 scoped_refptr<ServiceWorkerRegistration> registration); | 346 scoped_refptr<ServiceWorkerRegistration> registration); |
| 337 void OnRegistrationFinishedForCheckHasServiceWorker( | 347 void OnRegistrationFinishedForCheckHasServiceWorker( |
| 338 const ServiceWorkerContext::CheckHasServiceWorkerCallback callback, | 348 const ServiceWorkerContext::CheckHasServiceWorkerCallback callback, |
| 339 scoped_refptr<ServiceWorkerRegistration> registration); | 349 scoped_refptr<ServiceWorkerRegistration> registration); |
| 340 | 350 |
| 341 // It's safe to store a raw pointer instead of a scoped_refptr to |wrapper_| | 351 // It's safe to store a raw pointer instead of a scoped_refptr to |wrapper_| |
| 342 // because the Wrapper::Shutdown call that hops threads to destroy |this| uses | 352 // because the Wrapper::Shutdown call that hops threads to destroy |this| uses |
| 343 // Bind() to hold a reference to |wrapper_| until |this| is fully destroyed. | 353 // Bind() to hold a reference to |wrapper_| until |this| is fully destroyed. |
| 344 ServiceWorkerContextWrapper* wrapper_; | 354 ServiceWorkerContextWrapper* wrapper_; |
| 355 std::unique_ptr<IDMap<ServiceWorkerDispatcherHost*>> dispatcher_hosts_; | |
| 345 std::unique_ptr<ProcessToProviderMap> providers_; | 356 std::unique_ptr<ProcessToProviderMap> providers_; |
| 346 std::unique_ptr<ProviderByClientUUIDMap> provider_by_uuid_; | 357 std::unique_ptr<ProviderByClientUUIDMap> provider_by_uuid_; |
| 347 std::unique_ptr<ServiceWorkerStorage> storage_; | 358 std::unique_ptr<ServiceWorkerStorage> storage_; |
| 348 scoped_refptr<EmbeddedWorkerRegistry> embedded_worker_registry_; | 359 scoped_refptr<EmbeddedWorkerRegistry> embedded_worker_registry_; |
| 349 std::unique_ptr<ServiceWorkerJobCoordinator> job_coordinator_; | 360 std::unique_ptr<ServiceWorkerJobCoordinator> job_coordinator_; |
| 350 std::map<int64_t, ServiceWorkerRegistration*> live_registrations_; | 361 std::map<int64_t, ServiceWorkerRegistration*> live_registrations_; |
| 351 std::map<int64_t, ServiceWorkerVersion*> live_versions_; | 362 std::map<int64_t, ServiceWorkerVersion*> live_versions_; |
| 352 std::map<int64_t, scoped_refptr<ServiceWorkerVersion>> protected_versions_; | 363 std::map<int64_t, scoped_refptr<ServiceWorkerVersion>> protected_versions_; |
| 353 | 364 |
| 354 std::map<int64_t /* version_id */, FailureInfo> failure_counts_; | 365 std::map<int64_t /* version_id */, FailureInfo> failure_counts_; |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 368 scoped_refptr<base::ObserverListThreadSafe<ServiceWorkerContextObserver>> | 379 scoped_refptr<base::ObserverListThreadSafe<ServiceWorkerContextObserver>> |
| 369 observer_list_; | 380 observer_list_; |
| 370 base::WeakPtrFactory<ServiceWorkerContextCore> weak_factory_; | 381 base::WeakPtrFactory<ServiceWorkerContextCore> weak_factory_; |
| 371 | 382 |
| 372 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerContextCore); | 383 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerContextCore); |
| 373 }; | 384 }; |
| 374 | 385 |
| 375 } // namespace content | 386 } // namespace content |
| 376 | 387 |
| 377 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CONTEXT_CORE_H_ | 388 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_CONTEXT_CORE_H_ |
| OLD | NEW |