| 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_REGISTRATION_H_ | 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_H_ |
| 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_H_ | 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_H_ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/gtest_prod_util.h" | 9 #include "base/gtest_prod_util.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 // two pages that are registering the same pattern at the same time | 29 // two pages that are registering the same pattern at the same time |
| 30 // have their registrations coalesced rather than overwriting each | 30 // have their registrations coalesced rather than overwriting each |
| 31 // other. | 31 // other. |
| 32 // | 32 // |
| 33 // This class also manages the state of the upgrade process, which | 33 // This class also manages the state of the upgrade process, which |
| 34 // includes managing which ServiceWorkerVersion is "active" vs "in | 34 // includes managing which ServiceWorkerVersion is "active" vs "in |
| 35 // waiting". | 35 // waiting". |
| 36 class CONTENT_EXPORT ServiceWorkerRegistration | 36 class CONTENT_EXPORT ServiceWorkerRegistration |
| 37 : NON_EXPORTED_BASE(public base::RefCounted<ServiceWorkerRegistration>) { | 37 : NON_EXPORTED_BASE(public base::RefCounted<ServiceWorkerRegistration>) { |
| 38 public: | 38 public: |
| 39 typedef base::Callback<void(ServiceWorkerStatusCode status)> StatusCallback; |
| 39 | 40 |
| 40 class Listener { | 41 class Listener { |
| 41 public: | 42 public: |
| 42 virtual void OnVersionAttributesChanged( | 43 virtual void OnVersionAttributesChanged( |
| 43 ServiceWorkerRegistration* registration, | 44 ServiceWorkerRegistration* registration, |
| 44 ChangedVersionAttributesMask changed_mask, | 45 ChangedVersionAttributesMask changed_mask, |
| 45 const ServiceWorkerRegistrationInfo& info) = 0; | 46 const ServiceWorkerRegistrationInfo& info) = 0; |
| 46 }; | 47 }; |
| 47 | 48 |
| 48 ServiceWorkerRegistration(const GURL& pattern, | 49 ServiceWorkerRegistration(const GURL& pattern, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 76 // Also notifies listeners via OnVersionAttributesChanged. | 77 // Also notifies listeners via OnVersionAttributesChanged. |
| 77 void SetActiveVersion(ServiceWorkerVersion* version); | 78 void SetActiveVersion(ServiceWorkerVersion* version); |
| 78 void SetWaitingVersion(ServiceWorkerVersion* version); | 79 void SetWaitingVersion(ServiceWorkerVersion* version); |
| 79 void SetInstallingVersion(ServiceWorkerVersion* version); | 80 void SetInstallingVersion(ServiceWorkerVersion* version); |
| 80 | 81 |
| 81 // If version is the installing, waiting, active version of this | 82 // If version is the installing, waiting, active version of this |
| 82 // registation, the method will reset that field to NULL, and notify | 83 // registation, the method will reset that field to NULL, and notify |
| 83 // listeners via OnVersionAttributesChanged. | 84 // listeners via OnVersionAttributesChanged. |
| 84 void UnsetVersion(ServiceWorkerVersion* version); | 85 void UnsetVersion(ServiceWorkerVersion* version); |
| 85 | 86 |
| 87 void ActivateWaitingVersion(const StatusCallback& completion_callback); |
| 88 |
| 86 private: | 89 private: |
| 87 ~ServiceWorkerRegistration(); | 90 ~ServiceWorkerRegistration(); |
| 88 friend class base::RefCounted<ServiceWorkerRegistration>; | 91 friend class base::RefCounted<ServiceWorkerRegistration>; |
| 89 | 92 |
| 90 void SetVersionInternal( | 93 void SetVersionInternal( |
| 91 ServiceWorkerVersion* version, | 94 ServiceWorkerVersion* version, |
| 92 scoped_refptr<ServiceWorkerVersion>* data_member, | 95 scoped_refptr<ServiceWorkerVersion>* data_member, |
| 93 int change_flag); | 96 int change_flag); |
| 94 void UnsetVersionInternal( | 97 void UnsetVersionInternal( |
| 95 ServiceWorkerVersion* version, | 98 ServiceWorkerVersion* version, |
| 96 ChangedVersionAttributesMask* mask); | 99 ChangedVersionAttributesMask* mask); |
| 97 | 100 |
| 101 void OnActivateEventFinished( |
| 102 ServiceWorkerVersion* activating_version, |
| 103 const StatusCallback& completion_callback, |
| 104 ServiceWorkerStatusCode status); |
| 105 |
| 98 const GURL pattern_; | 106 const GURL pattern_; |
| 99 const GURL script_url_; | 107 const GURL script_url_; |
| 100 const int64 registration_id_; | 108 const int64 registration_id_; |
| 101 scoped_refptr<ServiceWorkerVersion> active_version_; | 109 scoped_refptr<ServiceWorkerVersion> active_version_; |
| 102 scoped_refptr<ServiceWorkerVersion> waiting_version_; | 110 scoped_refptr<ServiceWorkerVersion> waiting_version_; |
| 103 scoped_refptr<ServiceWorkerVersion> installing_version_; | 111 scoped_refptr<ServiceWorkerVersion> installing_version_; |
| 104 ObserverList<Listener> listeners_; | 112 ObserverList<Listener> listeners_; |
| 105 base::WeakPtr<ServiceWorkerContextCore> context_; | 113 base::WeakPtr<ServiceWorkerContextCore> context_; |
| 106 | 114 |
| 107 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerRegistration); | 115 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerRegistration); |
| 108 }; | 116 }; |
| 109 } // namespace content | 117 } // namespace content |
| 110 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_H_ | 118 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_REGISTRATION_H_ |
| OLD | NEW |