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

Side by Side Diff: content/browser/service_worker/service_worker_storage.h

Issue 377153003: Service Worker: set active worker to REDUNDANT when unregistered (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments Created 6 years, 5 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 | Annotate | Revision Log
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 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_ 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_
6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_ 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 const FindRegistrationCallback& callback); 85 const FindRegistrationCallback& callback);
86 void FindRegistrationForId(int64 registration_id, 86 void FindRegistrationForId(int64 registration_id,
87 const GURL& origin, 87 const GURL& origin,
88 const FindRegistrationCallback& callback); 88 const FindRegistrationCallback& callback);
89 89
90 // Returns info about all stored and initially installing registrations. 90 // Returns info about all stored and initially installing registrations.
91 void GetAllRegistrations(const GetAllRegistrationInfosCallback& callback); 91 void GetAllRegistrations(const GetAllRegistrationInfosCallback& callback);
92 92
93 // Commits |registration| with the installed but not activated |version| 93 // Commits |registration| with the installed but not activated |version|
94 // to storage, overwritting any pre-existing registration data for the scope. 94 // to storage, overwritting any pre-existing registration data for the scope.
95 // A pre-existing version's script resources will remain available until 95 // A pre-existing version's script resources remain available if that version
96 // it no longer controls a page, or a browser restart occurs. 96 // is live. PurgeResources should be called when it's OK to delete them.
97 void StoreRegistration( 97 void StoreRegistration(
98 ServiceWorkerRegistration* registration, 98 ServiceWorkerRegistration* registration,
99 ServiceWorkerVersion* version, 99 ServiceWorkerVersion* version,
100 const StatusCallback& callback); 100 const StatusCallback& callback);
101 101
102 // Updates the state of the registration's stored version to active. 102 // Updates the state of the registration's stored version to active.
103 void UpdateToActiveState( 103 void UpdateToActiveState(
104 ServiceWorkerRegistration* registration, 104 ServiceWorkerRegistration* registration,
105 const StatusCallback& callback); 105 const StatusCallback& callback);
106 106
107 // Deletes the registration data for |registration_id|. The script resources 107 // Deletes the registration data for |registration_id|. If the registration's
108 // for the registration's stored version will remain available until that 108 // version is live, its script resources will remain available.
109 // version no longer controls a page, or a browser restart occurs. 109 // PurgeResources should be called when it's OK to delete them.
110 void DeleteRegistration(int64 registration_id, 110 void DeleteRegistration(int64 registration_id,
111 const GURL& origin, 111 const GURL& origin,
112 const StatusCallback& callback); 112 const StatusCallback& callback);
113 113
114 scoped_ptr<ServiceWorkerResponseReader> CreateResponseReader( 114 scoped_ptr<ServiceWorkerResponseReader> CreateResponseReader(
115 int64 response_id); 115 int64 response_id);
116 scoped_ptr<ServiceWorkerResponseWriter> CreateResponseWriter( 116 scoped_ptr<ServiceWorkerResponseWriter> CreateResponseWriter(
117 int64 response_id); 117 int64 response_id);
118 118
119 // Adds |id| to the set of resources ids that are in the disk 119 // Adds |id| to the set of resources ids that are in the disk
(...skipping 16 matching lines...) Expand all
136 void NotifyInstallingRegistration( 136 void NotifyInstallingRegistration(
137 ServiceWorkerRegistration* registration); 137 ServiceWorkerRegistration* registration);
138 void NotifyDoneInstallingRegistration( 138 void NotifyDoneInstallingRegistration(
139 ServiceWorkerRegistration* registration, 139 ServiceWorkerRegistration* registration,
140 ServiceWorkerVersion* version, 140 ServiceWorkerVersion* version,
141 ServiceWorkerStatusCode status); 141 ServiceWorkerStatusCode status);
142 142
143 void Disable(); 143 void Disable();
144 bool IsDisabled() const; 144 bool IsDisabled() const;
145 145
146 // |resources| must already be on the purgeable list.
147 void PurgeResources(const ResourceList& resources);
148
146 private: 149 private:
147 friend class ServiceWorkerResourceStorageTest; 150 friend class ServiceWorkerResourceStorageTest;
148 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageTest, 151 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageTest,
152 DeleteRegistration_NoLiveVersion);
153 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageTest,
149 DeleteRegistration_WaitingVersion); 154 DeleteRegistration_WaitingVersion);
150 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageTest, 155 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageTest,
151 DeleteRegistration_ActiveVersion); 156 DeleteRegistration_ActiveVersion);
152 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageTest, 157 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageTest,
153 UpdateRegistration); 158 UpdateRegistration);
154 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageDiskTest, 159 FRIEND_TEST_ALL_PREFIXES(ServiceWorkerResourceStorageDiskTest,
155 CleanupOnRestart); 160 CleanupOnRestart);
156 161
157 struct InitialData { 162 struct InitialData {
158 int64 next_registration_id; 163 int64 next_registration_id;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 const GURL& document_url); 251 const GURL& document_url);
247 ServiceWorkerRegistration* FindInstallingRegistrationForPattern( 252 ServiceWorkerRegistration* FindInstallingRegistrationForPattern(
248 const GURL& scope); 253 const GURL& scope);
249 ServiceWorkerRegistration* FindInstallingRegistrationForId( 254 ServiceWorkerRegistration* FindInstallingRegistrationForId(
250 int64 registration_id); 255 int64 registration_id);
251 256
252 // Lazy disk_cache getter. 257 // Lazy disk_cache getter.
253 ServiceWorkerDiskCache* disk_cache(); 258 ServiceWorkerDiskCache* disk_cache();
254 void OnDiskCacheInitialized(int rv); 259 void OnDiskCacheInitialized(int rv);
255 260
256 // ServiceWorkerVersion::Listener override
257 virtual void OnNoControllees(ServiceWorkerVersion* version) OVERRIDE;
258
259 void SchedulePurgeResources(int64 version_id,
260 const std::vector<int64>& resources);
261 void StartPurgingResources(const std::vector<int64>& ids); 261 void StartPurgingResources(const std::vector<int64>& ids);
262 void StartPurgingResources(const ResourceList& resources); 262 void StartPurgingResources(const ResourceList& resources);
263 void ContinuePurgingResources(); 263 void ContinuePurgingResources();
264 void PurgeResource(int64 id); 264 void PurgeResource(int64 id);
265 void OnResourcePurged(int64 id, int rv); 265 void OnResourcePurged(int64 id, int rv);
266 266
267 // Deletes purgeable and uncommitted resources left over from the previous 267 // Deletes purgeable and uncommitted resources left over from the previous
268 // browser session. This must be called once per session before any database 268 // browser session. This must be called once per session before any database
269 // operation that may mutate the purgeable or uncommitted resource lists. 269 // operation that may mutate the purgeable or uncommitted resource lists.
270 void DeleteStaleResources(); 270 void DeleteStaleResources();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 // Only accessed on |database_task_runner_|. 344 // Only accessed on |database_task_runner_|.
345 scoped_ptr<ServiceWorkerDatabase> database_; 345 scoped_ptr<ServiceWorkerDatabase> database_;
346 346
347 scoped_refptr<base::SequencedTaskRunner> database_task_runner_; 347 scoped_refptr<base::SequencedTaskRunner> database_task_runner_;
348 scoped_refptr<base::MessageLoopProxy> disk_cache_thread_; 348 scoped_refptr<base::MessageLoopProxy> disk_cache_thread_;
349 scoped_refptr<quota::QuotaManagerProxy> quota_manager_proxy_; 349 scoped_refptr<quota::QuotaManagerProxy> quota_manager_proxy_;
350 scoped_ptr<ServiceWorkerDiskCache> disk_cache_; 350 scoped_ptr<ServiceWorkerDiskCache> disk_cache_;
351 std::deque<int64> purgeable_resource_ids_; 351 std::deque<int64> purgeable_resource_ids_;
352 bool is_purge_pending_; 352 bool is_purge_pending_;
353 bool has_checked_for_stale_resources_; 353 bool has_checked_for_stale_resources_;
354 std::map<int64, std::vector<int64> > deleted_version_resource_ids_;
355 354
356 base::WeakPtrFactory<ServiceWorkerStorage> weak_factory_; 355 base::WeakPtrFactory<ServiceWorkerStorage> weak_factory_;
357 356
358 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStorage); 357 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerStorage);
359 }; 358 };
360 359
361 } // namespace content 360 } // namespace content
362 361
363 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_ 362 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_STORAGE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698