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

Unified 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: Disabled test on android 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/devtools/devtools_target_impl.cc
diff --git a/chrome/browser/devtools/devtools_target_impl.cc b/chrome/browser/devtools/devtools_target_impl.cc
index 23c94112b623b8f11e2e37e98f1ef3bfc3f9e709..b03a737b5074b59b3d445b4bb642323fec3640ff 100644
--- a/chrome/browser/devtools/devtools_target_impl.cc
+++ b/chrome/browser/devtools/devtools_target_impl.cc
@@ -63,18 +63,6 @@ WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab)
tab_id_(-1) {
set_type(kTargetTypeOther);
- content::RenderFrameHost* rfh =
- web_contents->GetRenderViewHost()->GetMainFrame();
- if (rfh->IsCrossProcessSubframe()) {
- set_url(rfh->GetLastCommittedURL());
- set_type(kTargetTypeIFrame);
- // TODO(pfeldman) Update for out of process iframes.
- RenderViewHost* parent_rvh = rfh->GetParent()->GetRenderViewHost();
- set_parent_id(DevToolsAgentHost::GetOrCreateFor(
- WebContents::FromRenderViewHost(parent_rvh))->GetId());
- return;
- }
-
content::NavigationController& controller = web_contents->GetController();
content::NavigationEntry* entry = controller.GetActiveEntry();
if (entry != NULL && entry->GetURL().is_valid())
@@ -143,6 +131,28 @@ void WebContentsTarget::Inspect(Profile* profile) const {
DevToolsWindow::OpenDevToolsWindow(web_contents);
}
+// FrameTarget ----------------------------------------------------------------
+
+class FrameTarget : public DevToolsTargetImpl {
+ public:
+ explicit FrameTarget(scoped_refptr<DevToolsAgentHost> agent_host);
+
+ // DevToolsTargetImpl overrides:
+ void Inspect(Profile* profile) const override;
+};
+
+FrameTarget::FrameTarget(scoped_refptr<DevToolsAgentHost> agent_host)
+ : DevToolsTargetImpl(agent_host) {
+ set_type(kTargetTypePage);
+ WebContents* wc = agent_host->GetWebContents();
+ DCHECK(DevToolsAgentHost::GetOrCreateFor(wc).get() != agent_host.get());
+ set_parent_id(DevToolsAgentHost::GetOrCreateFor(wc)->GetId());
+}
+
+void FrameTarget::Inspect(Profile* profile) const {
+ DevToolsWindow::OpenDevToolsWindow(profile, GetAgentHost());
+}
+
// WorkerTarget ----------------------------------------------------------------
class WorkerTarget : public DevToolsTargetImpl {
@@ -281,6 +291,9 @@ void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) {
result.push_back(new WebContentsTarget(web_contents, is_tab));
}
break;
+ case DevToolsAgentHost::TYPE_FRAME:
+ result.push_back(new FrameTarget(agent_host));
+ break;
case DevToolsAgentHost::TYPE_SHARED_WORKER:
result.push_back(new WorkerTarget(agent_host));
break;

Powered by Google App Engine
This is Rietveld 408576698