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

Unified Diff: content/browser/service_worker/embedded_worker_registry.h

Issue 238043002: Teach EmbeddedWorkerInstance to create a process when it needs one. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Handle 2 places where context_ could be NULL. Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698