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

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

Issue 2344753002: DevTools: return discovered targets asynchronously. (Closed)
Patch Set: for bots 2 Created 4 years, 3 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 a9e57a92390edcc2339f669355b25fc324e8232c..b519ad3c97119c5ef4f56187497b1d06553e387a 100644
--- a/chrome/browser/android/devtools_manager_delegate_android.cc
+++ b/chrome/browser/android/devtools_manager_delegate_android.cc
@@ -157,47 +157,10 @@ class TabProxyDelegate : public content::DevToolsExternalAgentProxyDelegate,
DISALLOW_COPY_AND_ASSIGN(TabProxyDelegate);
};
-DevToolsAgentHost::List GetDescriptors() {
- DevToolsAgentHost::List result;
-
- // Enumerate existing tabs, including the ones with no WebContents.
- std::set<WebContents*> tab_web_contents;
- for (TabModelList::const_iterator iter = TabModelList::begin();
- iter != TabModelList::end(); ++iter) {
- TabModel* model = *iter;
- for (int i = 0; i < model->GetTabCount(); ++i) {
- TabAndroid* tab = model->GetTabAt(i);
- if (!tab)
- continue;
-
- scoped_refptr<DevToolsAgentHost> host =
- DevToolsAgentHost::Forward(
- base::IntToString(tab->GetAndroidId()),
- base::WrapUnique(new TabProxyDelegate(tab)));
- }
- }
-
- // Add descriptors for targets not associated with any tabs.
- DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll();
- for (DevToolsAgentHost::List::iterator it = agents.begin();
- it != agents.end(); ++it) {
- if (WebContents* web_contents = (*it)->GetWebContents()) {
- if (tab_web_contents.find(web_contents) != tab_web_contents.end())
- continue;
- }
- result.push_back(*it);
- }
-
- return result;
-}
-
} // namespace
DevToolsManagerDelegateAndroid::DevToolsManagerDelegateAndroid()
: network_protocol_handler_(new DevToolsNetworkProtocolHandler()) {
-#if BUILDFLAG(ANDROID_JAVA_UI)
- DevToolsAgentHost::AddDiscoveryProvider(base::Bind(&GetDescriptors));
-#endif // BUILDFLAG(ANDROID_JAVA_UI)
}
DevToolsManagerDelegateAndroid::~DevToolsManagerDelegateAndroid() {
@@ -231,6 +194,45 @@ std::string DevToolsManagerDelegateAndroid::GetTargetTitle(
return tab ? base::UTF16ToUTF8(tab->GetTitle()) : "";
}
+bool DevToolsManagerDelegateAndroid::DiscoverTargets(
+ const DevToolsAgentHost::DiscoveryCallback& callback) {
+#if BUILDFLAG(ANDROID_JAVA_UI)
+ // Enumerate existing tabs, including the ones with no WebContents.
+ std::set<WebContents*> tab_web_contents;
+ for (TabModelList::const_iterator iter = TabModelList::begin();
+ iter != TabModelList::end(); ++iter) {
+ TabModel* model = *iter;
+ for (int i = 0; i < model->GetTabCount(); ++i) {
+ TabAndroid* tab = model->GetTabAt(i);
+ if (!tab)
+ continue;
+
+ scoped_refptr<DevToolsAgentHost> host =
+ DevToolsAgentHost::Forward(
+ base::IntToString(tab->GetAndroidId()),
+ base::WrapUnique(new TabProxyDelegate(tab)));
+ }
+ }
+
+ // Add descriptors for targets not associated with any tabs.
+ DevToolsAgentHost::List result = DevToolsAgentHost::GetOrCreateAll();
+ DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll();
+ for (DevToolsAgentHost::List::iterator it = agents.begin();
+ it != agents.end(); ++it) {
+ if (WebContents* web_contents = (*it)->GetWebContents()) {
+ if (tab_web_contents.find(web_contents) != tab_web_contents.end())
+ continue;
+ }
+ result.push_back(*it);
+ }
+
+ callback.Run(std::move(result));
+ return true;
+#else
+ return false;
+#endif // BUILDFLAG(ANDROID_JAVA_UI)
+}
+
scoped_refptr<DevToolsAgentHost>
DevToolsManagerDelegateAndroid::CreateNewTarget(const GURL& url) {
if (TabModelList::empty())

Powered by Google App Engine
This is Rietveld 408576698