Index: content/browser/devtools/worker_devtools_manager.h |
diff --git a/content/browser/devtools/worker_devtools_manager.h b/content/browser/devtools/worker_devtools_manager.h |
index 910fd400e6bc4c9bafa20b63f4c05cb33260a9c3..faa8ce290cc31bf966cc691ca1b581d0d733d912 100644 |
--- a/content/browser/devtools/worker_devtools_manager.h |
+++ b/content/browser/devtools/worker_devtools_manager.h |
@@ -10,6 +10,7 @@ |
#include "base/basictypes.h" |
#include "base/memory/ref_counted.h" |
+#include "base/observer_list.h" |
#include "content/common/content_export.h" |
namespace content { |
@@ -25,23 +26,41 @@ class CONTENT_EXPORT WorkerDevToolsManager { |
public: |
typedef std::pair<int, int> WorkerId; |
+ class Observer { |
+ public: |
+ virtual void WorkerCreated(DevToolsAgentHost* host) {} |
+ virtual void WorkerDestroyed(DevToolsAgentHost* host) {} |
+ |
+ protected: |
+ virtual ~Observer() {} |
+ }; |
+ |
DevToolsAgentHostImpl* GetDevToolsAgentHostForWorker(int worker_process_id, |
int worker_route_id); |
void AddAllAgentHosts(std::vector<scoped_refptr<DevToolsAgentHost>>* result); |
void WorkerReadyForInspection(int worker_process_id, int worker_route_id); |
void WorkerDestroyed(int worker_process_id, int worker_route_id); |
+ void AddObserver(Observer* observer); |
+ void RemoveObserver(Observer* observer); |
+ |
protected: |
- typedef std::map<WorkerId, WorkerDevToolsAgentHost*> AgentHostMap; |
+ using AgentHostMap = std::map<WorkerId, WorkerDevToolsAgentHost*>; |
friend class SharedWorkerDevToolsManagerTest; |
WorkerDevToolsManager(); |
virtual ~WorkerDevToolsManager(); |
void RemoveInspectedWorkerData(WorkerId id); |
+ void WorkerCreated(const WorkerId& id, |
+ WorkerDevToolsAgentHost* host); |
void WorkerRestarted(const WorkerId& id, const AgentHostMap::iterator& it); |
AgentHostMap& workers() { return workers_; } |
private: |
+ // Resets to its initial state as if newly created. |
+ void ResetForTesting(); |
+ |
+ ObserverList<Observer> observer_list_; |
AgentHostMap workers_; |
DISALLOW_COPY_AND_ASSIGN(WorkerDevToolsManager); |
}; |