Chromium Code Reviews| 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); |
| } |