| 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;
|
|
|