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 62f6354aa5ca704c86d66f4eb6eb183372155c87..7f2bfb061f47015254ff71a57e3da371cd446a8d 100644 |
--- a/chrome/browser/devtools/devtools_target_impl.cc |
+++ b/chrome/browser/devtools/devtools_target_impl.cc |
@@ -41,16 +41,16 @@ const char kTargetTypeWebView[] = "webview"; |
const char kTargetTypeIFrame[] = "iframe"; |
const char kTargetTypeOther[] = "other"; |
-// RenderViewHostTarget -------------------------------------------------------- |
+// WebContentsTarget -------------------------------------------------------- |
-class RenderViewHostTarget : public DevToolsTargetImpl { |
+class WebContentsTarget : public DevToolsTargetImpl { |
public: |
- explicit RenderViewHostTarget(RenderViewHost* rvh, bool is_tab); |
+ WebContentsTarget(WebContents* web_contents, bool is_tab); |
// DevToolsTargetImpl overrides: |
virtual bool Activate() const OVERRIDE; |
virtual bool Close() const OVERRIDE; |
- virtual RenderViewHost* GetRenderViewHost() const OVERRIDE; |
+ virtual WebContents* GetWebContents() const OVERRIDE; |
virtual int GetTabId() const OVERRIDE; |
virtual std::string GetExtensionId() const OVERRIDE; |
virtual void Inspect(Profile* profile) const OVERRIDE; |
@@ -60,22 +60,20 @@ class RenderViewHostTarget : public DevToolsTargetImpl { |
std::string extension_id_; |
}; |
-RenderViewHostTarget::RenderViewHostTarget(RenderViewHost* rvh, bool is_tab) |
- : DevToolsTargetImpl(DevToolsAgentHost::GetOrCreateFor(rvh)), |
+WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab) |
+ : DevToolsTargetImpl(DevToolsAgentHost::GetOrCreateFor(web_contents)), |
tab_id_(-1) { |
set_type(kTargetTypeOther); |
- WebContents* web_contents = WebContents::FromRenderViewHost(rvh); |
- if (!web_contents) |
- return; // Orphan RVH will show up with no title/url/icon in clients. |
- content::RenderFrameHost* rfh = rvh->GetMainFrame(); |
+ content::RenderFrameHost* rfh = |
+ web_contents->GetRenderViewHost()->GetMainFrame(); |
if (rfh->IsCrossProcessSubframe()) { |
set_url(rfh->GetLastCommittedURL()); |
set_type(kTargetTypeIFrame); |
- // TODO(kaznacheev) Try setting the title when the frame navigation |
- // refactoring is done. |
+ // TODO(pfeldman) Update for out of process iframes. |
RenderViewHost* parent_rvh = rfh->GetParent()->GetRenderViewHost(); |
- set_parent_id(DevToolsAgentHost::GetOrCreateFor(parent_rvh)->GetId()); |
+ set_parent_id(DevToolsAgentHost::GetOrCreateFor( |
+ WebContents::FromRenderViewHost(parent_rvh))->GetId()); |
return; |
} |
@@ -89,11 +87,9 @@ RenderViewHostTarget::RenderViewHostTarget(RenderViewHost* rvh, bool is_tab) |
GuestViewBase* guest = GuestViewBase::FromWebContents(web_contents); |
WebContents* guest_contents = guest ? guest->embedder_web_contents() : NULL; |
- RenderViewHost* guest_parent_rvh = |
- guest_contents ? guest_contents->GetRenderViewHost() : NULL; |
- if (guest_parent_rvh) { |
+ if (guest_contents) { |
set_type(kTargetTypeWebView); |
- set_parent_id(DevToolsAgentHost::GetOrCreateFor(guest_parent_rvh)->GetId()); |
+ set_parent_id(DevToolsAgentHost::GetOrCreateFor(guest_contents)->GetId()); |
return; |
} |
@@ -133,42 +129,39 @@ RenderViewHostTarget::RenderViewHostTarget(RenderViewHost* rvh, bool is_tab) |
ExtensionIconSet::MATCH_BIGGER, false, NULL)); |
} |
-bool RenderViewHostTarget::Activate() const { |
- RenderViewHost* rvh = GetRenderViewHost(); |
- if (!rvh) |
- return false; |
- WebContents* web_contents = WebContents::FromRenderViewHost(rvh); |
+bool WebContentsTarget::Activate() const { |
+ WebContents* web_contents = GetWebContents(); |
if (!web_contents) |
return false; |
web_contents->GetDelegate()->ActivateContents(web_contents); |
return true; |
} |
-bool RenderViewHostTarget::Close() const { |
- RenderViewHost* rvh = GetRenderViewHost(); |
- if (!rvh) |
+bool WebContentsTarget::Close() const { |
+ WebContents* web_contents = GetWebContents(); |
+ if (!web_contents) |
return false; |
- rvh->ClosePage(); |
+ web_contents->GetRenderViewHost()->ClosePage(); |
return true; |
} |
-RenderViewHost* RenderViewHostTarget::GetRenderViewHost() const { |
- return GetAgentHost()->GetRenderViewHost(); |
+WebContents* WebContentsTarget::GetWebContents() const { |
+ return GetAgentHost()->GetWebContents(); |
} |
-int RenderViewHostTarget::GetTabId() const { |
+int WebContentsTarget::GetTabId() const { |
return tab_id_; |
} |
-std::string RenderViewHostTarget::GetExtensionId() const { |
+std::string WebContentsTarget::GetExtensionId() const { |
return extension_id_; |
} |
-void RenderViewHostTarget::Inspect(Profile* profile) const { |
- RenderViewHost* rvh = GetRenderViewHost(); |
- if (!rvh) |
+void WebContentsTarget::Inspect(Profile* profile) const { |
+ WebContents* web_contents = GetWebContents(); |
+ if (!web_contents) |
return; |
- DevToolsWindow::OpenDevToolsWindow(rvh); |
+ DevToolsWindow::OpenDevToolsWindow(web_contents); |
} |
// WorkerTarget ---------------------------------------------------------------- |
@@ -280,7 +273,7 @@ int DevToolsTargetImpl::GetTabId() const { |
return -1; |
} |
-RenderViewHost* DevToolsTargetImpl::GetRenderViewHost() const { |
+WebContents* DevToolsTargetImpl::GetWebContents() const { |
return NULL; |
} |
@@ -295,25 +288,28 @@ void DevToolsTargetImpl::Reload() const { |
} |
// static |
-scoped_ptr<DevToolsTargetImpl> DevToolsTargetImpl::CreateForRenderViewHost( |
- content::RenderViewHost* rvh, bool is_tab) { |
- return scoped_ptr<DevToolsTargetImpl>(new RenderViewHostTarget(rvh, is_tab)); |
+scoped_ptr<DevToolsTargetImpl> DevToolsTargetImpl::CreateForWebContents( |
+ content::WebContents* web_contents, |
+ bool is_tab) { |
+ return scoped_ptr<DevToolsTargetImpl>( |
+ new WebContentsTarget(web_contents, is_tab)); |
} |
// static |
-DevToolsTargetImpl::List DevToolsTargetImpl::EnumerateRenderViewHostTargets() { |
- std::set<RenderViewHost*> tab_rvhs; |
+DevToolsTargetImpl::List DevToolsTargetImpl::EnumerateWebContentsTargets() { |
+ std::set<WebContents*> tab_web_contents; |
for (TabContentsIterator it; !it.done(); it.Next()) |
- tab_rvhs.insert(it->GetRenderViewHost()); |
+ tab_web_contents.insert(*it); |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
DevToolsTargetImpl::List result; |
- std::vector<RenderViewHost*> rvh_list = |
- content::DevToolsAgentHost::GetValidRenderViewHosts(); |
- for (std::vector<RenderViewHost*>::iterator it = rvh_list.begin(); |
- it != rvh_list.end(); ++it) { |
- bool is_tab = tab_rvhs.find(*it) != tab_rvhs.end(); |
- result.push_back(new RenderViewHostTarget(*it, is_tab)); |
+ std::vector<WebContents*> wc_list = |
+ content::DevToolsAgentHost::GetInspectableWebContents(); |
+ for (std::vector<WebContents*>::iterator it = wc_list.begin(); |
+ it != wc_list.end(); |
+ ++it) { |
+ bool is_tab = tab_web_contents.find(*it) != tab_web_contents.end(); |
+ result.push_back(new WebContentsTarget(*it, is_tab)); |
} |
return result; |
} |
@@ -345,7 +341,7 @@ static void CollectAllTargets( |
const DevToolsTargetImpl::List& worker_targets) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
DevToolsTargetImpl::List result = |
- DevToolsTargetImpl::EnumerateRenderViewHostTargets(); |
+ DevToolsTargetImpl::EnumerateWebContentsTargets(); |
result.insert(result.begin(), worker_targets.begin(), worker_targets.end()); |
callback.Run(result); |
} |