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

Side by Side Diff: extensions/browser/api/networking_private/networking_private_chromeos.cc

Issue 2891453002: Introduce networkingPrivate.getCertificateLists (Closed)
Patch Set: Clang format Created 3 years, 7 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 unified diff | Download patch
OLDNEW
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 "extensions/browser/api/networking_private/networking_private_chromeos. h" 5 #include "extensions/browser/api/networking_private/networking_private_chromeos. h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
11 #include "base/callback.h" 11 #include "base/callback.h"
12 #include "base/logging.h" 12 #include "base/logging.h"
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "base/values.h" 14 #include "base/values.h"
15 #include "chromeos/dbus/dbus_thread_manager.h" 15 #include "chromeos/dbus/dbus_thread_manager.h"
16 #include "chromeos/dbus/shill_manager_client.h" 16 #include "chromeos/dbus/shill_manager_client.h"
17 #include "chromeos/login/login_state.h" 17 #include "chromeos/login/login_state.h"
18 #include "chromeos/network/device_state.h" 18 #include "chromeos/network/device_state.h"
19 #include "chromeos/network/managed_network_configuration_handler.h" 19 #include "chromeos/network/managed_network_configuration_handler.h"
20 #include "chromeos/network/network_activation_handler.h" 20 #include "chromeos/network/network_activation_handler.h"
21 #include "chromeos/network/network_certificate_handler.h"
21 #include "chromeos/network/network_connection_handler.h" 22 #include "chromeos/network/network_connection_handler.h"
22 #include "chromeos/network/network_device_handler.h" 23 #include "chromeos/network/network_device_handler.h"
23 #include "chromeos/network/network_event_log.h" 24 #include "chromeos/network/network_event_log.h"
24 #include "chromeos/network/network_state.h" 25 #include "chromeos/network/network_state.h"
25 #include "chromeos/network/network_state_handler.h" 26 #include "chromeos/network/network_state_handler.h"
26 #include "chromeos/network/network_util.h" 27 #include "chromeos/network/network_util.h"
27 #include "chromeos/network/onc/onc_signature.h" 28 #include "chromeos/network/onc/onc_signature.h"
28 #include "chromeos/network/onc/onc_translator.h" 29 #include "chromeos/network/onc/onc_translator.h"
29 #include "chromeos/network/onc/onc_utils.h" 30 #include "chromeos/network/onc/onc_utils.h"
30 #include "chromeos/network/portal_detector/network_portal_detector.h" 31 #include "chromeos/network/portal_detector/network_portal_detector.h"
31 #include "chromeos/network/proxy/ui_proxy_config.h" 32 #include "chromeos/network/proxy/ui_proxy_config.h"
32 #include "chromeos/network/proxy/ui_proxy_config_service.h" 33 #include "chromeos/network/proxy/ui_proxy_config_service.h"
33 #include "components/onc/onc_constants.h" 34 #include "components/onc/onc_constants.h"
34 #include "components/proxy_config/proxy_prefs.h" 35 #include "components/proxy_config/proxy_prefs.h"
35 #include "content/public/browser/browser_context.h" 36 #include "content/public/browser/browser_context.h"
36 #include "extensions/browser/api/networking_private/networking_private_api.h" 37 #include "extensions/browser/api/networking_private/networking_private_api.h"
37 #include "extensions/browser/extension_registry.h" 38 #include "extensions/browser/extension_registry.h"
38 #include "extensions/browser/extensions_browser_client.h" 39 #include "extensions/browser/extensions_browser_client.h"
39 #include "extensions/common/extension.h" 40 #include "extensions/common/extension.h"
40 #include "extensions/common/extension_set.h" 41 #include "extensions/common/extension_set.h"
41 #include "extensions/common/permissions/api_permission.h" 42 #include "extensions/common/permissions/api_permission.h"
42 #include "extensions/common/permissions/permissions_data.h" 43 #include "extensions/common/permissions/permissions_data.h"
43 #include "third_party/cros_system_api/dbus/service_constants.h" 44 #include "third_party/cros_system_api/dbus/service_constants.h"
44 45
45 using chromeos::NetworkHandler; 46 using chromeos::NetworkHandler;
47 using chromeos::NetworkCertificateHandler;
46 using chromeos::NetworkStateHandler; 48 using chromeos::NetworkStateHandler;
47 using chromeos::NetworkTypePattern; 49 using chromeos::NetworkTypePattern;
48 using chromeos::ShillManagerClient; 50 using chromeos::ShillManagerClient;
49 using chromeos::UIProxyConfig; 51 using chromeos::UIProxyConfig;
50 using extensions::NetworkingPrivateDelegate; 52 using extensions::NetworkingPrivateDelegate;
51 53
52 namespace private_api = extensions::api::networking_private; 54 namespace private_api = extensions::api::networking_private;
53 55
54 namespace { 56 namespace {
55 57
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 EnsureDictionaryValue(::onc::proxy::kHost, dict); 294 EnsureDictionaryValue(::onc::proxy::kHost, dict);
293 SetProxyEffectiveValue( 295 SetProxyEffectiveValue(
294 host_dict, state, 296 host_dict, state,
295 base::MakeUnique<base::Value>(proxy.server.host_port_pair().host())); 297 base::MakeUnique<base::Value>(proxy.server.host_port_pair().host()));
296 uint16_t port = proxy.server.host_port_pair().port(); 298 uint16_t port = proxy.server.host_port_pair().port();
297 base::DictionaryValue* port_dict = 299 base::DictionaryValue* port_dict =
298 EnsureDictionaryValue(::onc::proxy::kPort, dict); 300 EnsureDictionaryValue(::onc::proxy::kPort, dict);
299 SetProxyEffectiveValue(port_dict, state, base::MakeUnique<base::Value>(port)); 301 SetProxyEffectiveValue(port_dict, state, base::MakeUnique<base::Value>(port));
300 } 302 }
301 303
304 private_api::Certificate GetCertDictionary(
305 const NetworkCertificateHandler::Certificate& cert) {
306 private_api::Certificate api_cert;
307 api_cert.hash = cert.hash;
308 api_cert.issued_by = cert.issued_by;
309 api_cert.issued_to = cert.issued_to;
310 api_cert.hardware_backed = cert.hardware_backed;
311 if (!cert.pem.empty())
312 api_cert.pem = base::MakeUnique<std::string>(cert.pem);
313 if (!cert.pkcs11_id.empty())
314 api_cert.pkcs11_id = base::MakeUnique<std::string>(cert.pkcs11_id);
315 return api_cert;
316 }
317
302 } // namespace 318 } // namespace
303 319
304 //////////////////////////////////////////////////////////////////////////////// 320 ////////////////////////////////////////////////////////////////////////////////
305 321
306 namespace extensions { 322 namespace extensions {
307 323
308 NetworkingPrivateChromeOS::NetworkingPrivateChromeOS( 324 NetworkingPrivateChromeOS::NetworkingPrivateChromeOS(
309 content::BrowserContext* browser_context) 325 content::BrowserContext* browser_context)
310 : browser_context_(browser_context), weak_ptr_factory_(this) {} 326 : browser_context_(browser_context), weak_ptr_factory_(this) {}
311 327
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
739 NetworkingPrivateChromeOS::GetGlobalPolicy() { 755 NetworkingPrivateChromeOS::GetGlobalPolicy() {
740 auto result = base::MakeUnique<base::DictionaryValue>(); 756 auto result = base::MakeUnique<base::DictionaryValue>();
741 const base::DictionaryValue* global_network_config = 757 const base::DictionaryValue* global_network_config =
742 GetManagedConfigurationHandler()->GetGlobalConfigFromPolicy( 758 GetManagedConfigurationHandler()->GetGlobalConfigFromPolicy(
743 std::string() /* no username hash, device policy */); 759 std::string() /* no username hash, device policy */);
744 if (global_network_config) 760 if (global_network_config)
745 result->MergeDictionary(global_network_config); 761 result->MergeDictionary(global_network_config);
746 return result; 762 return result;
747 } 763 }
748 764
765 std::unique_ptr<base::DictionaryValue>
766 NetworkingPrivateChromeOS::GetCertificateLists() {
767 private_api::CertificateLists result;
768 const std::vector<NetworkCertificateHandler::Certificate>& server_cas =
769 NetworkHandler::Get()
770 ->network_certificate_handler()
771 ->server_ca_certificates();
772 for (const auto& cert : server_cas)
773 result.server_ca_certificates.push_back(GetCertDictionary(cert));
774
775 std::vector<private_api::Certificate> user_cert_list;
776 const std::vector<NetworkCertificateHandler::Certificate>& user_certs =
777 NetworkHandler::Get()->network_certificate_handler()->user_certificates();
778 for (const auto& cert : user_certs)
779 result.user_certificates.push_back(GetCertDictionary(cert));
780
781 return result.ToValue();
782 }
783
749 bool NetworkingPrivateChromeOS::EnableNetworkType(const std::string& type) { 784 bool NetworkingPrivateChromeOS::EnableNetworkType(const std::string& type) {
750 NetworkTypePattern pattern = 785 NetworkTypePattern pattern =
751 chromeos::onc::NetworkTypePatternFromOncType(type); 786 chromeos::onc::NetworkTypePatternFromOncType(type);
752 787
753 GetStateHandler()->SetTechnologyEnabled( 788 GetStateHandler()->SetTechnologyEnabled(
754 pattern, true, chromeos::network_handler::ErrorCallback()); 789 pattern, true, chromeos::network_handler::ErrorCallback());
755 790
756 return true; 791 return true;
757 } 792 }
758 793
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
880 } 915 }
881 case UIProxyConfig::MODE_DIRECT: 916 case UIProxyConfig::MODE_DIRECT:
882 case UIProxyConfig::MODE_AUTO_DETECT: 917 case UIProxyConfig::MODE_AUTO_DETECT:
883 break; 918 break;
884 } 919 }
885 920
886 VLOG(2) << " NEW PROXY: " << *proxy_settings; 921 VLOG(2) << " NEW PROXY: " << *proxy_settings;
887 } 922 }
888 923
889 } // namespace extensions 924 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698