Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(858)

Unified Diff: content/shell/browser/shell_devtools_delegate.cc

Issue 349033009: DevTools: Added service workers to chrome://inspect/#devices (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added GetOrCreateAllHosts Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,
« content/public/browser/devtools_agent_host.h ('K') | « content/public/browser/devtools_agent_host.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698