Chromium Code Reviews| 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..4a50b349ccf1ff949d69e4e511832235653ec0e9 100644 |
| --- a/chrome/browser/devtools/devtools_target_impl.cc |
| +++ b/chrome/browser/devtools/devtools_target_impl.cc |
| @@ -68,7 +68,6 @@ WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab) |
| 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()); |
|
Charlie Reis
2015/03/05 20:31:14
Please use WebContents::FromRenderFrameHost(rfh->G
|
| @@ -143,6 +142,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 +302,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; |