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

Side by Side Diff: chrome/browser/devtools/devtools_target_impl.cc

Issue 976313003: [DevTools] Expose DevToolsAgentHost for OOPIF, display it in chrome://inspect. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/devtools/devtools_target_impl.h" 5 #include "chrome/browser/devtools/devtools_target_impl.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/devtools/devtools_window.h" 9 #include "chrome/browser/devtools/devtools_window.h"
10 #include "chrome/browser/extensions/extension_tab_util.h" 10 #include "chrome/browser/extensions/extension_tab_util.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 int tab_id_; 57 int tab_id_;
58 std::string extension_id_; 58 std::string extension_id_;
59 }; 59 };
60 60
61 WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab) 61 WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab)
62 : DevToolsTargetImpl(DevToolsAgentHost::GetOrCreateFor(web_contents)), 62 : DevToolsTargetImpl(DevToolsAgentHost::GetOrCreateFor(web_contents)),
63 tab_id_(-1) { 63 tab_id_(-1) {
64 set_type(kTargetTypeOther); 64 set_type(kTargetTypeOther);
65 65
66 content::RenderFrameHost* rfh = 66 content::RenderFrameHost* rfh =
67 web_contents->GetRenderViewHost()->GetMainFrame(); 67 web_contents->GetRenderViewHost()->GetMainFrame();
Charlie Reis 2015/03/05 20:31:14 Please use web_contents->GetMainFrame().
Charlie Reis 2015/03/05 20:31:14 Please use web_contents->GetMainFrame().
dgozman 2015/03/06 16:14:14 I removed this code. Main frame can never be a cro
68 if (rfh->IsCrossProcessSubframe()) { 68 if (rfh->IsCrossProcessSubframe()) {
69 set_url(rfh->GetLastCommittedURL()); 69 set_url(rfh->GetLastCommittedURL());
70 set_type(kTargetTypeIFrame); 70 set_type(kTargetTypeIFrame);
71 // TODO(pfeldman) Update for out of process iframes.
72 RenderViewHost* parent_rvh = rfh->GetParent()->GetRenderViewHost(); 71 RenderViewHost* parent_rvh = rfh->GetParent()->GetRenderViewHost();
73 set_parent_id(DevToolsAgentHost::GetOrCreateFor( 72 set_parent_id(DevToolsAgentHost::GetOrCreateFor(
74 WebContents::FromRenderViewHost(parent_rvh))->GetId()); 73 WebContents::FromRenderViewHost(parent_rvh))->GetId());
Charlie Reis 2015/03/05 20:31:14 Please use WebContents::FromRenderFrameHost(rfh->G
75 return; 74 return;
76 } 75 }
77 76
78 content::NavigationController& controller = web_contents->GetController(); 77 content::NavigationController& controller = web_contents->GetController();
79 content::NavigationEntry* entry = controller.GetActiveEntry(); 78 content::NavigationEntry* entry = controller.GetActiveEntry();
80 if (entry != NULL && entry->GetURL().is_valid()) 79 if (entry != NULL && entry->GetURL().is_valid())
81 set_favicon_url(entry->GetFavicon().url); 80 set_favicon_url(entry->GetFavicon().url);
82 set_last_activity_time(web_contents->GetLastActiveTime()); 81 set_last_activity_time(web_contents->GetLastActiveTime());
83 82
84 extensions::GuestViewBase* guest = 83 extensions::GuestViewBase* guest =
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 return extension_id_; 135 return extension_id_;
137 } 136 }
138 137
139 void WebContentsTarget::Inspect(Profile* profile) const { 138 void WebContentsTarget::Inspect(Profile* profile) const {
140 WebContents* web_contents = GetWebContents(); 139 WebContents* web_contents = GetWebContents();
141 if (!web_contents) 140 if (!web_contents)
142 return; 141 return;
143 DevToolsWindow::OpenDevToolsWindow(web_contents); 142 DevToolsWindow::OpenDevToolsWindow(web_contents);
144 } 143 }
145 144
145 // FrameTarget ----------------------------------------------------------------
146
147 class FrameTarget : public DevToolsTargetImpl {
148 public:
149 explicit FrameTarget(scoped_refptr<DevToolsAgentHost> agent_host);
150
151 // DevToolsTargetImpl overrides:
152 void Inspect(Profile* profile) const override;
153 };
154
155 FrameTarget::FrameTarget(scoped_refptr<DevToolsAgentHost> agent_host)
156 : DevToolsTargetImpl(agent_host) {
157 set_type(kTargetTypePage);
158 WebContents* wc = agent_host->GetWebContents();
159 DCHECK(DevToolsAgentHost::GetOrCreateFor(wc).get() != agent_host.get());
160 set_parent_id(DevToolsAgentHost::GetOrCreateFor(wc)->GetId());
161 }
162
163 void FrameTarget::Inspect(Profile* profile) const {
164 DevToolsWindow::OpenDevToolsWindow(profile, GetAgentHost());
165 }
166
146 // WorkerTarget ---------------------------------------------------------------- 167 // WorkerTarget ----------------------------------------------------------------
147 168
148 class WorkerTarget : public DevToolsTargetImpl { 169 class WorkerTarget : public DevToolsTargetImpl {
149 public: 170 public:
150 explicit WorkerTarget(scoped_refptr<DevToolsAgentHost> agent_host); 171 explicit WorkerTarget(scoped_refptr<DevToolsAgentHost> agent_host);
151 172
152 // DevToolsTargetImpl overrides: 173 // DevToolsTargetImpl overrides:
153 void Inspect(Profile* profile) const override; 174 void Inspect(Profile* profile) const override;
154 }; 175 };
155 176
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 it != agents.end(); ++it) { 295 it != agents.end(); ++it) {
275 DevToolsAgentHost* agent_host = (*it).get(); 296 DevToolsAgentHost* agent_host = (*it).get();
276 switch (agent_host->GetType()) { 297 switch (agent_host->GetType()) {
277 case DevToolsAgentHost::TYPE_WEB_CONTENTS: 298 case DevToolsAgentHost::TYPE_WEB_CONTENTS:
278 if (WebContents* web_contents = agent_host->GetWebContents()) { 299 if (WebContents* web_contents = agent_host->GetWebContents()) {
279 const bool is_tab = 300 const bool is_tab =
280 tab_web_contents.find(web_contents) != tab_web_contents.end(); 301 tab_web_contents.find(web_contents) != tab_web_contents.end();
281 result.push_back(new WebContentsTarget(web_contents, is_tab)); 302 result.push_back(new WebContentsTarget(web_contents, is_tab));
282 } 303 }
283 break; 304 break;
305 case DevToolsAgentHost::TYPE_FRAME:
306 result.push_back(new FrameTarget(agent_host));
307 break;
284 case DevToolsAgentHost::TYPE_SHARED_WORKER: 308 case DevToolsAgentHost::TYPE_SHARED_WORKER:
285 result.push_back(new WorkerTarget(agent_host)); 309 result.push_back(new WorkerTarget(agent_host));
286 break; 310 break;
287 case DevToolsAgentHost::TYPE_SERVICE_WORKER: 311 case DevToolsAgentHost::TYPE_SERVICE_WORKER:
288 result.push_back(new WorkerTarget(agent_host)); 312 result.push_back(new WorkerTarget(agent_host));
289 break; 313 break;
290 default: 314 default:
291 break; 315 break;
292 } 316 }
293 } 317 }
294 318
295 callback.Run(result); 319 callback.Run(result);
296 } 320 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/devtools/devtools_window.h » ('j') | content/browser/devtools/render_frame_devtools_agent_host.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698