| 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..ecb3712d9e04f9e8168e7d31230b3f02b2f4c645 100644
|
| --- a/content/browser/devtools/service_worker_devtools_manager.h
|
| +++ b/content/browser/devtools/service_worker_devtools_manager.h
|
| @@ -10,19 +10,30 @@
|
| #include "base/basictypes.h"
|
| #include "base/memory/singleton.h"
|
| #include "base/memory/weak_ptr.h"
|
| -#include "content/browser/devtools/worker_devtools_manager.h"
|
| -#include "content/browser/shared_worker/shared_worker_instance.h"
|
| +#include "base/observer_list.h"
|
| +#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 +63,23 @@ class CONTENT_EXPORT ServiceWorkerDevToolsManager
|
| // Returns the ServiceWorkerDevToolsManager singleton.
|
| static ServiceWorkerDevToolsManager* GetInstance();
|
|
|
| + DevToolsAgentHostImpl* GetDevToolsAgentHostForWorker(int worker_process_id,
|
| + 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);
|
| 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 +92,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);
|
|
|