| Index: content/shell/browser/shell_devtools_delegate.cc
|
| diff --git a/content/shell/browser/shell_devtools_delegate.cc b/content/shell/browser/shell_devtools_delegate.cc
|
| index d316b2a1c6a1ec8c150ca9e11ad7b2b49e58c319..2e1acb5145c1f05c6514f1a7349c965ba616d636 100644
|
| --- a/content/shell/browser/shell_devtools_delegate.cc
|
| +++ b/content/shell/browser/shell_devtools_delegate.cc
|
| @@ -75,7 +75,7 @@ net::StreamListenSocketFactory* CreateSocketFactory() {
|
|
|
| class Target : public content::DevToolsTarget {
|
| public:
|
| - explicit Target(WebContents* web_contents);
|
| + explicit Target(scoped_refptr<DevToolsAgentHost> agent_host);
|
|
|
| virtual std::string GetId() const OVERRIDE { return id_; }
|
| virtual std::string GetParentId() const OVERRIDE { return std::string(); }
|
| @@ -105,17 +105,20 @@ class Target : public content::DevToolsTarget {
|
| base::TimeTicks last_activity_time_;
|
| };
|
|
|
| -Target::Target(WebContents* web_contents) {
|
| - agent_host_ =
|
| - DevToolsAgentHost::GetOrCreateFor(web_contents->GetRenderViewHost());
|
| - id_ = agent_host_->GetId();
|
| - title_ = base::UTF16ToUTF8(web_contents->GetTitle());
|
| - url_ = web_contents->GetURL();
|
| - content::NavigationController& controller = web_contents->GetController();
|
| - content::NavigationEntry* entry = controller.GetActiveEntry();
|
| - if (entry != NULL && entry->GetURL().is_valid())
|
| - favicon_url_ = entry->GetFavicon().url;
|
| - last_activity_time_ = web_contents->GetLastActiveTime();
|
| +Target::Target(scoped_refptr<DevToolsAgentHost> agent_host)
|
| + : agent_host_(agent_host),
|
| + id_(agent_host_->GetId()),
|
| + url_(agent_host_->GetURL()) {
|
| + if (RenderViewHost* rvh = agent_host_->GetRenderViewHost()) {
|
| + if (WebContents* web_contents = WebContents::FromRenderViewHost(rvh)) {
|
| + title_ = base::UTF16ToUTF8(web_contents->GetTitle());
|
| + content::NavigationController& controller = web_contents->GetController();
|
| + content::NavigationEntry* entry = controller.GetActiveEntry();
|
| + if (entry != NULL && entry->GetURL().is_valid())
|
| + favicon_url_ = entry->GetFavicon().url;
|
| + last_activity_time_ = web_contents->GetLastActiveTime();
|
| + }
|
| + }
|
| }
|
|
|
| bool Target::Activate() const {
|
| @@ -192,22 +195,24 @@ ShellDevToolsDelegate::CreateNewTarget(const GURL& url) {
|
| NULL,
|
| MSG_ROUTING_NONE,
|
| gfx::Size());
|
| - return scoped_ptr<DevToolsTarget>(new Target(shell->web_contents()));
|
| + return scoped_ptr<DevToolsTarget>(
|
| + new Target(DevToolsAgentHost::GetOrCreateFor(shell->web_contents())));
|
| }
|
|
|
| -void ShellDevToolsDelegate::EnumerateTargets(TargetCallback callback) {
|
| - TargetList targets;
|
| - std::vector<RenderViewHost*> rvh_list =
|
| - content::DevToolsAgentHost::GetValidRenderViewHosts();
|
| - for (std::vector<RenderViewHost*>::iterator it = rvh_list.begin();
|
| - it != rvh_list.end(); ++it) {
|
| - WebContents* web_contents = WebContents::FromRenderViewHost(*it);
|
| - if (web_contents)
|
| - targets.push_back(new Target(web_contents));
|
| +static void CreateTargets(const ShellDevToolsDelegate::TargetCallback& callback,
|
| + const DevToolsAgentHost::List& agents) {
|
| + ShellDevToolsDelegate::TargetList targets;
|
| + for (DevToolsAgentHost::List::const_iterator it = agents.begin();
|
| + it != agents.end(); ++it) {
|
| + targets.push_back(new Target(*it));
|
| }
|
| callback.Run(targets);
|
| }
|
|
|
| +void ShellDevToolsDelegate::EnumerateTargets(TargetCallback callback) {
|
| + DevToolsAgentHost::GetOrCreateAllHosts(base::Bind(&CreateTargets, callback));
|
| +}
|
| +
|
| scoped_ptr<net::StreamListenSocket>
|
| ShellDevToolsDelegate::CreateSocketForTethering(
|
| net::StreamListenSocket::Delegate* delegate,
|
|
|