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

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

Issue 1221503003: Add a mojo ServiceRegistry to embedded workers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add comment Created 5 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
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_EMBEDDED_WORKER_INSTANCE_H_ 5 #ifndef CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_INSTANCE_H_
6 #define CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_INSTANCE_H_ 6 #define CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_INSTANCE_H_
7 7
8 #include <map> 8 #include <map>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 19 matching lines...) Expand all
30 struct EmbeddedWorkerMsg_StartWorker_Params; 30 struct EmbeddedWorkerMsg_StartWorker_Params;
31 31
32 namespace IPC { 32 namespace IPC {
33 class Message; 33 class Message;
34 } 34 }
35 35
36 namespace content { 36 namespace content {
37 37
38 class EmbeddedWorkerRegistry; 38 class EmbeddedWorkerRegistry;
39 class MessagePortMessageFilter; 39 class MessagePortMessageFilter;
40 class ServiceRegistry;
41 class ServiceRegistryImpl;
40 class ServiceWorkerContextCore; 42 class ServiceWorkerContextCore;
41 struct ServiceWorkerFetchRequest; 43 struct ServiceWorkerFetchRequest;
42 44
43 // This gives an interface to control one EmbeddedWorker instance, which 45 // This gives an interface to control one EmbeddedWorker instance, which
44 // may be 'in-waiting' or running in one of the child processes added by 46 // may be 'in-waiting' or running in one of the child processes added by
45 // AddProcessReference(). 47 // AddProcessReference().
46 class CONTENT_EXPORT EmbeddedWorkerInstance { 48 class CONTENT_EXPORT EmbeddedWorkerInstance {
47 public: 49 public:
48 typedef base::Callback<void(ServiceWorkerStatusCode)> StatusCallback; 50 typedef base::Callback<void(ServiceWorkerStatusCode)> StatusCallback;
49 enum Status { 51 enum Status {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 // Stops the worker if the worker is not being debugged (i.e. devtools is 115 // Stops the worker if the worker is not being debugged (i.e. devtools is
114 // not attached). This method is called by a stop-worker timer to kill 116 // not attached). This method is called by a stop-worker timer to kill
115 // idle workers. 117 // idle workers.
116 void StopIfIdle(); 118 void StopIfIdle();
117 119
118 // Sends |message| to the embedded worker running in the child process. 120 // Sends |message| to the embedded worker running in the child process.
119 // It is invalid to call this while the worker is not in STARTING or RUNNING 121 // It is invalid to call this while the worker is not in STARTING or RUNNING
120 // status. 122 // status.
121 ServiceWorkerStatusCode SendMessage(const IPC::Message& message); 123 ServiceWorkerStatusCode SendMessage(const IPC::Message& message);
122 124
125 // Returns the ServiceRegistry for this worker. It is invalid to call this
126 // when the worker is not in STARTING or RUNNING status.
127 ServiceRegistry* GetServiceRegistry();
128
123 void ResumeAfterDownload(); 129 void ResumeAfterDownload();
124 130
125 int embedded_worker_id() const { return embedded_worker_id_; } 131 int embedded_worker_id() const { return embedded_worker_id_; }
126 Status status() const { return status_; } 132 Status status() const { return status_; }
127 StartingPhase starting_phase() const { 133 StartingPhase starting_phase() const {
128 DCHECK_EQ(STARTING, status()); 134 DCHECK_EQ(STARTING, status());
129 return starting_phase_; 135 return starting_phase_;
130 } 136 }
131 int process_id() const { return process_id_; } 137 int process_id() const { return process_id_; }
132 int thread_id() const { return thread_id_; } 138 int thread_id() const { return thread_id_; }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 240
235 base::WeakPtr<ServiceWorkerContextCore> context_; 241 base::WeakPtr<ServiceWorkerContextCore> context_;
236 scoped_refptr<EmbeddedWorkerRegistry> registry_; 242 scoped_refptr<EmbeddedWorkerRegistry> registry_;
237 const int embedded_worker_id_; 243 const int embedded_worker_id_;
238 Status status_; 244 Status status_;
239 StartingPhase starting_phase_; 245 StartingPhase starting_phase_;
240 246
241 // Current running information. -1 indicates the worker is not running. 247 // Current running information. -1 indicates the worker is not running.
242 int process_id_; 248 int process_id_;
243 int thread_id_; 249 int thread_id_;
250 scoped_ptr<ServiceRegistryImpl> service_registry_;
244 251
245 // Whether devtools is attached or not. 252 // Whether devtools is attached or not.
246 bool devtools_attached_; 253 bool devtools_attached_;
247 254
248 // True if the script load request accessed the network. If the script was 255 // True if the script load request accessed the network. If the script was
249 // served from HTTPCache or ServiceWorkerDatabase this value is false. 256 // served from HTTPCache or ServiceWorkerDatabase this value is false.
250 bool network_accessed_for_script_; 257 bool network_accessed_for_script_;
251 258
252 StatusCallback start_callback_; 259 StatusCallback start_callback_;
253 ListenerList listener_list_; 260 ListenerList listener_list_;
254 scoped_ptr<DevToolsProxy> devtools_proxy_; 261 scoped_ptr<DevToolsProxy> devtools_proxy_;
255 262
256 base::TimeTicks start_timing_; 263 base::TimeTicks start_timing_;
257 264
258 base::WeakPtrFactory<EmbeddedWorkerInstance> weak_factory_; 265 base::WeakPtrFactory<EmbeddedWorkerInstance> weak_factory_;
259 266
260 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerInstance); 267 DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerInstance);
261 }; 268 };
262 269
263 } // namespace content 270 } // namespace content
264 271
265 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_INSTANCE_H_ 272 #endif // CONTENT_BROWSER_SERVICE_WORKER_EMBEDDED_WORKER_INSTANCE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698