Commit cb088d0b authored by dgozman's avatar dgozman Committed by Commit bot

[DevTools] Migrate chrome to devtools_discovery.

BUG=476496

Review URL: https://codereview.chromium.org/1109483003

Cr-Commit-Position: refs/heads/master@{#327267}
parent 596da6ef
...@@ -148,6 +148,7 @@ ...@@ -148,6 +148,7 @@
#include "chrome/browser/android/dev_tools_discovery_provider_android.h" #include "chrome/browser/android/dev_tools_discovery_provider_android.h"
#include "chrome/browser/metrics/thread_watcher_android.h" #include "chrome/browser/metrics/thread_watcher_android.h"
#else #else
#include "chrome/browser/devtools/chrome_devtools_discovery_provider.h"
#include "chrome/browser/feedback/feedback_profile_observer.h" #include "chrome/browser/feedback/feedback_profile_observer.h"
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
...@@ -1097,6 +1098,8 @@ void ChromeBrowserMainParts::PostProfileInit() { ...@@ -1097,6 +1098,8 @@ void ChromeBrowserMainParts::PostProfileInit() {
#if defined(OS_ANDROID) #if defined(OS_ANDROID)
DevToolsDiscoveryProviderAndroid::Install(); DevToolsDiscoveryProviderAndroid::Install();
#else
ChromeDevToolsDiscoveryProvider::Install();
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
LaunchDevToolsHandlerIfNeeded(parsed_command_line()); LaunchDevToolsHandlerIfNeeded(parsed_command_line());
......
...@@ -77,6 +77,8 @@ static_library("devtools") { ...@@ -77,6 +77,8 @@ static_library("devtools") {
":webrtc_device_provider_resources", ":webrtc_device_provider_resources",
] ]
sources += [ sources += [
"chrome_devtools_discovery_provider.cc",
"chrome_devtools_discovery_provider.h",
"chrome_devtools_manager_delegate.cc", "chrome_devtools_manager_delegate.cc",
"chrome_devtools_manager_delegate.h", "chrome_devtools_manager_delegate.h",
"device/adb/adb_client_socket.cc", "device/adb/adb_client_socket.cc",
......
include_rules = [ include_rules = [
"+components/devtools_discovery",
"+components/devtools_http_handler", "+components/devtools_http_handler",
] ]
// 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 "chrome/browser/devtools/chrome_devtools_discovery_provider.h"
#include "chrome/browser/devtools/devtools_target_impl.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser_navigator.h"
namespace {
scoped_ptr<devtools_discovery::DevToolsTargetDescriptor>
CreateNewChromeTab(const GURL& url) {
chrome::NavigateParams params(ProfileManager::GetLastUsedProfile(),
url, ui::PAGE_TRANSITION_AUTO_TOPLEVEL);
params.disposition = NEW_FOREGROUND_TAB;
chrome::Navigate(&params);
if (!params.target_contents)
return scoped_ptr<devtools_discovery::DevToolsTargetDescriptor>();
return DevToolsTargetImpl::CreateForTab(params.target_contents).Pass();
}
} // namespace
ChromeDevToolsDiscoveryProvider::ChromeDevToolsDiscoveryProvider() {
}
ChromeDevToolsDiscoveryProvider::~ChromeDevToolsDiscoveryProvider() {
}
devtools_discovery::DevToolsTargetDescriptor::List
ChromeDevToolsDiscoveryProvider::GetDescriptors() {
std::vector<DevToolsTargetImpl*> list = DevToolsTargetImpl::EnumerateAll();
devtools_discovery::DevToolsTargetDescriptor::List result;
result.reserve(list.size());
for (const auto& descriptor : list)
result.push_back(descriptor);
return result;
}
// static
void ChromeDevToolsDiscoveryProvider::Install() {
devtools_discovery::DevToolsDiscoveryManager* discovery_manager =
devtools_discovery::DevToolsDiscoveryManager::GetInstance();
discovery_manager->AddProvider(
make_scoped_ptr(new ChromeDevToolsDiscoveryProvider()));
discovery_manager->SetCreateCallback(base::Bind(&CreateNewChromeTab));
}
// 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 CHROME_BROWSER_DEVTOOLS_CHROME_DEVTOOLS_DISCOVERY_PROVIDER_H_
#define CHROME_BROWSER_DEVTOOLS_CHROME_DEVTOOLS_DISCOVERY_PROVIDER_H_
#include "components/devtools_discovery/devtools_discovery_manager.h"
class ChromeDevToolsDiscoveryProvider :
public devtools_discovery::DevToolsDiscoveryManager::Provider {
public:
// Installs provider to devtools_discovery.
static void Install();
~ChromeDevToolsDiscoveryProvider() override;
// devtools_discovery::DevToolsDiscoveryManager::Provider implementation.
devtools_discovery::DevToolsTargetDescriptor::List GetDescriptors() override;
private:
ChromeDevToolsDiscoveryProvider();
DISALLOW_COPY_AND_ASSIGN(ChromeDevToolsDiscoveryProvider);
};
#endif // CHROME_BROWSER_DEVTOOLS_CHROME_DEVTOOLS_DISCOVERY_PROVIDER_H_
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_iterator.h" #include "chrome/browser/ui/browser_iterator.h"
#include "components/devtools_discovery/devtools_discovery_manager.h"
#include "components/history/core/browser/top_sites.h" #include "components/history/core/browser/top_sites.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_agent_host.h"
...@@ -66,18 +67,16 @@ std::string ChromeDevToolsManagerDelegate::GetPageThumbnailData( ...@@ -66,18 +67,16 @@ std::string ChromeDevToolsManagerDelegate::GetPageThumbnailData(
scoped_ptr<content::DevToolsTarget> scoped_ptr<content::DevToolsTarget>
ChromeDevToolsManagerDelegate::CreateNewTarget(const GURL& url) { ChromeDevToolsManagerDelegate::CreateNewTarget(const GURL& url) {
chrome::NavigateParams params(ProfileManager::GetLastUsedProfile(), return devtools_discovery::DevToolsDiscoveryManager::GetInstance()->
url, ui::PAGE_TRANSITION_AUTO_TOPLEVEL); CreateNew(url);
params.disposition = NEW_FOREGROUND_TAB;
chrome::Navigate(&params);
if (!params.target_contents)
return scoped_ptr<content::DevToolsTarget>();
return scoped_ptr<content::DevToolsTarget>(
DevToolsTargetImpl::CreateForWebContents(params.target_contents, true));
} }
void ChromeDevToolsManagerDelegate::EnumerateTargets(TargetCallback callback) { void ChromeDevToolsManagerDelegate::EnumerateTargets(TargetCallback callback) {
DevToolsTargetImpl::EnumerateAllTargets( TargetList targets;
*reinterpret_cast<DevToolsTargetImpl::Callback*>(&callback)); devtools_discovery::DevToolsDiscoveryManager* discovery_manager =
devtools_discovery::DevToolsDiscoveryManager::GetInstance();
for (const auto& descriptor : discovery_manager->GetDescriptors())
targets.push_back(descriptor);
callback.Run(targets);
} }
...@@ -13,10 +13,10 @@ ...@@ -13,10 +13,10 @@
#include "chrome/browser/ui/webui/extensions/extension_icon_source.h" #include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
#include "chrome/common/extensions/extension_constants.h" #include "chrome/common/extensions/extension_constants.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/favicon_status.h" #include "content/public/browser/favicon_status.h"
#include "content/public/browser/navigation_entry.h" #include "content/public/browser/navigation_entry.h"
#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "extensions/browser/extension_host.h" #include "extensions/browser/extension_host.h"
#include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_registry.h"
...@@ -26,9 +26,7 @@ ...@@ -26,9 +26,7 @@
using content::BrowserThread; using content::BrowserThread;
using content::DevToolsAgentHost; using content::DevToolsAgentHost;
using content::RenderViewHost;
using content::WebContents; using content::WebContents;
using content::WorkerService;
const char DevToolsTargetImpl::kTargetTypeApp[] = "app"; const char DevToolsTargetImpl::kTargetTypeApp[] = "app";
const char DevToolsTargetImpl::kTargetTypeBackgroundPage[] = "background_page"; const char DevToolsTargetImpl::kTargetTypeBackgroundPage[] = "background_page";
...@@ -47,8 +45,7 @@ class WebContentsTarget : public DevToolsTargetImpl { ...@@ -47,8 +45,7 @@ class WebContentsTarget : public DevToolsTargetImpl {
public: public:
WebContentsTarget(WebContents* web_contents, bool is_tab); WebContentsTarget(WebContents* web_contents, bool is_tab);
// DevToolsTargetImpl overrides: // DevToolsTargetImpl overrides.
WebContents* GetWebContents() const override;
int GetTabId() const override; int GetTabId() const override;
std::string GetExtensionId() const override; std::string GetExtensionId() const override;
void Inspect(Profile* profile) const override; void Inspect(Profile* profile) const override;
...@@ -63,12 +60,6 @@ WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab) ...@@ -63,12 +60,6 @@ WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab)
tab_id_(-1) { tab_id_(-1) {
set_type(kTargetTypeOther); set_type(kTargetTypeOther);
content::NavigationController& controller = web_contents->GetController();
content::NavigationEntry* entry = controller.GetActiveEntry();
if (entry != NULL && entry->GetURL().is_valid())
set_favicon_url(entry->GetFavicon().url);
set_last_activity_time(web_contents->GetLastActiveTime());
extensions::GuestViewBase* guest = extensions::GuestViewBase* guest =
extensions::GuestViewBase::FromWebContents(web_contents); extensions::GuestViewBase::FromWebContents(web_contents);
WebContents* guest_contents = guest ? guest->embedder_web_contents() : NULL; WebContents* guest_contents = guest ? guest->embedder_web_contents() : NULL;
...@@ -112,10 +103,6 @@ WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab) ...@@ -112,10 +103,6 @@ WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab)
ExtensionIconSet::MATCH_BIGGER, false, NULL)); ExtensionIconSet::MATCH_BIGGER, false, NULL));
} }
WebContents* WebContentsTarget::GetWebContents() const {
return GetAgentHost()->GetWebContents();
}
int WebContentsTarget::GetTabId() const { int WebContentsTarget::GetTabId() const {
return tab_id_; return tab_id_;
} }
...@@ -190,58 +177,7 @@ DevToolsTargetImpl::~DevToolsTargetImpl() { ...@@ -190,58 +177,7 @@ DevToolsTargetImpl::~DevToolsTargetImpl() {
DevToolsTargetImpl::DevToolsTargetImpl( DevToolsTargetImpl::DevToolsTargetImpl(
scoped_refptr<DevToolsAgentHost> agent_host) scoped_refptr<DevToolsAgentHost> agent_host)
: agent_host_(agent_host), : devtools_discovery::BasicTargetDescriptor(agent_host) {
title_(agent_host->GetTitle()),
url_(agent_host->GetURL()) {
}
std::string DevToolsTargetImpl::GetParentId() const {
return parent_id_;
}
std::string DevToolsTargetImpl::GetId() const {
return agent_host_->GetId();
}
std::string DevToolsTargetImpl::GetType() const {
return type_;
}
std::string DevToolsTargetImpl::GetTitle() const {
return title_;
}
std::string DevToolsTargetImpl::GetDescription() const {
return description_;
}
GURL DevToolsTargetImpl::GetURL() const {
return url_;
}
GURL DevToolsTargetImpl::GetFaviconURL() const {
return favicon_url_;
}
base::TimeTicks DevToolsTargetImpl::GetLastActivityTime() const {
return last_activity_time_;
}
scoped_refptr<content::DevToolsAgentHost>
DevToolsTargetImpl::GetAgentHost() const {
return agent_host_;
}
bool DevToolsTargetImpl::IsAttached() const {
return agent_host_->IsAttached();
}
bool DevToolsTargetImpl::Activate() const {
return agent_host_->Activate();
}
bool DevToolsTargetImpl::Close() const {
return agent_host_->Close();
} }
int DevToolsTargetImpl::GetTabId() const { int DevToolsTargetImpl::GetTabId() const {
...@@ -249,7 +185,7 @@ int DevToolsTargetImpl::GetTabId() const { ...@@ -249,7 +185,7 @@ int DevToolsTargetImpl::GetTabId() const {
} }
WebContents* DevToolsTargetImpl::GetWebContents() const { WebContents* DevToolsTargetImpl::GetWebContents() const {
return NULL; return GetAgentHost()->GetWebContents();
} }
std::string DevToolsTargetImpl::GetExtensionId() const { std::string DevToolsTargetImpl::GetExtensionId() const {
...@@ -263,22 +199,21 @@ void DevToolsTargetImpl::Reload() const { ...@@ -263,22 +199,21 @@ void DevToolsTargetImpl::Reload() const {
} }
// static // static
scoped_ptr<DevToolsTargetImpl> DevToolsTargetImpl::CreateForWebContents( scoped_ptr<DevToolsTargetImpl> DevToolsTargetImpl::CreateForTab(
content::WebContents* web_contents, content::WebContents* web_contents) {
bool is_tab) {
return scoped_ptr<DevToolsTargetImpl>( return scoped_ptr<DevToolsTargetImpl>(
new WebContentsTarget(web_contents, is_tab)); new WebContentsTarget(web_contents, true));
} }
// static // static
void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) { std::vector<DevToolsTargetImpl*> DevToolsTargetImpl::EnumerateAll() {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
std::set<WebContents*> tab_web_contents; std::set<WebContents*> tab_web_contents;
for (TabContentsIterator it; !it.done(); it.Next()) for (TabContentsIterator it; !it.done(); it.Next())
tab_web_contents.insert(*it); tab_web_contents.insert(*it);
DevToolsTargetImpl::List result; std::vector<DevToolsTargetImpl*> result;
DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll(); DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll();
for (DevToolsAgentHost::List::iterator it = agents.begin(); for (DevToolsAgentHost::List::iterator it = agents.begin();
it != agents.end(); ++it) { it != agents.end(); ++it) {
...@@ -304,6 +239,5 @@ void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) { ...@@ -304,6 +239,5 @@ void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) {
break; break;
} }
} }
return result;
callback.Run(result);
} }
...@@ -8,18 +8,16 @@ ...@@ -8,18 +8,16 @@
#include <vector> #include <vector>
#include "base/callback.h" #include "base/callback.h"
#include "content/public/browser/devtools_target.h" #include "components/devtools_discovery/basic_target_descriptor.h"
#include "content/public/browser/worker_service.h"
class Profile; class Profile;
namespace content { namespace content {
class DevToolsAgentHost; class DevToolsAgentHost;
class RenderViewHost;
class WebContents; class WebContents;
} }
class DevToolsTargetImpl : public content::DevToolsTarget { class DevToolsTargetImpl : public devtools_discovery::BasicTargetDescriptor {
public: public:
static const char kTargetTypeApp[]; static const char kTargetTypeApp[];
static const char kTargetTypeBackgroundPage[]; static const char kTargetTypeBackgroundPage[];
...@@ -34,23 +32,9 @@ class DevToolsTargetImpl : public content::DevToolsTarget { ...@@ -34,23 +32,9 @@ class DevToolsTargetImpl : public content::DevToolsTarget {
scoped_refptr<content::DevToolsAgentHost> agent_host); scoped_refptr<content::DevToolsAgentHost> agent_host);
~DevToolsTargetImpl() override; ~DevToolsTargetImpl() override;
// content::DevToolsTarget overrides:
std::string GetId() const override;
std::string GetParentId() const override;
std::string GetType() const override;
std::string GetTitle() const override;
std::string GetDescription() const override;
GURL GetURL() const override;
GURL GetFaviconURL() const override;
base::TimeTicks GetLastActivityTime() const override;
scoped_refptr<content::DevToolsAgentHost> GetAgentHost() const override;
bool IsAttached() const override;
bool Activate() const override;
bool Close() const override;
// Returns the WebContents associated with the target on NULL if there is // Returns the WebContents associated with the target on NULL if there is
// not any. // not any.
virtual content::WebContents* GetWebContents() const; content::WebContents* GetWebContents() const;
// Returns the tab id if the target is associated with a tab, -1 otherwise. // Returns the tab id if the target is associated with a tab, -1 otherwise.
virtual int GetTabId() const; virtual int GetTabId() const;
...@@ -65,35 +49,12 @@ class DevToolsTargetImpl : public content::DevToolsTarget { ...@@ -65,35 +49,12 @@ class DevToolsTargetImpl : public content::DevToolsTarget {
// Reload the target page. // Reload the target page.
virtual void Reload() const; virtual void Reload() const;
// Creates a new target associated with WebContents. // Creates a new target associated with tab.
static scoped_ptr<DevToolsTargetImpl> CreateForWebContents( static scoped_ptr<DevToolsTargetImpl> CreateForTab(
content::WebContents* web_contents, content::WebContents* web_contents);
bool is_tab);
void set_parent_id(const std::string& parent_id) { parent_id_ = parent_id; }
void set_type(const std::string& type) { type_ = type; }
void set_title(const std::string& title) { title_ = title; }
void set_description(const std::string& desc) { description_ = desc; }
void set_url(const GURL& url) { url_ = url; }
void set_favicon_url(const GURL& url) { favicon_url_ = url; }
void set_last_activity_time(const base::TimeTicks& time) {
last_activity_time_ = time;
}
typedef std::vector<DevToolsTargetImpl*> List;
typedef base::Callback<void(const List&)> Callback;
static void EnumerateAllTargets(Callback callback);
private: // Caller takes ownership of returned objects.
scoped_refptr<content::DevToolsAgentHost> agent_host_; static std::vector<DevToolsTargetImpl*> EnumerateAll();
std::string parent_id_;
std::string type_;
std::string title_;
std::string description_;
GURL url_;
GURL favicon_url_;
base::TimeTicks last_activity_time_;
}; };
#endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TARGET_IMPL_H_ #endif // CHROME_BROWSER_DEVTOOLS_DEVTOOLS_TARGET_IMPL_H_
...@@ -169,7 +169,7 @@ private: ...@@ -169,7 +169,7 @@ private:
void ScheduleUpdate(); void ScheduleUpdate();
void UpdateTargets(); void UpdateTargets();
void SendTargets(const DevToolsTargetImpl::List& targets); void SendTargets(const std::vector<DevToolsTargetImpl*>& targets);
content::NotificationRegistrar notification_registrar_; content::NotificationRegistrar notification_registrar_;
scoped_ptr<CancelableTimer> timer_; scoped_ptr<CancelableTimer> timer_;
...@@ -222,20 +222,16 @@ void LocalTargetsUIHandler::ScheduleUpdate() { ...@@ -222,20 +222,16 @@ void LocalTargetsUIHandler::ScheduleUpdate() {
} }
void LocalTargetsUIHandler::UpdateTargets() { void LocalTargetsUIHandler::UpdateTargets() {
DevToolsTargetImpl::EnumerateAllTargets(base::Bind( SendTargets(DevToolsTargetImpl::EnumerateAll());
&LocalTargetsUIHandler::SendTargets,
weak_factory_.GetWeakPtr()));
} }
void LocalTargetsUIHandler::SendTargets( void LocalTargetsUIHandler::SendTargets(
const DevToolsTargetImpl::List& targets) { const std::vector<DevToolsTargetImpl*>& 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;
STLDeleteValues(&targets_); STLDeleteValues(&targets_);
for (DevToolsTargetImpl::List::const_iterator it = targets.begin(); for (DevToolsTargetImpl* target : targets) {
it != targets.end(); ++it) {
DevToolsTargetImpl* target = *it;
targets_[target->GetId()] = target; targets_[target->GetId()] = target;
id_to_descriptor[target->GetId()] = Serialize(*target); id_to_descriptor[target->GetId()] = Serialize(*target);
} }
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "chrome/grit/generated_resources.h" #include "chrome/grit/generated_resources.h"
#include "components/infobars/core/confirm_infobar_delegate.h" #include "components/infobars/core/confirm_infobar_delegate.h"
#include "components/infobars/core/infobar.h" #include "components/infobars/core/infobar.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/devtools_agent_host.h" #include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/notification_service.h" #include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_source.h" #include "content/public/browser/notification_source.h"
...@@ -732,8 +733,11 @@ DebuggerGetTargetsFunction::~DebuggerGetTargetsFunction() { ...@@ -732,8 +733,11 @@ DebuggerGetTargetsFunction::~DebuggerGetTargetsFunction() {
} }
bool DebuggerGetTargetsFunction::RunAsync() { bool DebuggerGetTargetsFunction::RunAsync() {
DevToolsTargetImpl::EnumerateAllTargets( std::vector<DevToolsTargetImpl*> list = DevToolsTargetImpl::EnumerateAll();
base::Bind(&DebuggerGetTargetsFunction::SendTargetList, this)); content::BrowserThread::PostTask(
content::BrowserThread::UI,
FROM_HERE,
base::Bind(&DebuggerGetTargetsFunction::SendTargetList, this, list));
return true; return true;
} }
......
...@@ -57,6 +57,8 @@ ...@@ -57,6 +57,8 @@
'sources': [ 'sources': [
'<(SHARED_INTERMEDIATE_DIR)/chrome/grit/webrtc_device_provider_resources_map.cc', '<(SHARED_INTERMEDIATE_DIR)/chrome/grit/webrtc_device_provider_resources_map.cc',
'<(SHARED_INTERMEDIATE_DIR)/chrome/grit/webrtc_device_provider_resources_map.h', '<(SHARED_INTERMEDIATE_DIR)/chrome/grit/webrtc_device_provider_resources_map.h',
'browser/devtools/chrome_devtools_discovery_provider.cc',
'browser/devtools/chrome_devtools_discovery_provider.h',
'browser/devtools/chrome_devtools_manager_delegate.cc', 'browser/devtools/chrome_devtools_manager_delegate.cc',
'browser/devtools/chrome_devtools_manager_delegate.h', 'browser/devtools/chrome_devtools_manager_delegate.h',
'browser/devtools/device/adb/adb_client_socket.cc', 'browser/devtools/device/adb/adb_client_socket.cc',
......
...@@ -18,9 +18,30 @@ const char BasicTargetDescriptor::kTypeServiceWorker[] = "service_worker"; ...@@ -18,9 +18,30 @@ const char BasicTargetDescriptor::kTypeServiceWorker[] = "service_worker";
const char BasicTargetDescriptor::kTypeSharedWorker[] = "worker"; const char BasicTargetDescriptor::kTypeSharedWorker[] = "worker";
const char BasicTargetDescriptor::kTypeOther[] = "other"; const char BasicTargetDescriptor::kTypeOther[] = "other";
namespace {
std::string GetTypeFromAgentHost(DevToolsAgentHost* agent_host) {
switch (agent_host->GetType()) {
case DevToolsAgentHost::TYPE_WEB_CONTENTS:
return BasicTargetDescriptor::kTypePage;
case DevToolsAgentHost::TYPE_SERVICE_WORKER:
return BasicTargetDescriptor::kTypeServiceWorker;
case DevToolsAgentHost::TYPE_SHARED_WORKER:
return BasicTargetDescriptor::kTypeSharedWorker;
default:
break;
}
return BasicTargetDescriptor::kTypeOther;
}
} // namespace
BasicTargetDescriptor::BasicTargetDescriptor( BasicTargetDescriptor::BasicTargetDescriptor(
scoped_refptr<DevToolsAgentHost> agent_host) scoped_refptr<DevToolsAgentHost> agent_host)
: agent_host_(agent_host) { : agent_host_(agent_host),
type_(GetTypeFromAgentHost(agent_host.get())),
title_(agent_host->GetTitle()),
url_(agent_host->GetURL()) {
if (content::WebContents* web_contents = agent_host_->GetWebContents()) { if (content::WebContents* web_contents = agent_host_->GetWebContents()) {
content::NavigationController& controller = web_contents->GetController(); content::NavigationController& controller = web_contents->GetController();
content::NavigationEntry* entry = controller.GetActiveEntry(); content::NavigationEntry* entry = controller.GetActiveEntry();
...@@ -38,33 +59,23 @@ std::string BasicTargetDescriptor::GetId() const { ...@@ -38,33 +59,23 @@ std::string BasicTargetDescriptor::GetId() const {
} }
std::string BasicTargetDescriptor::GetParentId() const { std::string BasicTargetDescriptor::GetParentId() const {
return std::string(); return parent_id_;
} }
std::string BasicTargetDescriptor::GetType() const { std::string BasicTargetDescriptor::GetType() const {
switch (agent_host_->GetType()) { return type_;
case DevToolsAgentHost::TYPE_WEB_CONTENTS:
return kTypePage;
case DevToolsAgentHost::TYPE_SERVICE_WORKER:
return kTypeServiceWorker;
case DevToolsAgentHost::TYPE_SHARED_WORKER:
return kTypeSharedWorker;
default:
break;
}
return kTypeOther;
} }
std::string BasicTargetDescriptor::GetTitle() const { std::string BasicTargetDescriptor::GetTitle() const {
return agent_host_->GetTitle(); return title_;
} }
std::string BasicTargetDescriptor::GetDescription() const { std::string BasicTargetDescriptor::GetDescription() const {
return std::string(); return description_;
} }
GURL BasicTargetDescriptor::GetURL() const { GURL BasicTargetDescriptor::GetURL() const {
return agent_host_->GetURL(); return url_;
} }
GURL BasicTargetDescriptor::GetFaviconURL() const { GURL BasicTargetDescriptor::GetFaviconURL() const {
......
...@@ -34,8 +34,21 @@ class BasicTargetDescriptor : public DevToolsTargetDescriptor { ...@@ -34,8 +34,21 @@ class BasicTargetDescriptor : public DevToolsTargetDescriptor {
bool Activate() const override; bool Activate() const override;
bool Close() const override; bool Close() const override;
protected:
void set_parent_id(const std::string& parent_id) { parent_id_ = parent_id; }
void set_type(const std::string& type) { type_ = type; }
void set_title(const std::string& title) { title_ = title; }
void set_description(const std::string& desc) { description_ = desc; }
void set_url(const GURL& url) { url_ = url; }
void set_favicon_url(const GURL& url) { favicon_url_ = url; }
private: private:
scoped_refptr<content::DevToolsAgentHost> agent_host_; scoped_refptr<content::DevToolsAgentHost> agent_host_;
std::string parent_id_;
std::string type_;
std::string title_;
std::string description_;
GURL url_;
GURL favicon_url_; GURL favicon_url_;
base::TimeTicks last_activity_time_; base::TimeTicks last_activity_time_;
}; };
......
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