Commit bc5d7887 authored by pfeldman's avatar pfeldman Committed by Commit bot

DevTools: remove DevToolsTargetDescriptor and its implementations, we are now...

DevTools: remove DevToolsTargetDescriptor and its implementations, we are now based on devtools agent hosts.

BUG=627517
TBR=this is a mechanical change

Review-Url: https://codereview.chromium.org/2273063002
Cr-Commit-Position: refs/heads/master@{#414768}
parent e73e1a1f
...@@ -10,7 +10,6 @@ ...@@ -10,7 +10,6 @@
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "base/values.h" #include "base/values.h"
#include "components/devtools_discovery/basic_target_descriptor.h"
#include "components/devtools_discovery/devtools_discovery_manager.h" #include "components/devtools_discovery/devtools_discovery_manager.h"
#include "content/public/browser/devtools_agent_host.h" #include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
...@@ -58,17 +57,14 @@ AwDevToolsDiscoveryProvider::AwDevToolsDiscoveryProvider() { ...@@ -58,17 +57,14 @@ AwDevToolsDiscoveryProvider::AwDevToolsDiscoveryProvider() {
AwDevToolsDiscoveryProvider::~AwDevToolsDiscoveryProvider() { AwDevToolsDiscoveryProvider::~AwDevToolsDiscoveryProvider() {
} }
devtools_discovery::DevToolsTargetDescriptor::List content::DevToolsAgentHost::List
AwDevToolsDiscoveryProvider::GetDescriptors() { AwDevToolsDiscoveryProvider::GetDescriptors() {
DevToolsAgentHost::List agent_hosts = DevToolsAgentHost::GetOrCreateAll(); DevToolsAgentHost::List agent_hosts = DevToolsAgentHost::GetOrCreateAll();
devtools_discovery::DevToolsTargetDescriptor::List result;
result.reserve(agent_hosts.size());
for (auto& agent_host : agent_hosts) { for (auto& agent_host : agent_hosts) {
agent_host->SetDescriptionOverride( agent_host->SetDescriptionOverride(
GetViewDescription(agent_host->GetWebContents())); GetViewDescription(agent_host->GetWebContents()));
result.push_back(new devtools_discovery::BasicTargetDescriptor(agent_host));
} }
return result; return agent_hosts;
} }
} // namespace android_webview } // namespace android_webview
...@@ -19,7 +19,7 @@ class AwDevToolsDiscoveryProvider : ...@@ -19,7 +19,7 @@ class AwDevToolsDiscoveryProvider :
~AwDevToolsDiscoveryProvider() override; ~AwDevToolsDiscoveryProvider() override;
// devtools_discovery::DevToolsDiscoveryManager::Provider implementation. // devtools_discovery::DevToolsDiscoveryManager::Provider implementation.
devtools_discovery::DevToolsTargetDescriptor::List GetDescriptors() override; content::DevToolsAgentHost::List GetDescriptors() override;
private: private:
AwDevToolsDiscoveryProvider(); AwDevToolsDiscoveryProvider();
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/ui/android/tab_model/tab_model.h" #include "chrome/browser/ui/android/tab_model/tab_model.h"
#include "chrome/browser/ui/android/tab_model/tab_model_list.h" #include "chrome/browser/ui/android/tab_model/tab_model_list.h"
#include "components/devtools_discovery/basic_target_descriptor.h"
#include "components/devtools_discovery/devtools_discovery_manager.h" #include "components/devtools_discovery/devtools_discovery_manager.h"
#include "content/public/browser/devtools_agent_host.h" #include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/devtools_agent_host_client.h" #include "content/public/browser/devtools_agent_host_client.h"
...@@ -26,7 +25,6 @@ ...@@ -26,7 +25,6 @@
using content::DevToolsAgentHost; using content::DevToolsAgentHost;
using content::WebContents; using content::WebContents;
using devtools_discovery::DevToolsTargetDescriptor;
namespace { namespace {
...@@ -164,26 +162,23 @@ class TabProxyDelegate : public content::DevToolsExternalAgentProxyDelegate, ...@@ -164,26 +162,23 @@ class TabProxyDelegate : public content::DevToolsExternalAgentProxyDelegate,
DISALLOW_COPY_AND_ASSIGN(TabProxyDelegate); DISALLOW_COPY_AND_ASSIGN(TabProxyDelegate);
}; };
std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor> scoped_refptr<content::DevToolsAgentHost> CreateNewAndroidTab(const GURL& url) {
CreateNewAndroidTab(const GURL& url) {
if (TabModelList::empty()) if (TabModelList::empty())
return std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor>(); return nullptr;
TabModel* tab_model = TabModelList::get(0); TabModel* tab_model = TabModelList::get(0);
if (!tab_model) if (!tab_model)
return std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor>(); return nullptr;
WebContents* web_contents = tab_model->CreateNewTabForDevTools(url); WebContents* web_contents = tab_model->CreateNewTabForDevTools(url);
if (!web_contents) if (!web_contents)
return std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor>(); return nullptr;
TabAndroid* tab = TabAndroid::FromWebContents(web_contents); TabAndroid* tab = TabAndroid::FromWebContents(web_contents);
if (!tab) if (!tab)
return std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor>(); return nullptr;
scoped_refptr<content::DevToolsAgentHost> host = return content::DevToolsAgentHost::Create(new TabProxyDelegate(tab));
DevToolsAgentHost::Create(new TabProxyDelegate(tab));
return base::WrapUnique(new devtools_discovery::BasicTargetDescriptor(host));
} }
} // namespace } // namespace
...@@ -194,9 +189,9 @@ DevToolsDiscoveryProviderAndroid::DevToolsDiscoveryProviderAndroid() { ...@@ -194,9 +189,9 @@ DevToolsDiscoveryProviderAndroid::DevToolsDiscoveryProviderAndroid() {
DevToolsDiscoveryProviderAndroid::~DevToolsDiscoveryProviderAndroid() { DevToolsDiscoveryProviderAndroid::~DevToolsDiscoveryProviderAndroid() {
} }
devtools_discovery::DevToolsTargetDescriptor::List content::DevToolsAgentHost::List
DevToolsDiscoveryProviderAndroid::GetDescriptors() { DevToolsDiscoveryProviderAndroid::GetDescriptors() {
devtools_discovery::DevToolsTargetDescriptor::List result; content::DevToolsAgentHost::List result;
// Enumerate existing tabs, including the ones with no WebContents. // Enumerate existing tabs, including the ones with no WebContents.
std::set<WebContents*> tab_web_contents; std::set<WebContents*> tab_web_contents;
...@@ -221,7 +216,7 @@ DevToolsDiscoveryProviderAndroid::GetDescriptors() { ...@@ -221,7 +216,7 @@ DevToolsDiscoveryProviderAndroid::GetDescriptors() {
if (tab_web_contents.find(web_contents) != tab_web_contents.end()) if (tab_web_contents.find(web_contents) != tab_web_contents.end())
continue; continue;
} }
result.push_back(new devtools_discovery::BasicTargetDescriptor(*it)); result.push_back(*it);
} }
return result; return result;
......
...@@ -17,7 +17,7 @@ class DevToolsDiscoveryProviderAndroid : ...@@ -17,7 +17,7 @@ class DevToolsDiscoveryProviderAndroid :
~DevToolsDiscoveryProviderAndroid() override; ~DevToolsDiscoveryProviderAndroid() override;
// devtools_discovery::DevToolsDiscoveryManager::Provider implementation. // devtools_discovery::DevToolsDiscoveryManager::Provider implementation.
devtools_discovery::DevToolsTargetDescriptor::List GetDescriptors() override; content::DevToolsAgentHost::List GetDescriptors() override;
private: private:
DevToolsDiscoveryProviderAndroid(); DevToolsDiscoveryProviderAndroid();
......
...@@ -118,8 +118,6 @@ static_library("devtools") { ...@@ -118,8 +118,6 @@ static_library("devtools") {
"devtools_file_system_indexer.h", "devtools_file_system_indexer.h",
"devtools_file_watcher.cc", "devtools_file_watcher.cc",
"devtools_file_watcher.h", "devtools_file_watcher.h",
"devtools_target_impl.cc",
"devtools_target_impl.h",
"devtools_targets_ui.cc", "devtools_targets_ui.cc",
"devtools_targets_ui.h", "devtools_targets_ui.h",
"devtools_toggle_action.cc", "devtools_toggle_action.cc",
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#include "chrome/browser/devtools/chrome_devtools_discovery_provider.h" #include "chrome/browser/devtools/chrome_devtools_discovery_provider.h"
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser_navigator.h" #include "chrome/browser/ui/browser_navigator.h"
#include "chrome/browser/ui/browser_navigator_params.h" #include "chrome/browser/ui/browser_navigator_params.h"
...@@ -13,20 +12,18 @@ ...@@ -13,20 +12,18 @@
namespace { namespace {
std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor> scoped_refptr<content::DevToolsAgentHost>
CreateNewChromeTab(const GURL& url) { CreateNewChromeTab(const GURL& url) {
chrome::NavigateParams params(ProfileManager::GetLastUsedProfile(), chrome::NavigateParams params(ProfileManager::GetLastUsedProfile(),
url, ui::PAGE_TRANSITION_AUTO_TOPLEVEL); url, ui::PAGE_TRANSITION_AUTO_TOPLEVEL);
params.disposition = NEW_FOREGROUND_TAB; params.disposition = NEW_FOREGROUND_TAB;
chrome::Navigate(&params); chrome::Navigate(&params);
if (!params.target_contents) if (!params.target_contents)
return std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor>(); return nullptr;
if (!params.target_contents) if (!params.target_contents)
return nullptr; return nullptr;
scoped_refptr<content::DevToolsAgentHost> host = return content::DevToolsAgentHost::GetOrCreateFor(params.target_contents);
content::DevToolsAgentHost::GetOrCreateFor(params.target_contents);
return std::unique_ptr<DevToolsTargetImpl>(new DevToolsTargetImpl(host));
} }
} // namespace } // namespace
...@@ -37,14 +34,9 @@ ChromeDevToolsDiscoveryProvider::ChromeDevToolsDiscoveryProvider() { ...@@ -37,14 +34,9 @@ ChromeDevToolsDiscoveryProvider::ChromeDevToolsDiscoveryProvider() {
ChromeDevToolsDiscoveryProvider::~ChromeDevToolsDiscoveryProvider() { ChromeDevToolsDiscoveryProvider::~ChromeDevToolsDiscoveryProvider() {
} }
devtools_discovery::DevToolsTargetDescriptor::List content::DevToolsAgentHost::List
ChromeDevToolsDiscoveryProvider::GetDescriptors() { ChromeDevToolsDiscoveryProvider::GetDescriptors() {
std::vector<DevToolsTargetImpl*> list = DevToolsTargetImpl::EnumerateAll(); return content::DevToolsAgentHost::GetOrCreateAll();
devtools_discovery::DevToolsTargetDescriptor::List result;
result.reserve(list.size());
for (auto* descriptor : list)
result.push_back(descriptor);
return result;
} }
// static // static
......
...@@ -17,7 +17,7 @@ class ChromeDevToolsDiscoveryProvider : ...@@ -17,7 +17,7 @@ class ChromeDevToolsDiscoveryProvider :
~ChromeDevToolsDiscoveryProvider() override; ~ChromeDevToolsDiscoveryProvider() override;
// devtools_discovery::DevToolsDiscoveryManager::Provider implementation. // devtools_discovery::DevToolsDiscoveryManager::Provider implementation.
devtools_discovery::DevToolsTargetDescriptor::List GetDescriptors() override; content::DevToolsAgentHost::List GetDescriptors() override;
private: private:
ChromeDevToolsDiscoveryProvider(); ChromeDevToolsDiscoveryProvider();
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#include "chrome/browser/devtools/device/adb/adb_device_provider.h" #include "chrome/browser/devtools/device/adb/adb_device_provider.h"
#include "chrome/browser/devtools/device/adb/mock_adb_server.h" #include "chrome/browser/devtools/device/adb/mock_adb_server.h"
#include "chrome/browser/devtools/device/devtools_android_bridge.h" #include "chrome/browser/devtools/device/devtools_android_bridge.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
...@@ -108,25 +107,25 @@ class AdbClientSocketTest : public InProcessBrowserTest, ...@@ -108,25 +107,25 @@ class AdbClientSocketTest : public InProcessBrowserTest,
ASSERT_EQ(1U, chrome_beta_pages.size()); ASSERT_EQ(1U, chrome_beta_pages.size());
ASSERT_EQ(2U, webview_pages.size()); ASSERT_EQ(2U, webview_pages.size());
std::unique_ptr<DevToolsTargetImpl> chrome_target( scoped_refptr<content::DevToolsAgentHost> chrome_target(
android_bridge_->CreatePageTarget(chrome_pages[0])); android_bridge_->CreatePageTarget(chrome_pages[0]));
std::unique_ptr<DevToolsTargetImpl> chrome_beta_target( scoped_refptr<content::DevToolsAgentHost> chrome_beta_target(
android_bridge_->CreatePageTarget(chrome_beta_pages[0])); android_bridge_->CreatePageTarget(chrome_beta_pages[0]));
std::unique_ptr<DevToolsTargetImpl> webview_target_0( scoped_refptr<content::DevToolsAgentHost> webview_target_0(
android_bridge_->CreatePageTarget(webview_pages[0])); android_bridge_->CreatePageTarget(webview_pages[0]));
std::unique_ptr<DevToolsTargetImpl> webview_target_1( scoped_refptr<content::DevToolsAgentHost> webview_target_1(
android_bridge_->CreatePageTarget(webview_pages[1])); android_bridge_->CreatePageTarget(webview_pages[1]));
// Check that we have non-empty description for webview pages. // Check that we have non-empty description for webview pages.
ASSERT_EQ(0U, chrome_target->GetAgentHost()->GetDescription().size()); ASSERT_EQ(0U, chrome_target->GetDescription().size());
ASSERT_EQ(0U, chrome_beta_target->GetAgentHost()->GetDescription().size()); ASSERT_EQ(0U, chrome_beta_target->GetDescription().size());
ASSERT_NE(0U, webview_target_0->GetAgentHost()->GetDescription().size()); ASSERT_NE(0U, webview_target_0->GetDescription().size());
ASSERT_NE(0U, webview_target_1->GetAgentHost()->GetDescription().size()); ASSERT_NE(0U, webview_target_1->GetDescription().size());
ASSERT_EQ(GURL("http://www.chromium.org/"), ASSERT_EQ(GURL("http://www.chromium.org/"),
chrome_target->GetAgentHost()->GetURL()); chrome_target->GetURL());
ASSERT_EQ("The Chromium Projects", ASSERT_EQ("The Chromium Projects",
chrome_target->GetAgentHost()->GetTitle()); chrome_target->GetTitle());
} }
private: private:
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
#include "chrome/browser/devtools/device/tcp_device_provider.h" #include "chrome/browser/devtools/device/tcp_device_provider.h"
#include "chrome/browser/devtools/device/usb/usb_device_provider.h" #include "chrome/browser/devtools/device/usb/usb_device_provider.h"
#include "chrome/browser/devtools/devtools_protocol.h" #include "chrome/browser/devtools/devtools_protocol.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "chrome/browser/devtools/devtools_window.h" #include "chrome/browser/devtools/devtools_window.h"
#include "chrome/browser/devtools/remote_debugging_server.h" #include "chrome/browser/devtools/remote_debugging_server.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
...@@ -602,17 +601,14 @@ DevToolsAndroidBridge::RemoteBrowser::GetParsedVersion() { ...@@ -602,17 +601,14 @@ DevToolsAndroidBridge::RemoteBrowser::GetParsedVersion() {
return result; return result;
} }
DevToolsTargetImpl* scoped_refptr<content::DevToolsAgentHost>
DevToolsAndroidBridge::CreatePageTarget(scoped_refptr<RemotePage> page) { DevToolsAndroidBridge::CreatePageTarget(scoped_refptr<RemotePage> page) {
std::string local_id = BuildUniqueTargetId(page->browser_id_, std::string local_id = BuildUniqueTargetId(page->browser_id_,
page->dict_.get()); page->dict_.get());
std::string target_path = GetTargetPath(page->dict_.get()); std::string target_path = GetTargetPath(page->dict_.get());
std::string type = GetStringProperty(page->dict_.get(), "type"); std::string type = GetStringProperty(page->dict_.get(), "type");
scoped_refptr<DevToolsAgentHost> host = return AgentHostDelegate::GetOrCreateAgentHost(
AgentHostDelegate::GetOrCreateAgentHost(this, page->browser_id_, local_id, this, page->browser_id_, local_id, target_path, type, page->dict_.get());
target_path, type,
page->dict_.get());
return new DevToolsTargetImpl(host);
} }
void DevToolsAndroidBridge::SendJsonRequest( void DevToolsAndroidBridge::SendJsonRequest(
......
...@@ -34,7 +34,6 @@ namespace content { ...@@ -34,7 +34,6 @@ namespace content {
class BrowserContext; class BrowserContext;
} }
class DevToolsTargetImpl;
class PortForwardingController; class PortForwardingController;
class Profile; class Profile;
class TCPDeviceProvider; class TCPDeviceProvider;
...@@ -204,7 +203,8 @@ class DevToolsAndroidBridge : public KeyedService { ...@@ -204,7 +203,8 @@ class DevToolsAndroidBridge : public KeyedService {
bool HasDevToolsWindow(const std::string& agent_id); bool HasDevToolsWindow(const std::string& agent_id);
// Creates new target instance owned by caller. // Creates new target instance owned by caller.
DevToolsTargetImpl* CreatePageTarget(scoped_refptr<RemotePage> browser); scoped_refptr<content::DevToolsAgentHost>
CreatePageTarget(scoped_refptr<RemotePage> browser);
using RemotePageCallback = base::Callback<void(scoped_refptr<RemotePage>)>; using RemotePageCallback = base::Callback<void(scoped_refptr<RemotePage>)>;
void OpenRemotePage(scoped_refptr<RemoteBrowser> browser, void OpenRemotePage(scoped_refptr<RemoteBrowser> browser,
......
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/devtools/devtools_window.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/tab_contents/tab_contents_iterator.h"
#include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
#include "chrome/common/extensions/extension_constants.h"
#include "components/guest_view/browser/guest_view_base.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/favicon_status.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/extension_host.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/process_manager.h"
#include "extensions/common/constants.h"
using content::BrowserThread;
using content::DevToolsAgentHost;
using content::WebContents;
DevToolsTargetImpl::~DevToolsTargetImpl() {
}
DevToolsTargetImpl::DevToolsTargetImpl(
scoped_refptr<DevToolsAgentHost> agent_host)
: devtools_discovery::BasicTargetDescriptor(agent_host) {
}
// static
std::vector<DevToolsTargetImpl*> DevToolsTargetImpl::EnumerateAll() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
std::vector<DevToolsTargetImpl*> result;
DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll();
for (DevToolsAgentHost::List::iterator it = agents.begin();
it != agents.end(); ++it) {
result.push_back(new DevToolsTargetImpl(*it));
}
return result;
}
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TARGET_IMPL_H_
#define CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TARGET_IMPL_H_
#include <memory>
#include <vector>
#include "base/callback.h"
#include "components/devtools_discovery/basic_target_descriptor.h"
class Profile;
namespace content {
class DevToolsAgentHost;
class WebContents;
}
class DevToolsTargetImpl : public devtools_discovery::BasicTargetDescriptor {
public:
explicit DevToolsTargetImpl(
scoped_refptr<content::DevToolsAgentHost> agent_host);
~DevToolsTargetImpl() override;
// Caller takes ownership of returned objects.
static std::vector<DevToolsTargetImpl*> EnumerateAll();
};
#endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TARGET_IMPL_H_
...@@ -16,10 +16,10 @@ ...@@ -16,10 +16,10 @@
#include "base/values.h" #include "base/values.h"
#include "base/version.h" #include "base/version.h"
#include "chrome/browser/devtools/device/devtools_android_bridge.h" #include "chrome/browser/devtools/device/devtools_android_bridge.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "content/public/browser/browser_child_process_observer.h" #include "content/public/browser/browser_child_process_observer.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "content/public/browser/child_process_data.h" #include "content/public/browser/child_process_data.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_registrar.h"
#include "content/public/browser/notification_service.h" #include "content/public/browser/notification_service.h"
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "net/base/escape.h" #include "net/base/escape.h"
using content::BrowserThread; using content::BrowserThread;
using content::DevToolsAgentHost;
namespace { namespace {
...@@ -173,7 +174,7 @@ private: ...@@ -173,7 +174,7 @@ private:
void ScheduleUpdate(); void ScheduleUpdate();
void UpdateTargets(); void UpdateTargets();
void SendTargets(const std::vector<DevToolsTargetImpl*>& targets); void SendTargets(const DevToolsAgentHost::List& targets);
content::NotificationRegistrar notification_registrar_; content::NotificationRegistrar notification_registrar_;
std::unique_ptr<CancelableTimer> timer_; std::unique_ptr<CancelableTimer> timer_;
...@@ -226,24 +227,22 @@ void LocalTargetsUIHandler::ScheduleUpdate() { ...@@ -226,24 +227,22 @@ void LocalTargetsUIHandler::ScheduleUpdate() {
} }
void LocalTargetsUIHandler::UpdateTargets() { void LocalTargetsUIHandler::UpdateTargets() {
SendTargets(DevToolsTargetImpl::EnumerateAll()); SendTargets(DevToolsAgentHost::GetOrCreateAll());
} }
void LocalTargetsUIHandler::SendTargets( void LocalTargetsUIHandler::SendTargets(
const std::vector<DevToolsTargetImpl*>& targets) { const content::DevToolsAgentHost::List& targets) {
base::ListValue list_value; base::ListValue list_value;
std::map<std::string, base::DictionaryValue*> id_to_descriptor; std::map<std::string, base::DictionaryValue*> id_to_descriptor;
base::STLDeleteValues(&targets_); targets_.clear();
for (DevToolsTargetImpl* target : targets) { for (scoped_refptr<DevToolsAgentHost> host : targets) {
scoped_refptr<content::DevToolsAgentHost> host = target->GetAgentHost(); targets_[host->GetId()] = host;
targets_[host->GetId()] = target; id_to_descriptor[host->GetId()] = Serialize(host);
id_to_descriptor[host->GetId()] = Serialize(*target);
} }
for (TargetMap::iterator it(targets_.begin()); it != targets_.end(); ++it) { for (auto& it : targets_) {
DevToolsTargetImpl* target = it->second; scoped_refptr<DevToolsAgentHost> host = it.second;
scoped_refptr<content::DevToolsAgentHost> host = target->GetAgentHost();
base::DictionaryValue* descriptor = id_to_descriptor[host->GetId()]; base::DictionaryValue* descriptor = id_to_descriptor[host->GetId()];
std::string parent_id = host->GetParentId(); std::string parent_id = host->GetParentId();
if (parent_id.empty() || id_to_descriptor.count(parent_id) == 0) { if (parent_id.empty() || id_to_descriptor.count(parent_id) == 0) {
...@@ -273,7 +272,7 @@ class AdbTargetsUIHandler ...@@ -273,7 +272,7 @@ class AdbTargetsUIHandler
void Open(const std::string& browser_id, const std::string& url) override; void Open(const std::string& browser_id, const std::string& url) override;
scoped_refptr<content::DevToolsAgentHost> GetBrowserAgentHost( scoped_refptr<DevToolsAgentHost> GetBrowserAgentHost(
const std::string& browser_id) override; const std::string& browser_id) override;
private: private:
...@@ -313,7 +312,7 @@ void AdbTargetsUIHandler::Open(const std::string& browser_id, ...@@ -313,7 +312,7 @@ void AdbTargetsUIHandler::Open(const std::string& browser_id,
android_bridge_->OpenRemotePage(it->second, url); android_bridge_->OpenRemotePage(it->second, url);
} }
scoped_refptr<content::DevToolsAgentHost> scoped_refptr<DevToolsAgentHost>
AdbTargetsUIHandler::GetBrowserAgentHost( AdbTargetsUIHandler::GetBrowserAgentHost(
const std::string& browser_id) { const std::string& browser_id) {
RemoteBrowsers::iterator it = remote_browsers_.find(browser_id); RemoteBrowsers::iterator it = remote_browsers_.find(browser_id);
...@@ -326,7 +325,7 @@ AdbTargetsUIHandler::GetBrowserAgentHost( ...@@ -326,7 +325,7 @@ AdbTargetsUIHandler::GetBrowserAgentHost(
void AdbTargetsUIHandler::DeviceListChanged( void AdbTargetsUIHandler::DeviceListChanged(
const DevToolsAndroidBridge::RemoteDevices& devices) { const DevToolsAndroidBridge::RemoteDevices& devices) {
remote_browsers_.clear(); remote_browsers_.clear();
base::STLDeleteValues(&targets_); targets_.clear();
if (!android_bridge_) if (!android_bridge_)
return; return;
...@@ -368,9 +367,9 @@ void AdbTargetsUIHandler::DeviceListChanged( ...@@ -368,9 +367,9 @@ void AdbTargetsUIHandler::DeviceListChanged(
remote_browsers_[browser_id] = browser; remote_browsers_[browser_id] = browser;
browser_data->Set(kAdbPagesList, page_list); browser_data->Set(kAdbPagesList, page_list);
for (const auto& page : browser->pages()) { for (const auto& page : browser->pages()) {
DevToolsTargetImpl* target = android_bridge_->CreatePageTarget(page); scoped_refptr<DevToolsAgentHost> host =
scoped_refptr<content::DevToolsAgentHost> host = target->GetAgentHost(); android_bridge_->CreatePageTarget(page);
base::DictionaryValue* target_data = Serialize(*target); base::DictionaryValue* target_data = Serialize(host);
target_data->SetBoolean( target_data->SetBoolean(
kAdbAttachedForeignField, kAdbAttachedForeignField,
host->IsAttached() && host->IsAttached() &&
...@@ -381,7 +380,7 @@ void AdbTargetsUIHandler::DeviceListChanged( ...@@ -381,7 +380,7 @@ void AdbTargetsUIHandler::DeviceListChanged(
gfx::Size screen_size = device->screen_size(); gfx::Size screen_size = device->screen_size();
target_data->SetInteger(kAdbScreenWidthField, screen_size.width()); target_data->SetInteger(kAdbScreenWidthField, screen_size.width());
target_data->SetInteger(kAdbScreenHeightField, screen_size.height()); target_data->SetInteger(kAdbScreenHeightField, screen_size.height());
targets_[host->GetId()] = target; targets_[host->GetId()] = host;
page_list->Append(target_data); page_list->Append(target_data);
} }
browser_list->Append(std::move(browser_data)); browser_list->Append(std::move(browser_data));
...@@ -404,7 +403,6 @@ DevToolsTargetsUIHandler::DevToolsTargetsUIHandler( ...@@ -404,7 +403,6 @@ DevToolsTargetsUIHandler::DevToolsTargetsUIHandler(
} }
DevToolsTargetsUIHandler::~DevToolsTargetsUIHandler() { DevToolsTargetsUIHandler::~DevToolsTargetsUIHandler() {
base::STLDeleteValues(&targets_);
} }
// static // static
...@@ -424,7 +422,7 @@ DevToolsTargetsUIHandler::CreateForAdb( ...@@ -424,7 +422,7 @@ DevToolsTargetsUIHandler::CreateForAdb(
new AdbTargetsUIHandler(callback, profile)); new AdbTargetsUIHandler(callback, profile));
} }
DevToolsTargetImpl* DevToolsTargetsUIHandler::GetTarget( scoped_refptr<DevToolsAgentHost> DevToolsTargetsUIHandler::GetTarget(
const std::string& target_id) { const std::string& target_id) {
TargetMap::iterator it = targets_.find(target_id); TargetMap::iterator it = targets_.find(target_id);
if (it != targets_.end()) if (it != targets_.end())
...@@ -436,15 +434,14 @@ void DevToolsTargetsUIHandler::Open(const std::string& browser_id, ...@@ -436,15 +434,14 @@ void DevToolsTargetsUIHandler::Open(const std::string& browser_id,
const std::string& url) { const std::string& url) {
} }
scoped_refptr<content::DevToolsAgentHost> scoped_refptr<DevToolsAgentHost>
DevToolsTargetsUIHandler::GetBrowserAgentHost(const std::string& browser_id) { DevToolsTargetsUIHandler::GetBrowserAgentHost(const std::string& browser_id) {
return NULL; return NULL;
} }
base::DictionaryValue* DevToolsTargetsUIHandler::Serialize( base::DictionaryValue* DevToolsTargetsUIHandler::Serialize(
const DevToolsTargetImpl& target) { scoped_refptr<DevToolsAgentHost> host) {
base::DictionaryValue* target_data = new base::DictionaryValue(); base::DictionaryValue* target_data = new base::DictionaryValue();
scoped_refptr<content::DevToolsAgentHost> host = target.GetAgentHost();
target_data->SetString(kTargetSourceField, source_id_); target_data->SetString(kTargetSourceField, source_id_);
target_data->SetString(kTargetIdField, host->GetId()); target_data->SetString(kTargetIdField, host->GetId());
target_data->SetString(kTargetTypeField, host->GetType()); target_data->SetString(kTargetTypeField, host->GetType());
......
...@@ -18,7 +18,6 @@ class ListValue; ...@@ -18,7 +18,6 @@ class ListValue;
class DictionaryValue; class DictionaryValue;
} }
class DevToolsTargetImpl;
class Profile; class Profile;
class DevToolsTargetsUIHandler { class DevToolsTargetsUIHandler {
...@@ -39,7 +38,8 @@ class DevToolsTargetsUIHandler { ...@@ -39,7 +38,8 @@ class DevToolsTargetsUIHandler {
const Callback& callback, const Callback& callback,
Profile* profile); Profile* profile);
DevToolsTargetImpl* GetTarget(const std::string& target_id); scoped_refptr<content::DevToolsAgentHost> GetTarget(
const std::string& target_id);
virtual void Open(const std::string& browser_id, const std::string& url); virtual void Open(const std::string& browser_id, const std::string& url);
...@@ -49,10 +49,12 @@ class DevToolsTargetsUIHandler { ...@@ -49,10 +49,12 @@ class DevToolsTargetsUIHandler {
virtual void ForceUpdate(); virtual void ForceUpdate();
protected: protected:
base::DictionaryValue* Serialize(const DevToolsTargetImpl& target); base::DictionaryValue* Serialize(
scoped_refptr<content::DevToolsAgentHost> host);
void SendSerializedTargets(const base::ListValue& list); void SendSerializedTargets(const base::ListValue& list);
typedef std::map<std::string, DevToolsTargetImpl*> TargetMap; using TargetMap =
std::map<std::string, scoped_refptr<content::DevToolsAgentHost>>;
TargetMap targets_; TargetMap targets_;
private: private:
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/devtools/devtools_file_watcher.h" #include "chrome/browser/devtools/devtools_file_watcher.h"
#include "chrome/browser/devtools/devtools_protocol.h" #include "chrome/browser/devtools/devtools_protocol.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "chrome/browser/devtools/global_confirm_info_bar.h" #include "chrome/browser/devtools/global_confirm_info_bar.h"
#include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
#include "chrome/browser/infobars/infobar_service.h" #include "chrome/browser/infobars/infobar_service.h"
...@@ -758,17 +757,18 @@ void DevToolsUIBindings::PerformActionOnRemotePage(const std::string& page_id, ...@@ -758,17 +757,18 @@ void DevToolsUIBindings::PerformActionOnRemotePage(const std::string& page_id,
const std::string& action) { const std::string& action) {
if (!remote_targets_handler_) if (!remote_targets_handler_)
return; return;
DevToolsTargetImpl* target = remote_targets_handler_->GetTarget(page_id); scoped_refptr<content::DevToolsAgentHost> host =
if (!target) remote_targets_handler_->GetTarget(page_id);
if (!host)
return; return;
if (action == kRemotePageActionInspect) if (action == kRemotePageActionInspect)
target->GetAgentHost()->Inspect(); host->Inspect();
if (action == kRemotePageActionReload) if (action == kRemotePageActionReload)
target->GetAgentHost()->Reload(); host->Reload();
if (action == kRemotePageActionActivate) if (action == kRemotePageActionActivate)
target->GetAgentHost()->Activate(); host->Activate();
if (action == kRemotePageActionClose) if (action == kRemotePageActionClose)
target->GetAgentHost()->Close(); host->Close();
} }
void DevToolsUIBindings::OpenRemotePage(const std::string& browser_id, void DevToolsUIBindings::OpenRemotePage(const std::string& browser_id,
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include "base/values.h" #include "base/values.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "chrome/browser/devtools/global_confirm_info_bar.h" #include "chrome/browser/devtools/global_confirm_info_bar.h"
#include "chrome/browser/extensions/api/debugger/debugger_api_constants.h" #include "chrome/browser/extensions/api/debugger/debugger_api_constants.h"
#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_service.h"
...@@ -678,9 +677,8 @@ const char kTargetTabIdField[] = "tabId"; ...@@ -678,9 +677,8 @@ const char kTargetTabIdField[] = "tabId";
const char kTargetExtensionIdField[] = "extensionId"; const char kTargetExtensionIdField[] = "extensionId";
const char kTargetTypeWorker[] = "worker"; const char kTargetTypeWorker[] = "worker";
base::Value* SerializeTarget(const DevToolsTargetImpl& target) { base::Value* SerializeTarget(scoped_refptr<DevToolsAgentHost> host) {
base::DictionaryValue* dictionary = new base::DictionaryValue(); base::DictionaryValue* dictionary = new base::DictionaryValue();
scoped_refptr<DevToolsAgentHost> host = target.GetAgentHost();
dictionary->SetString(kTargetIdField, host->GetId()); dictionary->SetString(kTargetIdField, host->GetId());
dictionary->SetString(kTargetTitleField, host->GetTitle()); dictionary->SetString(kTargetTitleField, host->GetTitle());
dictionary->SetBoolean(kTargetAttachedField, host->IsAttached()); dictionary->SetBoolean(kTargetAttachedField, host->IsAttached());
...@@ -718,7 +716,7 @@ DebuggerGetTargetsFunction::~DebuggerGetTargetsFunction() { ...@@ -718,7 +716,7 @@ DebuggerGetTargetsFunction::~DebuggerGetTargetsFunction() {
} }
bool DebuggerGetTargetsFunction::RunAsync() { bool DebuggerGetTargetsFunction::RunAsync() {
std::vector<DevToolsTargetImpl*> list = DevToolsTargetImpl::EnumerateAll(); content::DevToolsAgentHost::List list = DevToolsAgentHost::GetOrCreateAll();
content::BrowserThread::PostTask( content::BrowserThread::PostTask(
content::BrowserThread::UI, content::BrowserThread::UI,
FROM_HERE, FROM_HERE,
...@@ -727,11 +725,10 @@ bool DebuggerGetTargetsFunction::RunAsync() { ...@@ -727,11 +725,10 @@ bool DebuggerGetTargetsFunction::RunAsync() {
} }
void DebuggerGetTargetsFunction::SendTargetList( void DebuggerGetTargetsFunction::SendTargetList(
const std::vector<DevToolsTargetImpl*>& target_list) { const content::DevToolsAgentHost::List& target_list) {
std::unique_ptr<base::ListValue> result(new base::ListValue()); std::unique_ptr<base::ListValue> result(new base::ListValue());
for (size_t i = 0; i < target_list.size(); ++i) for (size_t i = 0; i < target_list.size(); ++i)
result->Append(SerializeTarget(*target_list[i])); result->Append(SerializeTarget(target_list[i]));
base::STLDeleteContainerPointers(target_list.begin(), target_list.end());
SetResult(std::move(result)); SetResult(std::move(result));
SendResponse(true); SendResponse(true);
} }
......
...@@ -13,19 +13,17 @@ ...@@ -13,19 +13,17 @@
#include "chrome/browser/extensions/chrome_extension_function.h" #include "chrome/browser/extensions/chrome_extension_function.h"
#include "chrome/common/extensions/api/debugger.h" #include "chrome/common/extensions/api/debugger.h"
#include "content/public/browser/devtools_agent_host.h"
using extensions::api::debugger::Debuggee; using extensions::api::debugger::Debuggee;
// Base debugger function. // Base debugger function.
class DevToolsTargetImpl;
namespace base { namespace base {
class DictionaryValue; class DictionaryValue;
} }
namespace content { namespace content {
class DevToolsAgentHost;
class WebContents; class WebContents;
} }
...@@ -104,7 +102,7 @@ class DebuggerGetTargetsFunction : public DebuggerFunction { ...@@ -104,7 +102,7 @@ class DebuggerGetTargetsFunction : public DebuggerFunction {
bool RunAsync() override; bool RunAsync() override;
private: private:
void SendTargetList(const std::vector<DevToolsTargetImpl*>& target_list); void SendTargetList(const content::DevToolsAgentHost::List& target_list);
}; };
} // namespace extensions } // namespace extensions
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "chrome/browser/devtools/devtools_targets_ui.h" #include "chrome/browser/devtools/devtools_targets_ui.h"
#include "chrome/browser/devtools/devtools_ui_bindings.h" #include "chrome/browser/devtools/devtools_ui_bindings.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
...@@ -505,9 +504,8 @@ DevToolsTargetsUIHandler* InspectUI::FindTargetHandler( ...@@ -505,9 +504,8 @@ DevToolsTargetsUIHandler* InspectUI::FindTargetHandler(
scoped_refptr<content::DevToolsAgentHost> InspectUI::FindTarget( scoped_refptr<content::DevToolsAgentHost> InspectUI::FindTarget(
const std::string& source_id, const std::string& target_id) { const std::string& source_id, const std::string& target_id) {
TargetHandlerMap::iterator it = target_handlers_.find(source_id); TargetHandlerMap::iterator it = target_handlers_.find(source_id);
DevToolsTargetImpl* target = it != target_handlers_.end() ? return it != target_handlers_.end() ?
it->second->GetTarget(target_id) : nullptr; it->second->GetTarget(target_id) : nullptr;
return target ? target->GetAgentHost() : nullptr;
} }
void InspectUI::PopulateTargets(const std::string& source, void InspectUI::PopulateTargets(const std::string& source,
......
...@@ -28,7 +28,6 @@ class DevToolsAgentHost; ...@@ -28,7 +28,6 @@ class DevToolsAgentHost;
class Browser; class Browser;
class DevToolsTargetsUIHandler; class DevToolsTargetsUIHandler;
class DevToolsTargetImpl;
class PortForwardingStatusSerializer; class PortForwardingStatusSerializer;
class InspectUI : public content::WebUIController, class InspectUI : public content::WebUIController,
......
...@@ -97,8 +97,6 @@ ...@@ -97,8 +97,6 @@
'browser/devtools/devtools_file_system_indexer.h', 'browser/devtools/devtools_file_system_indexer.h',
'browser/devtools/devtools_file_watcher.cc', 'browser/devtools/devtools_file_watcher.cc',
'browser/devtools/devtools_file_watcher.h', 'browser/devtools/devtools_file_watcher.h',
'browser/devtools/devtools_target_impl.cc',
'browser/devtools/devtools_target_impl.h',
'browser/devtools/devtools_targets_ui.cc', 'browser/devtools/devtools_targets_ui.cc',
'browser/devtools/devtools_targets_ui.h', 'browser/devtools/devtools_targets_ui.h',
'browser/devtools/devtools_toggle_action.cc', 'browser/devtools/devtools_toggle_action.cc',
......
...@@ -4,11 +4,8 @@ ...@@ -4,11 +4,8 @@
static_library("devtools_discovery") { static_library("devtools_discovery") {
sources = [ sources = [
"basic_target_descriptor.cc",
"basic_target_descriptor.h",
"devtools_discovery_manager.cc", "devtools_discovery_manager.cc",
"devtools_discovery_manager.h", "devtools_discovery_manager.h",
"devtools_target_descriptor.h",
] ]
deps = [ deps = [
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/devtools_discovery/basic_target_descriptor.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/favicon_status.h"
#include "content/public/browser/navigation_entry.h"
#include "content/public/browser/web_contents.h"
using content::DevToolsAgentHost;
namespace devtools_discovery {
BasicTargetDescriptor::BasicTargetDescriptor(
scoped_refptr<DevToolsAgentHost> agent_host)
: agent_host_(agent_host) {
}
BasicTargetDescriptor::~BasicTargetDescriptor() {
}
scoped_refptr<DevToolsAgentHost> BasicTargetDescriptor::GetAgentHost() const {
return agent_host_;
}
} // namespace devtools_discovery
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_DEVTOOLS_DISCOVERY_BASIC_TARGET_DESCRIPTOR_H_
#define COMPONENTS_DEVTOOLS_DISCOVERY_BASIC_TARGET_DESCRIPTOR_H_
#include "components/devtools_discovery/devtools_target_descriptor.h"
namespace devtools_discovery {
class BasicTargetDescriptor : public DevToolsTargetDescriptor {
public:
explicit BasicTargetDescriptor(
scoped_refptr<content::DevToolsAgentHost> agent_host);
~BasicTargetDescriptor() override;
scoped_refptr<content::DevToolsAgentHost> GetAgentHost() const override;
private:
scoped_refptr<content::DevToolsAgentHost> agent_host_;
};
} // namespace devtools_discovery
#endif // COMPONENTS_DEVTOOLS_DISCOVERY_BASIC_TARGET_DESCRIPTOR_H_
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
#include "components/devtools_discovery/devtools_discovery_manager.h" #include "components/devtools_discovery/devtools_discovery_manager.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "components/devtools_discovery/basic_target_descriptor.h"
#include "content/public/browser/devtools_agent_host.h"
using content::DevToolsAgentHost; using content::DevToolsAgentHost;
...@@ -28,16 +26,11 @@ void DevToolsDiscoveryManager::AddProvider(std::unique_ptr<Provider> provider) { ...@@ -28,16 +26,11 @@ void DevToolsDiscoveryManager::AddProvider(std::unique_ptr<Provider> provider) {
providers_.push_back(provider.release()); providers_.push_back(provider.release());
} }
DevToolsTargetDescriptor::List DevToolsDiscoveryManager::GetDescriptors() { content::DevToolsAgentHost::List DevToolsDiscoveryManager::GetDescriptors() {
if (providers_.size()) if (providers_.size())
return GetDescriptorsFromProviders(); return GetDescriptorsFromProviders();
DevToolsAgentHost::List agent_hosts = DevToolsAgentHost::GetOrCreateAll(); return DevToolsAgentHost::GetOrCreateAll();
DevToolsTargetDescriptor::List result;
result.reserve(agent_hosts.size());
for (const auto& agent_host : agent_hosts)
result.push_back(new BasicTargetDescriptor(agent_host));
return result;
} }
void DevToolsDiscoveryManager::SetCreateCallback( void DevToolsDiscoveryManager::SetCreateCallback(
...@@ -45,18 +38,18 @@ void DevToolsDiscoveryManager::SetCreateCallback( ...@@ -45,18 +38,18 @@ void DevToolsDiscoveryManager::SetCreateCallback(
create_callback_ = callback; create_callback_ = callback;
} }
std::unique_ptr<DevToolsTargetDescriptor> DevToolsDiscoveryManager::CreateNew( scoped_refptr<content::DevToolsAgentHost> DevToolsDiscoveryManager::CreateNew(
const GURL& url) { const GURL& url) {
if (create_callback_.is_null()) if (create_callback_.is_null())
return nullptr; return nullptr;
return create_callback_.Run(url); return create_callback_.Run(url);
} }
DevToolsTargetDescriptor::List content::DevToolsAgentHost::List
DevToolsDiscoveryManager::GetDescriptorsFromProviders() { DevToolsDiscoveryManager::GetDescriptorsFromProviders() {
DevToolsTargetDescriptor::List result; content::DevToolsAgentHost::List result;
for (auto* provider : providers_) { for (auto* provider : providers_) {
DevToolsTargetDescriptor::List partial = provider->GetDescriptors(); content::DevToolsAgentHost::List partial = provider->GetDescriptors();
result.insert(result.begin(), partial.begin(), partial.end()); result.insert(result.begin(), partial.begin(), partial.end());
} }
return result; return result;
...@@ -74,15 +67,14 @@ DevToolsDiscoveryManager::HandleCreateTargetCommand( ...@@ -74,15 +67,14 @@ DevToolsDiscoveryManager::HandleCreateTargetCommand(
method == "Browser.createTarget" && method == "Browser.createTarget" &&
command_dict->GetDictionary("params", &params_dict) && command_dict->GetDictionary("params", &params_dict) &&
params_dict->GetString("url", &url)) { params_dict->GetString("url", &url)) {
std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor> descriptor = scoped_refptr<content::DevToolsAgentHost> host = CreateNew(GURL(url));
CreateNew(GURL(url)); if (!host)
if (!descriptor)
return nullptr; return nullptr;
std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue()); std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue());
result->SetInteger("id", id); result->SetInteger("id", id);
std::unique_ptr<base::DictionaryValue> cmd_result( std::unique_ptr<base::DictionaryValue> cmd_result(
new base::DictionaryValue()); new base::DictionaryValue());
cmd_result->SetString("targetId", descriptor->GetAgentHost()->GetId()); cmd_result->SetString("targetId", host->GetId());
result->Set("result", std::move(cmd_result)); result->Set("result", std::move(cmd_result));
return result; return result;
} }
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/singleton.h" #include "base/memory/singleton.h"
#include "base/values.h" #include "base/values.h"
#include "components/devtools_discovery/devtools_target_descriptor.h" #include "content/public/browser/devtools_agent_host.h"
namespace devtools_discovery { namespace devtools_discovery {
...@@ -21,13 +21,11 @@ class DevToolsDiscoveryManager { ...@@ -21,13 +21,11 @@ class DevToolsDiscoveryManager {
public: public:
virtual ~Provider() {} virtual ~Provider() {}
// Caller takes ownership of created descriptors. virtual content::DevToolsAgentHost::List GetDescriptors() = 0;
virtual DevToolsTargetDescriptor::List GetDescriptors() = 0;
}; };
using CreateCallback = using CreateCallback = base::Callback<
base::Callback<std::unique_ptr<DevToolsTargetDescriptor>( scoped_refptr<content::DevToolsAgentHost>(const GURL& url)>;
const GURL& url)>;
// Returns single instance of this class. The instance is destroyed on the // Returns single instance of this class. The instance is destroyed on the
// browser main loop exit so this method MUST NOT be called after that point. // browser main loop exit so this method MUST NOT be called after that point.
...@@ -35,10 +33,9 @@ class DevToolsDiscoveryManager { ...@@ -35,10 +33,9 @@ class DevToolsDiscoveryManager {
void AddProvider(std::unique_ptr<Provider> provider); void AddProvider(std::unique_ptr<Provider> provider);
void SetCreateCallback(const CreateCallback& callback); void SetCreateCallback(const CreateCallback& callback);
// Caller takes ownership of created descriptors. // Caller takes ownership of created descriptors.
DevToolsTargetDescriptor::List GetDescriptors(); content::DevToolsAgentHost::List GetDescriptors();
std::unique_ptr<DevToolsTargetDescriptor> CreateNew(const GURL& url); scoped_refptr<content::DevToolsAgentHost> CreateNew(const GURL& url);
// Handles Browser.createTarget only. // Handles Browser.createTarget only.
std::unique_ptr<base::DictionaryValue> HandleCreateTargetCommand( std::unique_ptr<base::DictionaryValue> HandleCreateTargetCommand(
...@@ -49,7 +46,7 @@ class DevToolsDiscoveryManager { ...@@ -49,7 +46,7 @@ class DevToolsDiscoveryManager {
DevToolsDiscoveryManager(); DevToolsDiscoveryManager();
~DevToolsDiscoveryManager(); ~DevToolsDiscoveryManager();
DevToolsTargetDescriptor::List GetDescriptorsFromProviders(); content::DevToolsAgentHost::List GetDescriptorsFromProviders();
std::vector<Provider*> providers_; std::vector<Provider*> providers_;
CreateCallback create_callback_; CreateCallback create_callback_;
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_DEVTOOLS_DISCOVERY_DEVTOOLS_TARGET_DESCRIPTOR_H_
#define COMPONENTS_DEVTOOLS_DISCOVERY_DEVTOOLS_TARGET_DESCRIPTOR_H_
#include <string>
#include <vector>
#include "base/memory/ref_counted.h"
#include "base/time/time.h"
#include "url/gurl.h"
namespace content {
class DevToolsAgentHost;
}
namespace devtools_discovery {
// DevToolsTargetDescriptor provides information about devtools target
// and can be used to manipulate the target and query its details.
// Instantiation and discovery of DevToolsTargetDescriptor instances
// is the responsibility of DevToolsDiscoveryManager.
class DevToolsTargetDescriptor {
public:
using List = std::vector<DevToolsTargetDescriptor*>;
virtual ~DevToolsTargetDescriptor() {}
// Returns the agent host for this target.
virtual scoped_refptr<content::DevToolsAgentHost> GetAgentHost() const = 0;
};
} // namespace devtools_discovery
#endif // COMPONENTS_DEVTOOLS_DISCOVERY_DEVTOOLS_TARGET_DESCRIPTOR_H_
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include "components/devtools_http_handler/devtools_http_handler.h" #include "components/devtools_http_handler/devtools_http_handler.h"
#include "components/devtools_http_handler/devtools_http_handler_delegate.h" #include "components/devtools_http_handler/devtools_http_handler_delegate.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/devtools_external_agent_proxy_delegate.h" #include "content/public/browser/devtools_external_agent_proxy_delegate.h"
#include "content/public/common/url_constants.h" #include "content/public/common/url_constants.h"
#include "content/public/common/user_agent.h" #include "content/public/common/user_agent.h"
...@@ -46,7 +45,6 @@ ...@@ -46,7 +45,6 @@
using content::BrowserThread; using content::BrowserThread;
using content::DevToolsAgentHost; using content::DevToolsAgentHost;
using content::DevToolsAgentHostClient; using content::DevToolsAgentHostClient;
using devtools_discovery::DevToolsTargetDescriptor;
namespace devtools_http_handler { namespace devtools_http_handler {
...@@ -322,10 +320,9 @@ class DevToolsAgentHostClientImpl : public DevToolsAgentHostClient { ...@@ -322,10 +320,9 @@ class DevToolsAgentHostClientImpl : public DevToolsAgentHostClient {
scoped_refptr<DevToolsAgentHost> agent_host_; scoped_refptr<DevToolsAgentHost> agent_host_;
}; };
static bool TimeComparator(const DevToolsTargetDescriptor* desc1, static bool TimeComparator(scoped_refptr<DevToolsAgentHost> host1,
const DevToolsTargetDescriptor* desc2) { scoped_refptr<DevToolsAgentHost> host2) {
return desc1->GetAgentHost()->GetLastActivityTime() > return host1->GetLastActivityTime() > host2->GetLastActivityTime();
desc2->GetAgentHost()->GetLastActivityTime();
} }
// DevToolsHttpHandler::ServerSocketFactory ---------------------------------- // DevToolsHttpHandler::ServerSocketFactory ----------------------------------
...@@ -345,8 +342,6 @@ DevToolsHttpHandler::ServerSocketFactory::CreateForTethering( ...@@ -345,8 +342,6 @@ DevToolsHttpHandler::ServerSocketFactory::CreateForTethering(
DevToolsHttpHandler::~DevToolsHttpHandler() { DevToolsHttpHandler::~DevToolsHttpHandler() {
TerminateOnUI(thread_, server_wrapper_, socket_factory_); TerminateOnUI(thread_, server_wrapper_, socket_factory_);
base::STLDeleteValues(&descriptor_map_);
base::STLDeleteValues(&connection_to_client_);
} }
GURL DevToolsHttpHandler::GetFrontendURL(const std::string& path) { GURL DevToolsHttpHandler::GetFrontendURL(const std::string& path) {
...@@ -579,15 +574,15 @@ void DevToolsHttpHandler::OnJsonRequest( ...@@ -579,15 +574,15 @@ void DevToolsHttpHandler::OnJsonRequest(
if (command == "list") { if (command == "list") {
std::string host = info.headers["host"]; std::string host = info.headers["host"];
DevToolsTargetDescriptor::List descriptors = DevToolsAgentHost::List agent_hosts =
devtools_discovery::DevToolsDiscoveryManager::GetInstance()-> devtools_discovery::DevToolsDiscoveryManager::GetInstance()->
GetDescriptors(); GetDescriptors();
std::sort(descriptors.begin(), descriptors.end(), TimeComparator); std::sort(agent_hosts.begin(), agent_hosts.end(), TimeComparator);
base::STLDeleteValues(&descriptor_map_); agent_host_map_.clear();
base::ListValue list_value; base::ListValue list_value;
for (DevToolsTargetDescriptor* descriptor : descriptors) { for (auto& agent_host : agent_hosts) {
descriptor_map_[descriptor->GetAgentHost()->GetId()] = descriptor; agent_host_map_[agent_host->GetId()] = agent_host;
list_value.Append(SerializeDescriptor(*descriptor, host)); list_value.Append(SerializeDescriptor(agent_host, host));
} }
SendJson(connection_id, net::HTTP_OK, &list_value, std::string()); SendJson(connection_id, net::HTTP_OK, &list_value, std::string());
return; return;
...@@ -599,10 +594,10 @@ void DevToolsHttpHandler::OnJsonRequest( ...@@ -599,10 +594,10 @@ void DevToolsHttpHandler::OnJsonRequest(
net::UnescapeRule::PATH_SEPARATORS)); net::UnescapeRule::PATH_SEPARATORS));
if (!url.is_valid()) if (!url.is_valid())
url = GURL(url::kAboutBlankURL); url = GURL(url::kAboutBlankURL);
std::unique_ptr<DevToolsTargetDescriptor> descriptor = scoped_refptr<DevToolsAgentHost> agent_host =
devtools_discovery::DevToolsDiscoveryManager::GetInstance()->CreateNew( devtools_discovery::DevToolsDiscoveryManager::GetInstance()->CreateNew(
url); url);
if (!descriptor) { if (!agent_host) {
SendJson(connection_id, SendJson(connection_id,
net::HTTP_INTERNAL_SERVER_ERROR, net::HTTP_INTERNAL_SERVER_ERROR,
NULL, NULL,
...@@ -611,16 +606,16 @@ void DevToolsHttpHandler::OnJsonRequest( ...@@ -611,16 +606,16 @@ void DevToolsHttpHandler::OnJsonRequest(
} }
std::string host = info.headers["host"]; std::string host = info.headers["host"];
std::unique_ptr<base::DictionaryValue> dictionary( std::unique_ptr<base::DictionaryValue> dictionary(
SerializeDescriptor(*descriptor.get(), host)); SerializeDescriptor(agent_host, host));
SendJson(connection_id, net::HTTP_OK, dictionary.get(), std::string()); SendJson(connection_id, net::HTTP_OK, dictionary.get(), std::string());
const std::string target_id = descriptor->GetAgentHost()->GetId(); const std::string target_id = agent_host->GetId();
descriptor_map_[target_id] = descriptor.release(); agent_host_map_[target_id] = agent_host;
return; return;
} }
if (command == "activate" || command == "close") { if (command == "activate" || command == "close") {
DevToolsTargetDescriptor* descriptor = GetDescriptor(target_id); scoped_refptr<DevToolsAgentHost> agent_host = GetAgentHost(target_id);
if (!descriptor) { if (!agent_host) {
SendJson(connection_id, SendJson(connection_id,
net::HTTP_NOT_FOUND, net::HTTP_NOT_FOUND,
NULL, NULL,
...@@ -629,7 +624,7 @@ void DevToolsHttpHandler::OnJsonRequest( ...@@ -629,7 +624,7 @@ void DevToolsHttpHandler::OnJsonRequest(
} }
if (command == "activate") { if (command == "activate") {
if (descriptor->GetAgentHost()->Activate()) { if (agent_host->Activate()) {
SendJson(connection_id, net::HTTP_OK, NULL, "Target activated"); SendJson(connection_id, net::HTTP_OK, NULL, "Target activated");
} else { } else {
SendJson(connection_id, SendJson(connection_id,
...@@ -641,7 +636,7 @@ void DevToolsHttpHandler::OnJsonRequest( ...@@ -641,7 +636,7 @@ void DevToolsHttpHandler::OnJsonRequest(
} }
if (command == "close") { if (command == "close") {
if (descriptor->GetAgentHost()->Close()) { if (agent_host->Close()) {
SendJson(connection_id, net::HTTP_OK, NULL, "Target is closing"); SendJson(connection_id, net::HTTP_OK, NULL, "Target is closing");
} else { } else {
SendJson(connection_id, SendJson(connection_id,
...@@ -659,20 +654,18 @@ void DevToolsHttpHandler::OnJsonRequest( ...@@ -659,20 +654,18 @@ void DevToolsHttpHandler::OnJsonRequest(
return; return;
} }
DevToolsTargetDescriptor* DevToolsHttpHandler::GetDescriptor( scoped_refptr<DevToolsAgentHost> DevToolsHttpHandler::GetAgentHost(
const std::string& target_id) { const std::string& target_id) {
DescriptorMap::const_iterator it = descriptor_map_.find(target_id); DescriptorMap::const_iterator it = agent_host_map_.find(target_id);
if (it == descriptor_map_.end()) return it != agent_host_map_.end() ? it->second : nullptr;
return nullptr;
return it->second;
} }
void DevToolsHttpHandler::OnThumbnailRequest( void DevToolsHttpHandler::OnThumbnailRequest(
int connection_id, const std::string& target_id) { int connection_id, const std::string& target_id) {
DevToolsTargetDescriptor* descriptor = GetDescriptor(target_id); scoped_refptr<DevToolsAgentHost> agent_host = GetAgentHost(target_id);
GURL page_url; GURL page_url;
if (descriptor) if (agent_host)
page_url = descriptor->GetAgentHost()->GetURL(); page_url = agent_host->GetURL();
std::string data = delegate_->GetPageThumbnailData(page_url); std::string data = delegate_->GetPageThumbnailData(page_url);
if (!data.empty()) if (!data.empty())
Send200(connection_id, data, "image/png"); Send200(connection_id, data, "image/png");
...@@ -731,10 +724,8 @@ void DevToolsHttpHandler::OnWebSocketRequest( ...@@ -731,10 +724,8 @@ void DevToolsHttpHandler::OnWebSocketRequest(
} }
std::string target_id = request.path.substr(strlen(kPageUrlPrefix)); std::string target_id = request.path.substr(strlen(kPageUrlPrefix));
DevToolsTargetDescriptor* descriptor = GetDescriptor(target_id); scoped_refptr<DevToolsAgentHost> agent = GetAgentHost(target_id);
scoped_refptr<DevToolsAgentHost> agent = if (!agent) {
descriptor ? descriptor->GetAgentHost() : nullptr;
if (!agent.get()) {
Send500(connection_id, "No such target id: " + target_id); Send500(connection_id, "No such target id: " + target_id);
return; return;
} }
...@@ -897,11 +888,9 @@ void DevToolsHttpHandler::AcceptWebSocket( ...@@ -897,11 +888,9 @@ void DevToolsHttpHandler::AcceptWebSocket(
} }
base::DictionaryValue* DevToolsHttpHandler::SerializeDescriptor( base::DictionaryValue* DevToolsHttpHandler::SerializeDescriptor(
const DevToolsTargetDescriptor& descriptor, scoped_refptr<DevToolsAgentHost> agent_host,
const std::string& host) { const std::string& host) {
base::DictionaryValue* dictionary = new base::DictionaryValue; base::DictionaryValue* dictionary = new base::DictionaryValue;
scoped_refptr<content::DevToolsAgentHost> agent_host =
descriptor.GetAgentHost();
std::string id = agent_host->GetId(); std::string id = agent_host->GetId();
dictionary->SetString(kTargetIdField, id); dictionary->SetString(kTargetIdField, id);
std::string parent_id = agent_host->GetParentId(); std::string parent_id = agent_host->GetParentId();
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "components/devtools_discovery/devtools_target_descriptor.h" #include "content/public/browser/devtools_agent_host.h"
#include "net/http/http_status_code.h" #include "net/http/http_status_code.h"
class GURL; class GURL;
...@@ -103,7 +103,7 @@ class DevToolsHttpHandler { ...@@ -103,7 +103,7 @@ class DevToolsHttpHandler {
ServerSocketFactory* socket_factory, ServerSocketFactory* socket_factory,
std::unique_ptr<net::IPEndPoint> ip_address); std::unique_ptr<net::IPEndPoint> ip_address);
devtools_discovery::DevToolsTargetDescriptor* GetDescriptor( scoped_refptr<content::DevToolsAgentHost> GetAgentHost(
const std::string& target_id); const std::string& target_id);
void SendJson(int connection_id, void SendJson(int connection_id,
...@@ -124,7 +124,7 @@ class DevToolsHttpHandler { ...@@ -124,7 +124,7 @@ class DevToolsHttpHandler {
const std::string& host); const std::string& host);
base::DictionaryValue* SerializeDescriptor( base::DictionaryValue* SerializeDescriptor(
const devtools_discovery::DevToolsTargetDescriptor& descriptor, scoped_refptr<content::DevToolsAgentHost> agent_host,
const std::string& host); const std::string& host);
// The thread used by the devtools handler to run server socket. // The thread used by the devtools handler to run server socket.
...@@ -139,8 +139,8 @@ class DevToolsHttpHandler { ...@@ -139,8 +139,8 @@ class DevToolsHttpHandler {
const std::unique_ptr<DevToolsHttpHandlerDelegate> delegate_; const std::unique_ptr<DevToolsHttpHandlerDelegate> delegate_;
ServerSocketFactory* socket_factory_; ServerSocketFactory* socket_factory_;
using DescriptorMap = using DescriptorMap =
std::map<std::string, devtools_discovery::DevToolsTargetDescriptor*>; std::map<std::string, scoped_refptr<content::DevToolsAgentHost>>;
DescriptorMap descriptor_map_; DescriptorMap agent_host_map_;
base::WeakPtrFactory<DevToolsHttpHandler> weak_factory_; base::WeakPtrFactory<DevToolsHttpHandler> weak_factory_;
DISALLOW_COPY_AND_ASSIGN(DevToolsHttpHandler); DISALLOW_COPY_AND_ASSIGN(DevToolsHttpHandler);
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "components/devtools_discovery/basic_target_descriptor.h"
#include "components/devtools_discovery/devtools_discovery_manager.h" #include "components/devtools_discovery/devtools_discovery_manager.h"
#include "components/devtools_http_handler/devtools_http_handler.h" #include "components/devtools_http_handler/devtools_http_handler.h"
#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_context.h"
...@@ -135,14 +134,13 @@ CreateSocketFactory() { ...@@ -135,14 +134,13 @@ CreateSocketFactory() {
#endif #endif
} }
std::unique_ptr<devtools_discovery::DevToolsTargetDescriptor> scoped_refptr<content::DevToolsAgentHost>
CreateNewShellTarget(BrowserContext* browser_context, const GURL& url) { CreateNewShellTarget(BrowserContext* browser_context, const GURL& url) {
Shell* shell = Shell::CreateNewWindow(browser_context, Shell* shell = Shell::CreateNewWindow(browser_context,
url, url,
nullptr, nullptr,
gfx::Size()); gfx::Size());
return base::WrapUnique(new devtools_discovery::BasicTargetDescriptor( return DevToolsAgentHost::GetOrCreateFor(shell->web_contents());
DevToolsAgentHost::GetOrCreateFor(shell->web_contents())));
} }
// ShellDevToolsDelegate ---------------------------------------------------- // ShellDevToolsDelegate ----------------------------------------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment