Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/devtools/device/devtools_android_bridge.h" | 5 #include "chrome/browser/devtools/device/devtools_android_bridge.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 721 : profile_(profile), | 721 : profile_(profile), |
| 722 device_manager_(AndroidDeviceManager::Create()), | 722 device_manager_(AndroidDeviceManager::Create()), |
| 723 task_scheduler_(base::Bind(&DevToolsAndroidBridge::ScheduleTaskDefault)), | 723 task_scheduler_(base::Bind(&DevToolsAndroidBridge::ScheduleTaskDefault)), |
| 724 port_forwarding_controller_(new PortForwardingController(profile, this)), | 724 port_forwarding_controller_(new PortForwardingController(profile, this)), |
| 725 weak_factory_(this) { | 725 weak_factory_(this) { |
| 726 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 726 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 727 pref_change_registrar_.Init(profile_->GetPrefs()); | 727 pref_change_registrar_.Init(profile_->GetPrefs()); |
| 728 pref_change_registrar_.Add(prefs::kDevToolsDiscoverUsbDevicesEnabled, | 728 pref_change_registrar_.Add(prefs::kDevToolsDiscoverUsbDevicesEnabled, |
| 729 base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders, | 729 base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders, |
| 730 base::Unretained(this))); | 730 base::Unretained(this))); |
| 731 pref_change_registrar_.Add(prefs::kDevToolsTargetDiscoveryConfig, | |
| 732 base::Bind(&DevToolsAndroidBridge::CreateDeviceProviders, | |
| 733 base::Unretained(this))); | |
| 731 CreateDeviceProviders(); | 734 CreateDeviceProviders(); |
| 732 } | 735 } |
| 733 | 736 |
| 734 void DevToolsAndroidBridge::AddDeviceListListener( | 737 void DevToolsAndroidBridge::AddDeviceListListener( |
| 735 DeviceListListener* listener) { | 738 DeviceListListener* listener) { |
| 736 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 739 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 737 bool polling_was_off = !NeedsDeviceListPolling(); | 740 bool polling_was_off = !NeedsDeviceListPolling(); |
| 738 device_list_listeners_.push_back(listener); | 741 device_list_listeners_.push_back(listener); |
| 739 if (polling_was_off) | 742 if (polling_was_off) |
| 740 StartDeviceListPolling(); | 743 StartDeviceListPolling(); |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 896 | 899 |
| 897 // static | 900 // static |
| 898 void DevToolsAndroidBridge::ScheduleTaskDefault(const base::Closure& task) { | 901 void DevToolsAndroidBridge::ScheduleTaskDefault(const base::Closure& task) { |
| 899 BrowserThread::PostDelayedTask( | 902 BrowserThread::PostDelayedTask( |
| 900 BrowserThread::UI, | 903 BrowserThread::UI, |
| 901 FROM_HERE, | 904 FROM_HERE, |
| 902 task, | 905 task, |
| 903 base::TimeDelta::FromMilliseconds(kAdbPollingIntervalMs)); | 906 base::TimeDelta::FromMilliseconds(kAdbPollingIntervalMs)); |
| 904 } | 907 } |
| 905 | 908 |
| 906 static scoped_refptr<TCPDeviceProvider> CreateTCPDeviceProvider() { | 909 static scoped_refptr<TCPDeviceProvider> CreateTCPDeviceProvider( |
| 910 const base::ListValue* targetDiscoveryConfig) { | |
| 907 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); | 911 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
| 908 if (!command_line->HasSwitch(switches::kRemoteDebuggingTargets)) | 912 if (targetDiscoveryConfig->empty() && |
| 913 !command_line->HasSwitch(switches::kRemoteDebuggingTargets)) | |
| 909 return nullptr; | 914 return nullptr; |
| 910 std::string value = | 915 std::string value = |
| 911 command_line->GetSwitchValueASCII(switches::kRemoteDebuggingTargets); | 916 command_line->GetSwitchValueASCII(switches::kRemoteDebuggingTargets); |
| 912 std::vector<std::string> addresses = base::SplitString( | 917 std::vector<std::string> addresses = base::SplitString( |
| 913 value, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); | 918 value, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
| 914 std::set<net::HostPortPair> targets; | 919 std::set<net::HostPortPair> targets; |
| 915 for (const std::string& address : addresses) { | 920 for (const std::string& address : addresses) { |
| 916 net::HostPortPair target = net::HostPortPair::FromString(address); | 921 net::HostPortPair target = net::HostPortPair::FromString(address); |
| 917 if (target.IsEmpty()) { | 922 if (target.IsEmpty()) { |
| 918 LOG(WARNING) << "Invalid target: " << address; | 923 LOG(WARNING) << "Invalid target: " << address; |
| 919 continue; | 924 continue; |
| 920 } | 925 } |
| 921 targets.insert(target); | 926 targets.insert(target); |
| 922 } | 927 } |
| 928 std::string address; | |
| 929 for (size_t i = 0; i < targetDiscoveryConfig->GetSize(); i++) { | |
| 930 if (!targetDiscoveryConfig->GetString(i, &address)) | |
| 931 continue; | |
| 932 net::HostPortPair target = net::HostPortPair::FromString(address); | |
| 933 if (target.IsEmpty()) { | |
| 934 LOG(WARNING) << "Invalid target: " << address; | |
| 935 continue; | |
| 936 } | |
| 937 targets.insert(target); | |
| 938 } | |
| 923 if (targets.empty()) | 939 if (targets.empty()) |
| 924 return nullptr; | 940 return nullptr; |
| 925 return new TCPDeviceProvider(targets); | 941 return new TCPDeviceProvider(targets); |
| 926 } | 942 } |
| 927 | 943 |
| 928 void DevToolsAndroidBridge::CreateDeviceProviders() { | 944 void DevToolsAndroidBridge::CreateDeviceProviders() { |
| 929 AndroidDeviceManager::DeviceProviders device_providers; | 945 AndroidDeviceManager::DeviceProviders device_providers; |
| 946 PrefService* service = profile_->GetPrefs(); | |
| 947 const PrefService::Preference* discoveryPref = | |
| 948 service->FindPreference(prefs::kDevToolsTargetDiscoveryConfig); | |
| 949 const base::ListValue* targets; | |
| 950 discoveryPref->GetValue()->GetAsList(&targets); | |
|
dgozman
2016/08/16 20:24:33
What if it's not there?
eostroukhov-old
2016/08/16 23:55:33
I updated the code - please let me know if I under
| |
| 930 | 951 |
| 931 if (scoped_refptr<TCPDeviceProvider> provider = CreateTCPDeviceProvider()) | 952 if (scoped_refptr<TCPDeviceProvider> provider = |
| 953 CreateTCPDeviceProvider(targets)) | |
| 932 device_providers.push_back(provider); | 954 device_providers.push_back(provider); |
| 933 | 955 |
| 934 #if defined(ENABLE_SERVICE_DISCOVERY) | 956 #if defined(ENABLE_SERVICE_DISCOVERY) |
| 935 device_providers.push_back(new CastDeviceProvider()); | 957 device_providers.push_back(new CastDeviceProvider()); |
| 936 #endif | 958 #endif |
| 937 | 959 |
| 938 device_providers.push_back(new AdbDeviceProvider()); | 960 device_providers.push_back(new AdbDeviceProvider()); |
| 939 | 961 |
| 940 PrefService* service = profile_->GetPrefs(); | |
| 941 const PrefService::Preference* pref = | 962 const PrefService::Preference* pref = |
| 942 service->FindPreference(prefs::kDevToolsDiscoverUsbDevicesEnabled); | 963 service->FindPreference(prefs::kDevToolsDiscoverUsbDevicesEnabled); |
| 943 const base::Value* pref_value = pref->GetValue(); | 964 const base::Value* pref_value = pref->GetValue(); |
| 944 | 965 |
| 945 bool enabled; | 966 bool enabled; |
| 946 if (pref_value->GetAsBoolean(&enabled) && enabled) { | 967 if (pref_value->GetAsBoolean(&enabled) && enabled) { |
| 947 device_providers.push_back(new UsbDeviceProvider(profile_)); | 968 device_providers.push_back(new UsbDeviceProvider(profile_)); |
| 948 } | 969 } |
| 949 | 970 |
| 950 device_manager_->SetDeviceProviders(device_providers); | 971 device_manager_->SetDeviceProviders(device_providers); |
| 951 if (NeedsDeviceListPolling()) { | 972 if (NeedsDeviceListPolling()) { |
| 952 StopDeviceListPolling(); | 973 StopDeviceListPolling(); |
| 953 StartDeviceListPolling(); | 974 StartDeviceListPolling(); |
| 954 } | 975 } |
| 955 } | 976 } |
| OLD | NEW |