Chromium Code Reviews| Index: chrome/browser/ui/webui/devtools_ui.cc |
| diff --git a/chrome/browser/ui/webui/devtools_ui.cc b/chrome/browser/ui/webui/devtools_ui.cc |
| index 25e16c2e33fc2d55826ebf51cf18e5caa2f53539..f8940f4cfeeb5872d9c7c2771c8752c13b253b5e 100644 |
| --- a/chrome/browser/ui/webui/devtools_ui.cc |
| +++ b/chrome/browser/ui/webui/devtools_ui.cc |
| @@ -268,8 +268,9 @@ class OpenRemotePageRequest : public DevToolsAndroidBridge::DeviceListListener { |
| virtual void DeviceListChanged( |
| const DevToolsAndroidBridge::RemoteDevices& devices) OVERRIDE; |
| - bool OpenInBrowser(DevToolsAndroidBridge::RemoteBrowser* browser); |
| - void RemotePageOpened(DevToolsAndroidBridge::RemotePage* page); |
| + bool OpenInBrowser( |
| + scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser); |
| + void RemotePageOpened(scoped_refptr<DevToolsAndroidBridge::RemotePage> page); |
| std::string url_; |
| DevToolsAndroidBridge::RemotePageCallback callback_; |
| @@ -314,7 +315,7 @@ void OpenRemotePageRequest::DeviceListChanged( |
| } |
| bool OpenRemotePageRequest::OpenInBrowser( |
| - DevToolsAndroidBridge::RemoteBrowser* browser) { |
| + scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> browser) { |
| if (!browser->IsChrome()) |
| return false; |
| #if defined(DEBUG_DEVTOOLS) |
| @@ -328,7 +329,7 @@ bool OpenRemotePageRequest::OpenInBrowser( |
| } |
| void OpenRemotePageRequest::RemotePageOpened( |
| - DevToolsAndroidBridge::RemotePage* page) { |
| + scoped_refptr<DevToolsAndroidBridge::RemotePage> page) { |
| callback_.Run(page); |
| android_bridge_->RemoveDeviceListListener(this); |
| delete this; |
| @@ -392,17 +393,18 @@ void DevToolsUI::NavigationEntryCommitted( |
| } |
| void DevToolsUI::RemotePageOpened( |
| - const GURL& virtual_url, DevToolsAndroidBridge::RemotePage* page) { |
| + const GURL& virtual_url, |
| + scoped_refptr<DevToolsAndroidBridge::RemotePage> page) { |
| // Already navigated away while connecting to remote device. |
| if (remote_page_opening_url_ != virtual_url) |
| return; |
| - scoped_ptr<DevToolsAndroidBridge::RemotePage> my_page(page); |
| + 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.
|
| remote_page_opening_url_ = GURL(); |
| Profile* profile = Profile::FromWebUI(web_ui()); |
| GURL url = DevToolsUIBindings::ApplyThemeToURL(profile, |
| - DevToolsUI::GetProxyURL(page->GetFrontendURL())); |
| + DevToolsUI::GetProxyURL(page->frontend_url())); |
| content::NavigationController& navigation_controller = |
| web_ui()->GetWebContents()->GetController(); |
| @@ -412,5 +414,9 @@ void DevToolsUI::RemotePageOpened( |
| navigation_controller.LoadURLWithParams(params); |
| navigation_controller.GetPendingEntry()->SetVirtualURL(virtual_url); |
| - bindings_.AttachTo(page->GetTarget()->GetAgentHost()); |
| + DevToolsAndroidBridge* bridge = |
| + DevToolsAndroidBridge::Factory::GetForProfile(profile); |
| + DevToolsTargetImpl* target = bridge->CreatePageTarget(page); |
| + bindings_.AttachTo(target->GetAgentHost()); |
| + delete target; |
| } |