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

Unified Diff: chrome/browser/android/devtools_manager_delegate_android.cc

Issue 2833213002: DevTools: retain DTAH in all the targets to match their life time. (Closed)
Patch Set: for landing Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698