Index: content/browser/service_worker/embedded_worker_registry.h |
diff --git a/content/browser/service_worker/embedded_worker_registry.h b/content/browser/service_worker/embedded_worker_registry.h |
index 8350f82712156ee6bbb473257041756930bf43d7..5c12111bb22a1666219bba580198ee275c659a4a 100644 |
--- a/content/browser/service_worker/embedded_worker_registry.h |
+++ b/content/browser/service_worker/embedded_worker_registry.h |
@@ -7,6 +7,7 @@ |
#include <map> |
#include <set> |
+#include <vector> |
#include "base/basictypes.h" |
#include "base/memory/ref_counted.h" |
@@ -16,6 +17,7 @@ |
#include "content/common/content_export.h" |
#include "content/common/service_worker/service_worker_status_code.h" |
+class EmbeddedWorkerMsg_StartWorker; |
class GURL; |
namespace IPC { |
@@ -36,6 +38,8 @@ class ServiceWorkerContextCore; |
class CONTENT_EXPORT EmbeddedWorkerRegistry |
: public NON_EXPORTED_BASE(base::RefCounted<EmbeddedWorkerRegistry>) { |
public: |
+ typedef base::Callback<void(ServiceWorkerStatusCode)> StatusCallback; |
+ |
explicit EmbeddedWorkerRegistry( |
base::WeakPtr<ServiceWorkerContextCore> context); |
@@ -46,14 +50,18 @@ class CONTENT_EXPORT EmbeddedWorkerRegistry |
scoped_ptr<EmbeddedWorkerInstance> CreateWorker(); |
// Called from EmbeddedWorkerInstance, relayed to the child process. |
- ServiceWorkerStatusCode StartWorker(int process_id, |
- int embedded_worker_id, |
- int64 service_worker_version_id, |
- const GURL& scope, |
- const GURL& script_url); |
+ void StartWorker(const std::vector<int>& process_ids, |
+ int embedded_worker_id, |
+ int64 service_worker_version_id, |
+ const GURL& scope, |
+ const GURL& script_url, |
+ const StatusCallback& callback); |
ServiceWorkerStatusCode StopWorker(int process_id, |
int embedded_worker_id); |
+ // Stop all active workers, even if they're handling events. |
+ void Shutdown(); |
+ |
// Called back from EmbeddedWorker in the child process, relayed via |
// ServiceWorkerDispatcherHost. |
void OnWorkerStarted(int process_id, int thread_id, int embedded_worker_id); |
@@ -85,6 +93,14 @@ class CONTENT_EXPORT EmbeddedWorkerRegistry |
typedef std::map<int, IPC::Sender*> ProcessToSenderMap; |
~EmbeddedWorkerRegistry(); |
+ |
+ void StartWorkerWithProcessId( |
+ int embedded_worker_id, |
+ scoped_ptr<EmbeddedWorkerMsg_StartWorker> message, |
+ const StatusCallback& callback, |
+ ServiceWorkerStatusCode status, |
+ int process_id); |
+ |
ServiceWorkerStatusCode Send(int process_id, IPC::Message* message); |
// RemoveWorker is called when EmbeddedWorkerInstance is destructed. |