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

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: cast test 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
« no previous file with comments | « chrome/browser/android/devtools_manager_delegate_android.h ('k') | chrome/browser/android/tab_android.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..b82b932804621dec50699a8a22de8a215d25737f 100644
--- a/chrome/browser/android/devtools_manager_delegate_android.cc
+++ b/chrome/browser/android/devtools_manager_delegate_android.cc
@@ -159,6 +159,17 @@ 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::MakeUnique<TabProxyDelegate>(tab));
+ tab->SetDevToolsAgentHost(result);
+ return result;
+}
+
} // namespace
DevToolsManagerDelegateAndroid::DevToolsManagerDelegateAndroid()
@@ -186,9 +197,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 +212,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 +227,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 +244,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;
}
std::string DevToolsManagerDelegateAndroid::GetDiscoveryPageHTML() {
« no previous file with comments | « chrome/browser/android/devtools_manager_delegate_android.h ('k') | chrome/browser/android/tab_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698