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

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

Issue 261753008: Call EmbeddedWorkerDevToolsManager::ServiceWorkerCreated, WorkerContextStarted and WorkerDestroyed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add explicit Created 6 years, 7 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_instance.h
diff --git a/content/browser/service_worker/embedded_worker_instance.h b/content/browser/service_worker/embedded_worker_instance.h
index f9d382c27748f208785ccf7bbe00f62f1f5ed4c5..952fb8ae611358bf2f9add2ff2c07dd09b9e1f49 100644
--- a/content/browser/service_worker/embedded_worker_instance.h
+++ b/content/browser/service_worker/embedded_worker_instance.h
@@ -13,12 +13,14 @@
#include "base/gtest_prod_util.h"
#include "base/logging.h"
#include "base/memory/ref_counted.h"
+#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
#include "base/strings/string16.h"
#include "content/common/content_export.h"
#include "content/common/service_worker/service_worker_status_code.h"
+#include "url/gurl.h"
-class GURL;
+struct EmbeddedWorkerMsg_StartWorker_Params;
namespace IPC {
class Message;
@@ -27,6 +29,7 @@ class Message;
namespace content {
class EmbeddedWorkerRegistry;
+class ServiceWorkerContextCore;
struct ServiceWorkerFetchRequest;
// This gives an interface to control one EmbeddedWorker instance, which
@@ -94,9 +97,6 @@ class CONTENT_EXPORT EmbeddedWorkerInstance {
Status status() const { return status_; }
int process_id() const { return process_id_; }
int thread_id() const { return thread_id_; }
- int worker_devtools_agent_route_id() const {
- return worker_devtools_agent_route_id_;
- }
void AddListener(Listener* listener);
void RemoveListener(Listener* listener);
@@ -111,14 +111,28 @@ class CONTENT_EXPORT EmbeddedWorkerInstance {
// Constructor is called via EmbeddedWorkerRegistry::CreateWorker().
// This instance holds a ref of |registry|.
- EmbeddedWorkerInstance(EmbeddedWorkerRegistry* registry,
+ EmbeddedWorkerInstance(base::WeakPtr<ServiceWorkerContextCore> context,
int embedded_worker_id);
- // Called back from EmbeddedWorkerRegistry after Start() passes control to the
- // UI thread to acquire a reference to the process.
- void RecordProcessId(int process_id,
- ServiceWorkerStatusCode status,
- int worker_devtools_agent_route_id);
+ // Called back from ServiceWorkerProcessManager after Start() passes control
+ // to the UI thread to acquire a reference to the process.
+ static void RunProcessAllocated(
+ base::WeakPtr<EmbeddedWorkerInstance> instance,
+ base::WeakPtr<ServiceWorkerContextCore> context,
+ scoped_ptr<EmbeddedWorkerMsg_StartWorker_Params> params,
+ const EmbeddedWorkerInstance::StatusCallback& callback,
+ ServiceWorkerStatusCode status,
+ int process_id);
+ void ProcessAllocated(scoped_ptr<EmbeddedWorkerMsg_StartWorker_Params> params,
+ const StatusCallback& callback,
+ int process_id,
+ ServiceWorkerStatusCode status);
+ // Called back after ProcessAllocated() passes control to the UI thread to
+ // register to WorkerDevToolsManager.
+ void SendStartWorker(scoped_ptr<EmbeddedWorkerMsg_StartWorker_Params> params,
+ const StatusCallback& callback,
+ int worker_devtools_agent_route_id,
+ bool pause_on_start);
// Called back from Registry when the worker instance has ack'ed that
// it finished loading the script.
@@ -163,6 +177,7 @@ class CONTENT_EXPORT EmbeddedWorkerInstance {
std::vector<int> SortProcesses(
const std::vector<int>& possible_process_ids) const;
+ base::WeakPtr<ServiceWorkerContextCore> context_;
scoped_refptr<EmbeddedWorkerRegistry> registry_;
const int embedded_worker_id_;
Status status_;
@@ -175,6 +190,8 @@ class CONTENT_EXPORT EmbeddedWorkerInstance {
ProcessRefMap process_refs_;
ListenerList listener_list_;
+ base::WeakPtrFactory<EmbeddedWorkerInstance> weak_factory_;
+
DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerInstance);
};

Powered by Google App Engine
This is Rietveld 408576698