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

Side by Side Diff: chrome/browser/ui/webui/devtools_ui.cc

Issue 612913002: DevTools: Split RemotePage and RemotePageTarget (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@values
Patch Set: Created 6 years, 2 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
« no previous file with comments | « chrome/browser/ui/webui/devtools_ui.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/devtools_ui.h" 5 #include "chrome/browser/ui/webui/devtools_ui.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/memory/ref_counted_memory.h" 10 #include "base/memory/ref_counted_memory.h"
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 Profile* profile, 262 Profile* profile,
263 const std::string url, 263 const std::string url,
264 const DevToolsAndroidBridge::RemotePageCallback& callback); 264 const DevToolsAndroidBridge::RemotePageCallback& callback);
265 virtual ~OpenRemotePageRequest() {} 265 virtual ~OpenRemotePageRequest() {}
266 266
267 private: 267 private:
268 // DevToolsAndroidBridge::Listener overrides. 268 // DevToolsAndroidBridge::Listener overrides.
269 virtual void DeviceListChanged( 269 virtual void DeviceListChanged(
270 const DevToolsAndroidBridge::RemoteDevices& devices) override; 270 const DevToolsAndroidBridge::RemoteDevices& devices) override;
271 271
272 bool OpenInBrowser(DevToolsAndroidBridge::RemoteBrowser* browser); 272 bool OpenInBrowser(
273 void RemotePageOpened(DevToolsAndroidBridge::RemotePage* page); 273 scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser);
274 void RemotePageOpened(scoped_refptr<DevToolsAndroidBridge::RemotePage> page);
274 275
275 std::string url_; 276 std::string url_;
276 DevToolsAndroidBridge::RemotePageCallback callback_; 277 DevToolsAndroidBridge::RemotePageCallback callback_;
277 bool opening_; 278 bool opening_;
278 scoped_refptr<DevToolsAndroidBridge> android_bridge_; 279 scoped_refptr<DevToolsAndroidBridge> android_bridge_;
279 280
280 DISALLOW_COPY_AND_ASSIGN(OpenRemotePageRequest); 281 DISALLOW_COPY_AND_ASSIGN(OpenRemotePageRequest);
281 }; 282 };
282 283
283 OpenRemotePageRequest::OpenRemotePageRequest( 284 OpenRemotePageRequest::OpenRemotePageRequest(
(...skipping 24 matching lines...) Expand all
308 browsers.begin(); bit != browsers.end(); ++bit) { 309 browsers.begin(); bit != browsers.end(); ++bit) {
309 if (OpenInBrowser(bit->get())) { 310 if (OpenInBrowser(bit->get())) {
310 opening_ = true; 311 opening_ = true;
311 return; 312 return;
312 } 313 }
313 } 314 }
314 } 315 }
315 } 316 }
316 317
317 bool OpenRemotePageRequest::OpenInBrowser( 318 bool OpenRemotePageRequest::OpenInBrowser(
318 DevToolsAndroidBridge::RemoteBrowser* browser) { 319 scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser) {
319 if (!browser->IsChrome()) 320 if (!browser->IsChrome())
320 return false; 321 return false;
321 #if defined(DEBUG_DEVTOOLS) 322 #if defined(DEBUG_DEVTOOLS)
322 if (browser->serial() == kLocalSerial) 323 if (browser->serial() == kLocalSerial)
323 return false; 324 return false;
324 #endif // defined(DEBUG_DEVTOOLS) 325 #endif // defined(DEBUG_DEVTOOLS)
325 android_bridge_->OpenRemotePage( 326 android_bridge_->OpenRemotePage(
326 browser, 327 browser,
327 url_, 328 url_,
328 base::Bind(&OpenRemotePageRequest::RemotePageOpened, 329 base::Bind(&OpenRemotePageRequest::RemotePageOpened,
329 base::Unretained(this))); 330 base::Unretained(this)));
330 return true; 331 return true;
331 } 332 }
332 333
333 void OpenRemotePageRequest::RemotePageOpened( 334 void OpenRemotePageRequest::RemotePageOpened(
334 DevToolsAndroidBridge::RemotePage* page) { 335 scoped_refptr<DevToolsAndroidBridge::RemotePage> page) {
335 callback_.Run(page); 336 callback_.Run(page);
336 android_bridge_->RemoveDeviceListListener(this); 337 android_bridge_->RemoveDeviceListListener(this);
337 delete this; 338 delete this;
338 } 339 }
339 340
340 } // namespace 341 } // namespace
341 342
342 // DevToolsUI ----------------------------------------------------------------- 343 // DevToolsUI -----------------------------------------------------------------
343 344
344 // static 345 // static
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 bindings_.Detach(); 389 bindings_.Detach();
389 remote_page_opening_url_ = entry->GetVirtualURL(); 390 remote_page_opening_url_ = entry->GetVirtualURL();
390 new OpenRemotePageRequest(Profile::FromWebUI(web_ui()), 391 new OpenRemotePageRequest(Profile::FromWebUI(web_ui()),
391 entry->GetVirtualURL().query(), 392 entry->GetVirtualURL().query(),
392 base::Bind(&DevToolsUI::RemotePageOpened, 393 base::Bind(&DevToolsUI::RemotePageOpened,
393 weak_factory_.GetWeakPtr(), 394 weak_factory_.GetWeakPtr(),
394 entry->GetVirtualURL())); 395 entry->GetVirtualURL()));
395 } 396 }
396 397
397 void DevToolsUI::RemotePageOpened( 398 void DevToolsUI::RemotePageOpened(
398 const GURL& virtual_url, DevToolsAndroidBridge::RemotePage* page) { 399 const GURL& virtual_url,
400 scoped_refptr<DevToolsAndroidBridge::RemotePage> page) {
399 // Already navigated away while connecting to remote device. 401 // Already navigated away while connecting to remote device.
400 if (remote_page_opening_url_ != virtual_url) 402 if (remote_page_opening_url_ != virtual_url)
401 return; 403 return;
402 404
403 scoped_ptr<DevToolsAndroidBridge::RemotePage> my_page(page);
404 remote_page_opening_url_ = GURL(); 405 remote_page_opening_url_ = GURL();
405 406
406 Profile* profile = Profile::FromWebUI(web_ui()); 407 Profile* profile = Profile::FromWebUI(web_ui());
407 GURL url = DevToolsUIBindings::ApplyThemeToURL(profile, 408 GURL url = DevToolsUIBindings::ApplyThemeToURL(profile,
408 DevToolsUI::GetProxyURL(page->GetFrontendURL())); 409 DevToolsUI::GetProxyURL(page->frontend_url()));
409 410
410 content::NavigationController& navigation_controller = 411 content::NavigationController& navigation_controller =
411 web_ui()->GetWebContents()->GetController(); 412 web_ui()->GetWebContents()->GetController();
412 content::NavigationController::LoadURLParams params(url); 413 content::NavigationController::LoadURLParams params(url);
413 params.should_replace_current_entry = true; 414 params.should_replace_current_entry = true;
414 remote_frontend_loading_url_ = virtual_url; 415 remote_frontend_loading_url_ = virtual_url;
415 navigation_controller.LoadURLWithParams(params); 416 navigation_controller.LoadURLWithParams(params);
416 navigation_controller.GetPendingEntry()->SetVirtualURL(virtual_url); 417 navigation_controller.GetPendingEntry()->SetVirtualURL(virtual_url);
417 418
418 bindings_.AttachTo(page->GetTarget()->GetAgentHost()); 419 DevToolsAndroidBridge* bridge =
420 DevToolsAndroidBridge::Factory::GetForProfile(profile);
421 scoped_ptr<DevToolsTargetImpl> target(bridge->CreatePageTarget(page));
422 bindings_.AttachTo(target->GetAgentHost());
419 } 423 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/devtools_ui.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698