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

Side by Side 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: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/devtools/devtools_target_impl.h" 5 #include "chrome/browser/devtools/devtools_target_impl.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/devtools/devtools_window.h" 9 #include "chrome/browser/devtools/devtools_window.h"
10 #include "chrome/browser/extensions/extension_tab_util.h" 10 #include "chrome/browser/extensions/extension_tab_util.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 virtual int GetTabId() const OVERRIDE; 54 virtual int GetTabId() const OVERRIDE;
55 virtual std::string GetExtensionId() const OVERRIDE; 55 virtual std::string GetExtensionId() const OVERRIDE;
56 virtual void Inspect(Profile* profile) const OVERRIDE; 56 virtual void Inspect(Profile* profile) const OVERRIDE;
57 57
58 private: 58 private:
59 int tab_id_; 59 int tab_id_;
60 std::string extension_id_; 60 std::string extension_id_;
61 }; 61 };
62 62
63 RenderViewHostTarget::RenderViewHostTarget(RenderViewHost* rvh, bool is_tab) 63 RenderViewHostTarget::RenderViewHostTarget(RenderViewHost* rvh, bool is_tab)
64 : DevToolsTargetImpl(DevToolsAgentHost::GetOrCreateFor(rvh)), 64 : DevToolsTargetImpl(DevToolsAgentHost::GetOrCreateFor(
65 WebContents::FromRenderViewHost(rvh))),
65 tab_id_(-1) { 66 tab_id_(-1) {
66 set_type(kTargetTypeOther); 67 set_type(kTargetTypeOther);
67 WebContents* web_contents = WebContents::FromRenderViewHost(rvh); 68 WebContents* web_contents = WebContents::FromRenderViewHost(rvh);
68 if (!web_contents) 69 if (!web_contents)
69 return; // Orphan RVH will show up with no title/url/icon in clients. 70 return; // Orphan RVH will show up with no title/url/icon in clients.
70 71
71 content::RenderFrameHost* rfh = rvh->GetMainFrame(); 72 content::RenderFrameHost* rfh = rvh->GetMainFrame();
72 if (rfh->IsCrossProcessSubframe()) { 73 if (rfh->IsCrossProcessSubframe()) {
73 set_url(rfh->GetLastCommittedURL()); 74 set_url(rfh->GetLastCommittedURL());
74 set_type(kTargetTypeIFrame); 75 set_type(kTargetTypeIFrame);
75 // TODO(kaznacheev) Try setting the title when the frame navigation 76 // TODO(kaznacheev) Try setting the title when the frame navigation
76 // refactoring is done. 77 // refactoring is done.
77 RenderViewHost* parent_rvh = rfh->GetParent()->GetRenderViewHost(); 78 RenderViewHost* parent_rvh = rfh->GetParent()->GetRenderViewHost();
78 set_parent_id(DevToolsAgentHost::GetOrCreateFor(parent_rvh)->GetId()); 79 set_parent_id(DevToolsAgentHost::GetOrCreateFor(
80 WebContents::FromRenderViewHost(parent_rvh))->GetId());
79 return; 81 return;
80 } 82 }
81 83
82 set_title(base::UTF16ToUTF8(web_contents->GetTitle())); 84 set_title(base::UTF16ToUTF8(web_contents->GetTitle()));
83 set_url(web_contents->GetURL()); 85 set_url(web_contents->GetURL());
84 content::NavigationController& controller = web_contents->GetController(); 86 content::NavigationController& controller = web_contents->GetController();
85 content::NavigationEntry* entry = controller.GetActiveEntry(); 87 content::NavigationEntry* entry = controller.GetActiveEntry();
86 if (entry != NULL && entry->GetURL().is_valid()) 88 if (entry != NULL && entry->GetURL().is_valid())
87 set_favicon_url(entry->GetFavicon().url); 89 set_favicon_url(entry->GetFavicon().url);
88 set_last_activity_time(web_contents->GetLastActiveTime()); 90 set_last_activity_time(web_contents->GetLastActiveTime());
89 91
90 GuestViewBase* guest = GuestViewBase::FromWebContents(web_contents); 92 GuestViewBase* guest = GuestViewBase::FromWebContents(web_contents);
91 WebContents* guest_contents = guest ? guest->embedder_web_contents() : NULL; 93 WebContents* guest_contents = guest ? guest->embedder_web_contents() : NULL;
92 RenderViewHost* guest_parent_rvh = 94 if (guest_contents) {
93 guest_contents ? guest_contents->GetRenderViewHost() : NULL;
94 if (guest_parent_rvh) {
95 set_type(kTargetTypeWebView); 95 set_type(kTargetTypeWebView);
96 set_parent_id(DevToolsAgentHost::GetOrCreateFor(guest_parent_rvh)->GetId()); 96 set_parent_id(DevToolsAgentHost::GetOrCreateFor(guest_contents)->GetId());
97 return; 97 return;
98 } 98 }
99 99
100 if (is_tab) { 100 if (is_tab) {
101 set_type(kTargetTypePage); 101 set_type(kTargetTypePage);
102 tab_id_ = extensions::ExtensionTabUtil::GetTabId(web_contents); 102 tab_id_ = extensions::ExtensionTabUtil::GetTabId(web_contents);
103 return; 103 return;
104 } 104 }
105 105
106 const extensions::Extension* extension = extensions::ExtensionRegistry::Get( 106 const extensions::Extension* extension = extensions::ExtensionRegistry::Get(
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 } 161 }
162 162
163 std::string RenderViewHostTarget::GetExtensionId() const { 163 std::string RenderViewHostTarget::GetExtensionId() const {
164 return extension_id_; 164 return extension_id_;
165 } 165 }
166 166
167 void RenderViewHostTarget::Inspect(Profile* profile) const { 167 void RenderViewHostTarget::Inspect(Profile* profile) const {
168 RenderViewHost* rvh = GetRenderViewHost(); 168 RenderViewHost* rvh = GetRenderViewHost();
169 if (!rvh) 169 if (!rvh)
170 return; 170 return;
171 DevToolsWindow::OpenDevToolsWindow(rvh); 171 WebContents* web_contents = WebContents::FromRenderViewHost(rvh);
172 if (!web_contents)
173 return;
174 DevToolsWindow::OpenDevToolsWindow(web_contents);
172 } 175 }
173 176
174 // WorkerTarget ---------------------------------------------------------------- 177 // WorkerTarget ----------------------------------------------------------------
175 178
176 class WorkerTarget : public DevToolsTargetImpl { 179 class WorkerTarget : public DevToolsTargetImpl {
177 public: 180 public:
178 explicit WorkerTarget(const WorkerService::WorkerInfo& worker_info); 181 explicit WorkerTarget(const WorkerService::WorkerInfo& worker_info);
179 182
180 // content::DevToolsTarget overrides: 183 // content::DevToolsTarget overrides:
181 virtual bool Close() const OVERRIDE; 184 virtual bool Close() const OVERRIDE;
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 355
353 // static 356 // static
354 void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) { 357 void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) {
355 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 358 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
356 content::BrowserThread::PostTask( 359 content::BrowserThread::PostTask(
357 content::BrowserThread::IO, 360 content::BrowserThread::IO,
358 FROM_HERE, 361 FROM_HERE,
359 base::Bind(&DevToolsTargetImpl::EnumerateWorkerTargets, 362 base::Bind(&DevToolsTargetImpl::EnumerateWorkerTargets,
360 base::Bind(&CollectAllTargets, callback))); 363 base::Bind(&CollectAllTargets, callback)));
361 } 364 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698