Index: chrome/browser/android/devtools_manager_delegate_android.cc |
diff --git a/chrome/browser/android/dev_tools_discovery_provider_android.cc b/chrome/browser/android/devtools_manager_delegate_android.cc |
similarity index 69% |
rename from chrome/browser/android/dev_tools_discovery_provider_android.cc |
rename to chrome/browser/android/devtools_manager_delegate_android.cc |
index 906c52d46123efdc458965eca89615f81a5135e6..af00880a5f2dac3d1da6e711052ba450e971c5a8 100644 |
--- a/chrome/browser/android/dev_tools_discovery_provider_android.cc |
+++ b/chrome/browser/android/devtools_manager_delegate_android.cc |
@@ -1,33 +1,27 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
dgozman
2016/08/27 00:49:13
Stray change?
pfeldman
2016/08/27 01:53:55
No, git picked wrong prototype.
|
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/android/dev_tools_discovery_provider_android.h" |
+#include "chrome/browser/android/devtools_manager_delegate_android.h" |
#include "base/bind.h" |
-#include "base/compiler_specific.h" |
-#include "base/macros.h" |
-#include "base/memory/ptr_util.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/utf_string_conversions.h" |
+#include "build/build_config.h" |
#include "chrome/browser/android/tab_android.h" |
-#include "chrome/browser/browser_process.h" |
+#include "chrome/browser/devtools/devtools_network_protocol_handler.h" |
#include "chrome/browser/ui/android/tab_model/tab_model.h" |
#include "chrome/browser/ui/android/tab_model/tab_model_list.h" |
-#include "components/devtools_discovery/devtools_discovery_manager.h" |
+#include "chrome/common/features.h" |
#include "content/public/browser/devtools_agent_host.h" |
#include "content/public/browser/devtools_agent_host_client.h" |
#include "content/public/browser/devtools_external_agent_proxy.h" |
#include "content/public/browser/devtools_external_agent_proxy_delegate.h" |
-#include "content/public/browser/favicon_status.h" |
-#include "content/public/browser/navigation_entry.h" |
#include "content/public/browser/web_contents.h" |
using content::DevToolsAgentHost; |
using content::WebContents; |
-namespace { |
dgozman
2016/08/27 00:49:13
Bring back the namespace!
pfeldman
2016/08/27 01:53:55
Done.
|
- |
class TabProxyDelegate : public content::DevToolsExternalAgentProxyDelegate, |
public content::DevToolsAgentHostClient { |
public: |
@@ -157,41 +151,13 @@ class TabProxyDelegate : public content::DevToolsExternalAgentProxyDelegate, |
const int tab_id_; |
const std::string title_; |
const GURL url_; |
- scoped_refptr<content::DevToolsAgentHost> agent_host_; |
+ scoped_refptr<DevToolsAgentHost> agent_host_; |
content::DevToolsExternalAgentProxy* proxy_; |
DISALLOW_COPY_AND_ASSIGN(TabProxyDelegate); |
}; |
-scoped_refptr<content::DevToolsAgentHost> CreateNewAndroidTab(const GURL& url) { |
- if (TabModelList::empty()) |
- return nullptr; |
- |
- TabModel* tab_model = TabModelList::get(0); |
- if (!tab_model) |
- return nullptr; |
- |
- WebContents* web_contents = tab_model->CreateNewTabForDevTools(url); |
- if (!web_contents) |
- return nullptr; |
- |
- TabAndroid* tab = TabAndroid::FromWebContents(web_contents); |
- if (!tab) |
- return nullptr; |
- |
- return content::DevToolsAgentHost::Create(new TabProxyDelegate(tab)); |
-} |
- |
-} // namespace |
- |
-DevToolsDiscoveryProviderAndroid::DevToolsDiscoveryProviderAndroid() { |
-} |
- |
-DevToolsDiscoveryProviderAndroid::~DevToolsDiscoveryProviderAndroid() { |
-} |
- |
-content::DevToolsAgentHost::List |
-DevToolsDiscoveryProviderAndroid::GetDescriptors() { |
- content::DevToolsAgentHost::List result; |
+DevToolsAgentHost::List GetDescriptors() { |
+ DevToolsAgentHost::List result; |
// Enumerate existing tabs, including the ones with no WebContents. |
std::set<WebContents*> tab_web_contents; |
@@ -203,7 +169,7 @@ DevToolsDiscoveryProviderAndroid::GetDescriptors() { |
if (!tab) |
continue; |
- scoped_refptr<content::DevToolsAgentHost> host = |
+ scoped_refptr<DevToolsAgentHost> host = |
DevToolsAgentHost::Create(new TabProxyDelegate(tab)); |
} |
} |
@@ -222,11 +188,71 @@ DevToolsDiscoveryProviderAndroid::GetDescriptors() { |
return result; |
} |
-// static |
-void DevToolsDiscoveryProviderAndroid::Install() { |
- devtools_discovery::DevToolsDiscoveryManager* discovery_manager = |
- devtools_discovery::DevToolsDiscoveryManager::GetInstance(); |
- discovery_manager->AddProvider( |
- base::WrapUnique(new DevToolsDiscoveryProviderAndroid())); |
- discovery_manager->SetCreateCallback(base::Bind(&CreateNewAndroidTab)); |
+DevToolsManagerDelegateAndroid::DevToolsManagerDelegateAndroid() |
+ : network_protocol_handler_(new DevToolsNetworkProtocolHandler()) { |
+#if BUILDFLAG(ANDROID_JAVA_UI) |
+ DevToolsAgentHost::AddDiscoveryProvider(base::Bind(&GetDescriptors)); |
+#endif // BUILDFLAG(ANDROID_JAVA_UI) |
+} |
+ |
+DevToolsManagerDelegateAndroid::~DevToolsManagerDelegateAndroid() { |
+} |
+ |
+void DevToolsManagerDelegateAndroid::Inspect( |
+ DevToolsAgentHost* agent_host) { |
+} |
+ |
+base::DictionaryValue* DevToolsManagerDelegateAndroid::HandleCommand( |
+ DevToolsAgentHost* agent_host, |
+ base::DictionaryValue* command_dict) { |
+ return network_protocol_handler_->HandleCommand(agent_host, command_dict); |
+} |
+ |
+std::string DevToolsManagerDelegateAndroid::GetTargetType( |
+ content::RenderFrameHost* host) { |
+ content::WebContents* web_contents = |
+ content::WebContents::FromRenderFrameHost(host); |
+ 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 && web_contents == tab->web_contents()) |
+ return DevToolsAgentHost::kTypePage; |
dgozman
2016/08/27 00:49:13
Use TabAndroid::FromWebContents(web_contents) here
pfeldman
2016/08/27 01:53:55
What?
|
+ } |
+ } |
+ return DevToolsAgentHost::kTypeOther; |
+} |
+ |
+std::string DevToolsManagerDelegateAndroid::GetTargetTitle( |
+ content::RenderFrameHost* host) { |
+ content::WebContents* web_contents = |
+ content::WebContents::FromRenderFrameHost(host); |
+ TabAndroid* tab = TabAndroid::FromWebContents(web_contents); |
+ return tab ? base::UTF16ToUTF8(tab->GetTitle()) : ""; |
+} |
+ |
+scoped_refptr<DevToolsAgentHost> |
+DevToolsManagerDelegateAndroid::CreateNewTarget(const GURL& url) { |
+ if (TabModelList::empty()) |
+ return nullptr; |
+ |
+ TabModel* tab_model = TabModelList::get(0); |
+ if (!tab_model) |
+ return nullptr; |
+ |
+ WebContents* web_contents = tab_model->CreateNewTabForDevTools(url); |
+ if (!web_contents) |
+ return nullptr; |
+ |
+ TabAndroid* tab = TabAndroid::FromWebContents(web_contents); |
+ if (!tab) |
+ return nullptr; |
+ |
+ return DevToolsAgentHost::Create(new TabProxyDelegate(tab)); |
+} |
+ |
+void DevToolsManagerDelegateAndroid::DevToolsAgentStateChanged( |
+ DevToolsAgentHost* agent_host, bool attached) { |
+ network_protocol_handler_->DevToolsAgentStateChanged(agent_host, attached); |
} |