Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 261 Profile* profile, | 261 Profile* profile, |
| 262 const std::string url, | 262 const std::string url, |
| 263 const DevToolsAndroidBridge::RemotePageCallback& callback); | 263 const DevToolsAndroidBridge::RemotePageCallback& callback); |
| 264 virtual ~OpenRemotePageRequest() {} | 264 virtual ~OpenRemotePageRequest() {} |
| 265 | 265 |
| 266 private: | 266 private: |
| 267 // DevToolsAndroidBridge::Listener overrides. | 267 // DevToolsAndroidBridge::Listener overrides. |
| 268 virtual void DeviceListChanged( | 268 virtual void DeviceListChanged( |
| 269 const DevToolsAndroidBridge::RemoteDevices& devices) OVERRIDE; | 269 const DevToolsAndroidBridge::RemoteDevices& devices) OVERRIDE; |
| 270 | 270 |
| 271 bool OpenInBrowser(DevToolsAndroidBridge::RemoteBrowser* browser); | 271 bool OpenInBrowser( |
| 272 void RemotePageOpened(DevToolsAndroidBridge::RemotePage* page); | 272 scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser); |
| 273 void RemotePageOpened(scoped_refptr<DevToolsAndroidBridge::RemotePage> page); | |
| 273 | 274 |
| 274 std::string url_; | 275 std::string url_; |
| 275 DevToolsAndroidBridge::RemotePageCallback callback_; | 276 DevToolsAndroidBridge::RemotePageCallback callback_; |
| 276 bool opening_; | 277 bool opening_; |
| 277 scoped_refptr<DevToolsAndroidBridge> android_bridge_; | 278 scoped_refptr<DevToolsAndroidBridge> android_bridge_; |
| 278 | 279 |
| 279 DISALLOW_COPY_AND_ASSIGN(OpenRemotePageRequest); | 280 DISALLOW_COPY_AND_ASSIGN(OpenRemotePageRequest); |
| 280 }; | 281 }; |
| 281 | 282 |
| 282 OpenRemotePageRequest::OpenRemotePageRequest( | 283 OpenRemotePageRequest::OpenRemotePageRequest( |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 307 browsers.begin(); bit != browsers.end(); ++bit) { | 308 browsers.begin(); bit != browsers.end(); ++bit) { |
| 308 if (OpenInBrowser(bit->get())) { | 309 if (OpenInBrowser(bit->get())) { |
| 309 opening_ = true; | 310 opening_ = true; |
| 310 return; | 311 return; |
| 311 } | 312 } |
| 312 } | 313 } |
| 313 } | 314 } |
| 314 } | 315 } |
| 315 | 316 |
| 316 bool OpenRemotePageRequest::OpenInBrowser( | 317 bool OpenRemotePageRequest::OpenInBrowser( |
| 317 DevToolsAndroidBridge::RemoteBrowser* browser) { | 318 scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser) { |
| 318 if (!browser->IsChrome()) | 319 if (!browser->IsChrome()) |
| 319 return false; | 320 return false; |
| 320 #if defined(DEBUG_DEVTOOLS) | 321 #if defined(DEBUG_DEVTOOLS) |
| 321 if (browser->serial() == kLocalSerial) | 322 if (browser->serial() == kLocalSerial) |
| 322 return false; | 323 return false; |
| 323 #endif // defined(DEBUG_DEVTOOLS) | 324 #endif // defined(DEBUG_DEVTOOLS) |
| 324 android_bridge_->Open(browser, url_, | 325 android_bridge_->Open(browser, url_, |
| 325 base::Bind(&OpenRemotePageRequest::RemotePageOpened, | 326 base::Bind(&OpenRemotePageRequest::RemotePageOpened, |
| 326 base::Unretained(this))); | 327 base::Unretained(this))); |
| 327 return true; | 328 return true; |
| 328 } | 329 } |
| 329 | 330 |
| 330 void OpenRemotePageRequest::RemotePageOpened( | 331 void OpenRemotePageRequest::RemotePageOpened( |
| 331 DevToolsAndroidBridge::RemotePage* page) { | 332 scoped_refptr<DevToolsAndroidBridge::RemotePage> page) { |
| 332 callback_.Run(page); | 333 callback_.Run(page); |
| 333 android_bridge_->RemoveDeviceListListener(this); | 334 android_bridge_->RemoveDeviceListListener(this); |
| 334 delete this; | 335 delete this; |
| 335 } | 336 } |
| 336 | 337 |
| 337 } // namespace | 338 } // namespace |
| 338 | 339 |
| 339 // DevToolsUI ----------------------------------------------------------------- | 340 // DevToolsUI ----------------------------------------------------------------- |
| 340 | 341 |
| 341 // static | 342 // static |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 385 bindings_.Detach(); | 386 bindings_.Detach(); |
| 386 remote_page_opening_url_ = entry->GetVirtualURL(); | 387 remote_page_opening_url_ = entry->GetVirtualURL(); |
| 387 new OpenRemotePageRequest(Profile::FromWebUI(web_ui()), | 388 new OpenRemotePageRequest(Profile::FromWebUI(web_ui()), |
| 388 entry->GetVirtualURL().query(), | 389 entry->GetVirtualURL().query(), |
| 389 base::Bind(&DevToolsUI::RemotePageOpened, | 390 base::Bind(&DevToolsUI::RemotePageOpened, |
| 390 weak_factory_.GetWeakPtr(), | 391 weak_factory_.GetWeakPtr(), |
| 391 entry->GetVirtualURL())); | 392 entry->GetVirtualURL())); |
| 392 } | 393 } |
| 393 | 394 |
| 394 void DevToolsUI::RemotePageOpened( | 395 void DevToolsUI::RemotePageOpened( |
| 395 const GURL& virtual_url, DevToolsAndroidBridge::RemotePage* page) { | 396 const GURL& virtual_url, |
| 397 scoped_refptr<DevToolsAndroidBridge::RemotePage> page) { | |
| 396 // Already navigated away while connecting to remote device. | 398 // Already navigated away while connecting to remote device. |
| 397 if (remote_page_opening_url_ != virtual_url) | 399 if (remote_page_opening_url_ != virtual_url) |
| 398 return; | 400 return; |
| 399 | 401 |
| 400 scoped_ptr<DevToolsAndroidBridge::RemotePage> my_page(page); | 402 scoped_refptr<DevToolsAndroidBridge::RemotePage> my_page = page; |
|
dgozman
2014/09/30 09:23:48
Remove this |my_page|.
vkuzkokov
2014/10/01 09:05:18
Done.
| |
| 401 remote_page_opening_url_ = GURL(); | 403 remote_page_opening_url_ = GURL(); |
| 402 | 404 |
| 403 Profile* profile = Profile::FromWebUI(web_ui()); | 405 Profile* profile = Profile::FromWebUI(web_ui()); |
| 404 GURL url = DevToolsUIBindings::ApplyThemeToURL(profile, | 406 GURL url = DevToolsUIBindings::ApplyThemeToURL(profile, |
| 405 DevToolsUI::GetProxyURL(page->GetFrontendURL())); | 407 DevToolsUI::GetProxyURL(page->frontend_url())); |
| 406 | 408 |
| 407 content::NavigationController& navigation_controller = | 409 content::NavigationController& navigation_controller = |
| 408 web_ui()->GetWebContents()->GetController(); | 410 web_ui()->GetWebContents()->GetController(); |
| 409 content::NavigationController::LoadURLParams params(url); | 411 content::NavigationController::LoadURLParams params(url); |
| 410 params.should_replace_current_entry = true; | 412 params.should_replace_current_entry = true; |
| 411 remote_frontend_loading_url_ = virtual_url; | 413 remote_frontend_loading_url_ = virtual_url; |
| 412 navigation_controller.LoadURLWithParams(params); | 414 navigation_controller.LoadURLWithParams(params); |
| 413 navigation_controller.GetPendingEntry()->SetVirtualURL(virtual_url); | 415 navigation_controller.GetPendingEntry()->SetVirtualURL(virtual_url); |
| 414 | 416 |
| 415 bindings_.AttachTo(page->GetTarget()->GetAgentHost()); | 417 DevToolsAndroidBridge* bridge = |
| 418 DevToolsAndroidBridge::Factory::GetForProfile(profile); | |
| 419 DevToolsTargetImpl* target = bridge->CreatePageTarget(page); | |
| 420 bindings_.AttachTo(target->GetAgentHost()); | |
| 421 delete target; | |
| 416 } | 422 } |
| OLD | NEW |