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

Unified Diff: chrome/browser/devtools/devtools_target_impl.cc

Issue 442303002: DevTools: migrate DevTools APIs to use WebContents instead of RenderViewHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: for landing Created 6 years, 4 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
« no previous file with comments | « chrome/browser/devtools/devtools_target_impl.h ('k') | chrome/browser/devtools/devtools_targets_ui.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « chrome/browser/devtools/devtools_target_impl.h ('k') | chrome/browser/devtools/devtools_targets_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698