Chromium Code Reviews| Index: content/browser/devtools/service_worker_devtools_manager.h |
| diff --git a/content/browser/devtools/service_worker_devtools_manager.h b/content/browser/devtools/service_worker_devtools_manager.h |
| index 3024e593896fe55bd5601fcc765eef2f27a58b83..d93dcdd643d2cb78d1c93f38a211e461ceb3a5a3 100644 |
| --- a/content/browser/devtools/service_worker_devtools_manager.h |
| +++ b/content/browser/devtools/service_worker_devtools_manager.h |
| @@ -10,19 +10,31 @@ |
| #include "base/basictypes.h" |
| #include "base/memory/singleton.h" |
| #include "base/memory/weak_ptr.h" |
| -#include "content/browser/devtools/worker_devtools_manager.h" |
| +#include "base/observer_list.h" |
| #include "content/browser/shared_worker/shared_worker_instance.h" |
|
dgozman
2015/03/07 20:46:40
nit: unnecessary include
pfeldman
2015/03/08 12:17:27
Done.
pfeldman
2015/03/08 12:17:27
Done.
|
| +#include "content/public/browser/devtools_agent_host.h" |
| namespace content { |
| +class DevToolsAgentHostImpl; |
| class ServiceWorkerDevToolsAgentHost; |
| class ServiceWorkerContextCore; |
| // Manages WorkerDevToolsAgentHost's for Service Workers. |
| // This class lives on UI thread. |
| -class CONTENT_EXPORT ServiceWorkerDevToolsManager |
| - : public WorkerDevToolsManager { |
| +class CONTENT_EXPORT ServiceWorkerDevToolsManager { |
| public: |
| + typedef std::pair<int, int> WorkerId; |
| + |
| + class Observer { |
| + public: |
| + virtual void WorkerCreated(DevToolsAgentHost* host) {} |
| + virtual void WorkerDestroyed(DevToolsAgentHost* host) {} |
| + |
| + protected: |
| + virtual ~Observer() {} |
| + }; |
| + |
| class ServiceWorkerIdentifier { |
| public: |
| ServiceWorkerIdentifier( |
| @@ -52,13 +64,23 @@ class CONTENT_EXPORT ServiceWorkerDevToolsManager |
| // Returns the ServiceWorkerDevToolsManager singleton. |
| static ServiceWorkerDevToolsManager* GetInstance(); |
| + DevToolsAgentHostImpl* GetDevToolsAgentHostForWorker(int worker_process_id, |
|
dgozman
2015/03/07 20:46:40
return ServiceWorkerDevToolsAgentHost*?
pfeldman
2015/03/08 12:17:27
Clients don't need it to be that specific, you onl
|
| + int worker_route_id); |
| + void AddAllAgentHosts(DevToolsAgentHost::List* result); |
| + |
| // Returns true when the worker must be paused on start because a DevTool |
| // window for the same former ServiceWorkerIdentifier is still opened or |
| // debug-on-start is enabled in chrome://serviceworker-internals. |
| bool WorkerCreated(int worker_process_id, |
| int worker_route_id, |
| const ServiceWorkerIdentifier& service_worker_id); |
| + void WorkerReadyForInspection(int worker_process_id, int worker_route_id); |
|
dgozman
2015/03/07 20:46:40
Should all this methods be public? Perhaps, "frien
pfeldman
2015/03/08 12:17:27
It is the other way around, these are the instrume
|
| void WorkerStopIgnored(int worker_process_id, int worker_route_id); |
| + void WorkerDestroyed(int worker_process_id, int worker_route_id); |
| + void RemoveInspectedWorkerData(WorkerId id); |
| + |
| + void AddObserver(Observer* observer); |
| + void RemoveObserver(Observer* observer); |
| void set_debug_service_worker_on_start(bool debug_on_start) { |
| debug_service_worker_on_start_ = debug_on_start; |
| @@ -71,12 +93,19 @@ class CONTENT_EXPORT ServiceWorkerDevToolsManager |
| friend struct DefaultSingletonTraits<ServiceWorkerDevToolsManager>; |
| friend class ServiceWorkerDevToolsAgentHost; |
| + using AgentHostMap = std::map<WorkerId, ServiceWorkerDevToolsAgentHost*>; |
| + |
| ServiceWorkerDevToolsManager(); |
| - ~ServiceWorkerDevToolsManager() override; |
| + ~ServiceWorkerDevToolsManager(); |
| AgentHostMap::iterator FindExistingWorkerAgentHost( |
| const ServiceWorkerIdentifier& service_worker_id); |
| + // Resets to its initial state as if newly created. |
| + void ResetForTesting(); |
| + |
| + ObserverList<Observer> observer_list_; |
| + AgentHostMap workers_; |
| bool debug_service_worker_on_start_; |
| DISALLOW_COPY_AND_ASSIGN(ServiceWorkerDevToolsManager); |