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

Side by Side Diff: chrome/browser/ui/webui/extensions/extension_error_ui_util.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/ui/webui/extensions/extension_error_ui_util.h" 5 #include "chrome/browser/ui/webui/extensions/extension_error_ui_util.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 } 150 }
151 151
152 content::RenderViewHost* rvh = 152 content::RenderViewHost* rvh =
153 content::RenderViewHost::FromID(render_process_id, render_view_id); 153 content::RenderViewHost::FromID(render_process_id, render_view_id);
154 154
155 // It's possible that the render view was closed since we last updated the 155 // It's possible that the render view was closed since we last updated the
156 // links. Handle this gracefully. 156 // links. Handle this gracefully.
157 if (!rvh) 157 if (!rvh)
158 return; 158 return;
159 159
160 // Once we open the inspector, we focus on the appropriate tab...
161 content::WebContents* web_contents =
162 content::WebContents::FromRenderViewHost(rvh);
163 if (!web_contents)
164 return;
165
160 // If we include a url, we should inspect it specifically (and not just the 166 // If we include a url, we should inspect it specifically (and not just the
161 // render view). 167 // render view).
162 base::string16 url; 168 base::string16 url;
163 if (args->GetString(RuntimeError::kUrlKey, &url)) { 169 if (args->GetString(RuntimeError::kUrlKey, &url)) {
164 // Line and column numbers are optional; default to the first line. 170 // Line and column numbers are optional; default to the first line.
165 int line_number = 1; 171 int line_number = 1;
166 int column_number = 1; 172 int column_number = 1;
167 args->GetInteger(RuntimeError::kLineNumberKey, &line_number); 173 args->GetInteger(RuntimeError::kLineNumberKey, &line_number);
168 args->GetInteger(RuntimeError::kColumnNumberKey, &column_number); 174 args->GetInteger(RuntimeError::kColumnNumberKey, &column_number);
169 175
170 // Line/column numbers are reported in display-friendly 1-based numbers, 176 // Line/column numbers are reported in display-friendly 1-based numbers,
171 // but are inspected in zero-based numbers. 177 // but are inspected in zero-based numbers.
172 DevToolsWindow::OpenDevToolsWindow( 178 DevToolsWindow::OpenDevToolsWindow(
173 rvh, 179 web_contents,
174 DevToolsToggleAction::Reveal(url, line_number - 1, column_number - 1)); 180 DevToolsToggleAction::Reveal(url, line_number - 1, column_number - 1));
175 } else { 181 } else {
176 DevToolsWindow::OpenDevToolsWindow(rvh); 182 DevToolsWindow::OpenDevToolsWindow(web_contents);
177 } 183 }
178 184
179 // Once we open the inspector, we focus on the appropriate tab...
180 content::WebContents* web_contents =
181 content::WebContents::FromRenderViewHost(rvh);
182 Browser* browser = chrome::FindBrowserWithWebContents(web_contents); 185 Browser* browser = chrome::FindBrowserWithWebContents(web_contents);
183 186
184 // ... but some pages (popups and apps) don't have tabs, and some (background 187 // ... but some pages (popups and apps) don't have tabs, and some (background
185 // pages) don't have an associated browser. For these, the inspector opens in 188 // pages) don't have an associated browser. For these, the inspector opens in
186 // a new window, and our work is done. 189 // a new window, and our work is done.
187 if (!browser || !browser->is_type_tabbed()) 190 if (!browser || !browser->is_type_tabbed())
188 return; 191 return;
189 192
190 TabStripModel* tab_strip = browser->tab_strip_model(); 193 TabStripModel* tab_strip = browser->tab_strip_model();
191 tab_strip->ActivateTabAt(tab_strip->GetIndexOfWebContents(web_contents), 194 tab_strip->ActivateTabAt(tab_strip->GetIndexOfWebContents(web_contents),
192 false); // Not through direct user gesture. 195 false); // Not through direct user gesture.
193 } 196 }
194 197
195 } // namespace error_ui_util 198 } // namespace error_ui_util
196 } // namespace extensions 199 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698