Index: content/browser/devtools/devtools_agent_host_impl.cc |
diff --git a/content/browser/devtools/devtools_agent_host_impl.cc b/content/browser/devtools/devtools_agent_host_impl.cc |
index 055b4c4e2db8e3ce5bc57a1fbaf40d37bcbb9a1d..97a3b97347d2c16cab9033469703554b8b481d27 100644 |
--- a/content/browser/devtools/devtools_agent_host_impl.cc |
+++ b/content/browser/devtools/devtools_agent_host_impl.cc |
@@ -26,10 +26,14 @@ namespace { |
typedef std::map<std::string, DevToolsAgentHostImpl*> Instances; |
base::LazyInstance<Instances>::Leaky g_instances = LAZY_INSTANCE_INITIALIZER; |
-typedef std::vector<const DevToolsAgentHost::AgentStateCallback*> |
- AgentStateCallbacks; |
+using AgentStateCallbacks = |
+ std::vector<const DevToolsAgentHost::AgentStateCallback*>; |
base::LazyInstance<AgentStateCallbacks>::Leaky g_callbacks = |
LAZY_INSTANCE_INITIALIZER; |
+using DiscoveryCallbacks = |
+ std::vector<DevToolsAgentHost::DiscoveryCallback>; |
+base::LazyInstance<DiscoveryCallbacks>::Leaky g_providers = |
+ LAZY_INSTANCE_INITIALIZER; |
} // namespace |
char DevToolsAgentHost::kTypePage[] = "page"; |
@@ -41,6 +45,12 @@ char DevToolsAgentHost::kTypeBrowser[] = "browser"; |
char DevToolsAgentHost::kTypeOther[] = "other"; |
// static |
+DevToolsManagerDelegate* DevToolsAgentHost::GetDevToolsManagerDelegate() { |
+ DevToolsManager* manager = DevToolsManager::GetInstance(); |
+ return manager->delegate(); |
+} |
+ |
+// static |
std::string DevToolsAgentHost::GetProtocolVersion() { |
return std::string(devtools::kProtocolVersion); |
} |
@@ -51,6 +61,12 @@ bool DevToolsAgentHost::IsSupportedProtocolVersion(const std::string& version) { |
} |
// static |
+void DevToolsAgentHost::AddDiscoveryProvider( |
+ const DiscoveryCallback& callback) { |
+ g_providers.Get().push_back(callback); |
+} |
+ |
+// static |
DevToolsAgentHost::List DevToolsAgentHost::GetOrCreateAll() { |
List result; |
SharedWorkerDevToolsAgentHost::List shared_list; |
@@ -67,6 +83,16 @@ DevToolsAgentHost::List DevToolsAgentHost::GetOrCreateAll() { |
return result; |
} |
+// static |
+DevToolsAgentHost::List DevToolsAgentHost::DiscoverAllHosts() { |
+ content::DevToolsAgentHost::List result; |
+ for (auto& provider : g_providers.Get()) { |
+ content::DevToolsAgentHost::List partial = provider.Run(); |
+ result.insert(result.begin(), partial.begin(), partial.end()); |
+ } |
+ return result; |
+} |
+ |
// Called on the UI thread. |
// static |
scoped_refptr<DevToolsAgentHost> DevToolsAgentHost::GetForWorker( |