Chromium Code Reviews| Index: chrome/browser/android/devtools_manager_delegate_android.cc |
| diff --git a/chrome/browser/android/devtools_manager_delegate_android.cc b/chrome/browser/android/devtools_manager_delegate_android.cc |
| index 0d84421c0d559ac1d731bfc648f0b7df08f040ba..00b4c375dfc795129bb1a48db6034267c9533913 100644 |
| --- a/chrome/browser/android/devtools_manager_delegate_android.cc |
| +++ b/chrome/browser/android/devtools_manager_delegate_android.cc |
| @@ -159,6 +159,18 @@ class TabProxyDelegate : public content::DevToolsExternalAgentProxyDelegate, |
| DISALLOW_COPY_AND_ASSIGN(TabProxyDelegate); |
| }; |
| +scoped_refptr<DevToolsAgentHost> DevToolsAgentHostForTab(TabAndroid* tab) { |
| + scoped_refptr<DevToolsAgentHost> result = tab->GetDevToolsAgentHost(); |
| + if (result) |
| + return result; |
| + |
| + result = |
| + DevToolsAgentHost::Forward(base::IntToString(tab->GetAndroidId()), |
| + base::WrapUnique(new TabProxyDelegate(tab))); |
|
Bernhard Bauer
2017/04/24 12:16:57
Use base::MakeUnique<>?
|
| + tab->SetDevToolsAgentHost(result); |
| + return result; |
| +} |
| + |
| } // namespace |
| DevToolsManagerDelegateAndroid::DevToolsManagerDelegateAndroid() |
| @@ -186,9 +198,8 @@ std::string DevToolsManagerDelegateAndroid::GetTargetType( |
| DevToolsAgentHost::kTypeOther; |
| } |
| -bool DevToolsManagerDelegateAndroid::DiscoverTargets( |
| - const DevToolsAgentHost::DiscoveryCallback& callback) { |
| -#if defined(OS_ANDROID) |
| +DevToolsAgentHost::List |
| +DevToolsManagerDelegateAndroid::RemoteDebuggingTargets() { |
| // Enumerate existing tabs, including the ones with no WebContents. |
| DevToolsAgentHost::List result; |
| std::set<WebContents*> tab_web_contents; |
| @@ -202,12 +213,7 @@ bool DevToolsManagerDelegateAndroid::DiscoverTargets( |
| if (tab->web_contents()) |
| tab_web_contents.insert(tab->web_contents()); |
| - |
| - scoped_refptr<DevToolsAgentHost> host = |
| - DevToolsAgentHost::Forward( |
| - base::IntToString(tab->GetAndroidId()), |
| - base::WrapUnique(new TabProxyDelegate(tab))); |
| - result.push_back(host); |
| + result.push_back(DevToolsAgentHostForTab(tab)); |
| } |
| } |
| @@ -222,11 +228,7 @@ bool DevToolsManagerDelegateAndroid::DiscoverTargets( |
| result.push_back(*it); |
| } |
| - callback.Run(std::move(result)); |
| - return true; |
| -#else |
| - return false; |
| -#endif // defined(OS_ANDROID) |
| + return result; |
| } |
| scoped_refptr<DevToolsAgentHost> |
| @@ -243,12 +245,7 @@ DevToolsManagerDelegateAndroid::CreateNewTarget(const GURL& url) { |
| return nullptr; |
| TabAndroid* tab = TabAndroid::FromWebContents(web_contents); |
| - if (!tab) |
| - return nullptr; |
| - |
| - return DevToolsAgentHost::Forward( |
| - base::IntToString(tab->GetAndroidId()), |
| - base::WrapUnique(new TabProxyDelegate(tab))); |
| + return tab ? DevToolsAgentHostForTab(tab) : nullptr; |
|
Bernhard Bauer
2017/04/24 12:16:57
Mini-nit: I kind of liked the old `if (tab) return
|
| } |
| std::string DevToolsManagerDelegateAndroid::GetDiscoveryPageHTML() { |