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

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

Issue 360123002: ServiceWorker: some more groundwork in support of the update process (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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_VERSION_H_ 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_
6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_ 6 #define CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 20 matching lines...) Expand all
31 class ServiceWorkerContextCore; 31 class ServiceWorkerContextCore;
32 class ServiceWorkerProviderHost; 32 class ServiceWorkerProviderHost;
33 class ServiceWorkerRegistration; 33 class ServiceWorkerRegistration;
34 class ServiceWorkerVersionInfo; 34 class ServiceWorkerVersionInfo;
35 35
36 // This class corresponds to a specific version of a ServiceWorker 36 // This class corresponds to a specific version of a ServiceWorker
37 // script for a given pattern. When a script is upgraded, there may be 37 // script for a given pattern. When a script is upgraded, there may be
38 // more than one ServiceWorkerVersion "running" at a time, but only 38 // more than one ServiceWorkerVersion "running" at a time, but only
39 // one of them is active. This class connects the actual script with a 39 // one of them is active. This class connects the actual script with a
40 // running worker. 40 // running worker.
41 //
42 // is_shutdown_ detects the live-ness of the object itself. If the object is
43 // shut down, then it is in the process of being deleted from memory.
44 // This happens when a version is replaced as well as at browser shutdown.
45 class CONTENT_EXPORT ServiceWorkerVersion 41 class CONTENT_EXPORT ServiceWorkerVersion
46 : NON_EXPORTED_BASE(public base::RefCounted<ServiceWorkerVersion>), 42 : NON_EXPORTED_BASE(public base::RefCounted<ServiceWorkerVersion>),
47 public EmbeddedWorkerInstance::Listener { 43 public EmbeddedWorkerInstance::Listener {
48 public: 44 public:
49 typedef base::Callback<void(ServiceWorkerStatusCode)> StatusCallback; 45 typedef base::Callback<void(ServiceWorkerStatusCode)> StatusCallback;
50 typedef base::Callback<void(ServiceWorkerStatusCode, 46 typedef base::Callback<void(ServiceWorkerStatusCode,
51 const IPC::Message& message)> MessageCallback; 47 const IPC::Message& message)> MessageCallback;
52 typedef base::Callback<void(ServiceWorkerStatusCode, 48 typedef base::Callback<void(ServiceWorkerStatusCode,
53 ServiceWorkerFetchEventResult, 49 ServiceWorkerFetchEventResult,
54 const ServiceWorkerResponse&)> FetchCallback; 50 const ServiceWorkerResponse&)> FetchCallback;
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // These are expected to be called when a renderer process host for the 194 // These are expected to be called when a renderer process host for the
199 // same-origin as for this ServiceWorkerVersion is created. The added 195 // same-origin as for this ServiceWorkerVersion is created. The added
200 // processes are used to run an in-renderer embedded worker. 196 // processes are used to run an in-renderer embedded worker.
201 void AddProcessToWorker(int process_id); 197 void AddProcessToWorker(int process_id);
202 void RemoveProcessFromWorker(int process_id); 198 void RemoveProcessFromWorker(int process_id);
203 199
204 // Returns true if this has at least one process to run. 200 // Returns true if this has at least one process to run.
205 bool HasProcessToRun() const; 201 bool HasProcessToRun() const;
206 202
207 // Adds and removes |provider_host| as a controllee of this ServiceWorker. 203 // Adds and removes |provider_host| as a controllee of this ServiceWorker.
204 // A potential controllee is a host having the version as its .installing
205 // or .waiting version.
208 void AddControllee(ServiceWorkerProviderHost* provider_host); 206 void AddControllee(ServiceWorkerProviderHost* provider_host);
209 void RemoveControllee(ServiceWorkerProviderHost* provider_host); 207 void RemoveControllee(ServiceWorkerProviderHost* provider_host);
210 void AddWaitingControllee(ServiceWorkerProviderHost* provider_host); 208 void AddPotentialControllee(ServiceWorkerProviderHost* provider_host);
211 void RemoveWaitingControllee(ServiceWorkerProviderHost* provider_host); 209 void RemovePotentialControllee(ServiceWorkerProviderHost* provider_host);
212 210
213 // Returns if it has controllee. 211 // Returns if it has controllee.
214 bool HasControllee() const { return !controllee_map_.empty(); } 212 bool HasControllee() const { return !controllee_map_.empty(); }
215 213
216 // Adds and removes Listeners. 214 // Adds and removes Listeners.
217 void AddListener(Listener* listener); 215 void AddListener(Listener* listener);
218 void RemoveListener(Listener* listener); 216 void RemoveListener(Listener* listener);
219 217
220 ServiceWorkerScriptCacheMap* script_cache_map() { return &script_cache_map_; } 218 ServiceWorkerScriptCacheMap* script_cache_map() { return &script_cache_map_; }
221 EmbeddedWorkerInstance* embedded_worker() { return embedded_worker_.get(); } 219 EmbeddedWorkerInstance* embedded_worker() { return embedded_worker_.get(); }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 base::OneShotTimer<ServiceWorkerVersion> update_timer_; 289 base::OneShotTimer<ServiceWorkerVersion> update_timer_;
292 290
293 base::WeakPtrFactory<ServiceWorkerVersion> weak_factory_; 291 base::WeakPtrFactory<ServiceWorkerVersion> weak_factory_;
294 292
295 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerVersion); 293 DISALLOW_COPY_AND_ASSIGN(ServiceWorkerVersion);
296 }; 294 };
297 295
298 } // namespace content 296 } // namespace content
299 297
300 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_ 298 #endif // CONTENT_BROWSER_SERVICE_WORKER_SERVICE_WORKER_VERSION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698