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

Side by Side Diff: chromeos/network/policy_util.cc

Issue 2387783002: Remove stl_util's deletion functions from chromeos/. (Closed)
Patch Set: armansito Created 4 years, 2 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
« no previous file with comments | « chromeos/network/policy_util.h ('k') | chromeos/settings/timezone_settings.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "chromeos/network/policy_util.h" 5 #include "chromeos/network/policy_util.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "chromeos/network/network_profile.h" 11 #include "chromeos/network/network_profile.h"
12 #include "chromeos/network/network_ui_data.h" 12 #include "chromeos/network/network_ui_data.h"
13 #include "chromeos/network/onc/onc_merger.h" 13 #include "chromeos/network/onc/onc_merger.h"
14 #include "chromeos/network/onc/onc_normalizer.h" 14 #include "chromeos/network/onc/onc_normalizer.h"
15 #include "chromeos/network/onc/onc_signature.h" 15 #include "chromeos/network/onc/onc_signature.h"
16 #include "chromeos/network/onc/onc_translator.h" 16 #include "chromeos/network/onc/onc_translator.h"
17 #include "chromeos/network/onc/onc_utils.h" 17 #include "chromeos/network/onc/onc_utils.h"
18 #include "chromeos/network/shill_property_util.h" 18 #include "chromeos/network/shill_property_util.h"
19 #include "components/onc/onc_constants.h" 19 #include "components/onc/onc_constants.h"
20 #include "third_party/cros_system_api/dbus/service_constants.h" 20 #include "third_party/cros_system_api/dbus/service_constants.h"
21 21
22 namespace chromeos { 22 namespace chromeos {
23 23
24 namespace policy_util { 24 namespace policy_util {
25 25
26 namespace { 26 namespace {
27 27
28 // This fake credential contains a random postfix which is extremly unlikely to 28 // This fake credential contains a random postfix which is extremely unlikely to
29 // be used by any user. 29 // be used by any user.
30 const char kFakeCredential[] = "FAKE_CREDENTIAL_VPaJDV9x"; 30 const char kFakeCredential[] = "FAKE_CREDENTIAL_VPaJDV9x";
31 31
32 32
33 // Removes all kFakeCredential values from sensitive fields (determined by 33 // Removes all kFakeCredential values from sensitive fields (determined by
34 // onc::FieldIsCredential) of |onc_object|. 34 // onc::FieldIsCredential) of |onc_object|.
35 void RemoveFakeCredentials( 35 void RemoveFakeCredentials(
36 const onc::OncValueSignature& signature, 36 const onc::OncValueSignature& signature,
37 base::DictionaryValue* onc_object) { 37 base::DictionaryValue* onc_object) {
38 base::DictionaryValue::Iterator it(*onc_object); 38 base::DictionaryValue::Iterator it(*onc_object);
39 while (!it.IsAtEnd()) { 39 while (!it.IsAtEnd()) {
40 base::Value* value = NULL; 40 base::Value* value = NULL;
41 std::string field_name = it.key(); 41 std::string field_name = it.key();
42 // We need the non-const entry to remove nested values but DictionaryValue 42 // We need the non-const entry to remove nested values but DictionaryValue
43 // has no non-const iterator. 43 // has no non-const iterator.
44 onc_object->GetWithoutPathExpansion(field_name, &value); 44 onc_object->GetWithoutPathExpansion(field_name, &value);
45 // Advance before delete. 45 // Advance before delete.
46 it.Advance(); 46 it.Advance();
47 47
48 // If |value| is a dictionary, recurse. 48 // If |value| is a dictionary, recurse.
49 base::DictionaryValue* nested_object = NULL; 49 base::DictionaryValue* nested_object = NULL;
50 if (value->GetAsDictionary(&nested_object)) { 50 if (value->GetAsDictionary(&nested_object)) {
51 const onc::OncFieldSignature* field_signature = 51 const onc::OncFieldSignature* field_signature =
52 onc::GetFieldSignature(signature, field_name); 52 onc::GetFieldSignature(signature, field_name);
53 if (field_signature) 53 if (field_signature)
54 RemoveFakeCredentials(*field_signature->value_signature, nested_object); 54 RemoveFakeCredentials(*field_signature->value_signature, nested_object);
55 else 55 else
56 LOG(ERROR) << "ONC has unrecoginzed field: " << field_name; 56 LOG(ERROR) << "ONC has unrecognized field: " << field_name;
57 continue; 57 continue;
58 } 58 }
59 59
60 // If |value| is a string, check if it is a fake credential. 60 // If |value| is a string, check if it is a fake credential.
61 std::string string_value; 61 std::string string_value;
62 if (value->GetAsString(&string_value) && 62 if (value->GetAsString(&string_value) &&
63 onc::FieldIsCredential(signature, field_name)) { 63 onc::FieldIsCredential(signature, field_name)) {
64 if (string_value == kFakeCredential) { 64 if (string_value == kFakeCredential) {
65 // The value wasn't modified by the UI, thus we remove the field to keep 65 // The value wasn't modified by the UI, thus we remove the field to keep
66 // the existing value that is stored in Shill. 66 // the existing value that is stored in Shill.
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 global_network_policy.GetBooleanWithoutPathExpansion( 281 global_network_policy.GetBooleanWithoutPathExpansion(
282 ::onc::global_network_config::kAllowOnlyPolicyNetworksToAutoconnect, 282 ::onc::global_network_config::kAllowOnlyPolicyNetworksToAutoconnect,
283 &only_policy_autoconnect); 283 &only_policy_autoconnect);
284 if (!only_policy_autoconnect) 284 if (!only_policy_autoconnect)
285 return; 285 return;
286 286
287 bool old_autoconnect = false; 287 bool old_autoconnect = false;
288 if (shill_dictionary.GetBooleanWithoutPathExpansion( 288 if (shill_dictionary.GetBooleanWithoutPathExpansion(
289 shill::kAutoConnectProperty, &old_autoconnect) && 289 shill::kAutoConnectProperty, &old_autoconnect) &&
290 !old_autoconnect) { 290 !old_autoconnect) {
291 // Autoconnect is already explictly disabled. No need to set it again. 291 // Autoconnect is already explicitly disabled. No need to set it again.
292 return; 292 return;
293 } 293 }
294 294
295 // If autconnect is not explicitly set yet, it might automatically be enabled 295 // If autoconnect is not explicitly set yet, it might automatically be enabled
296 // by Shill. To prevent that, disable it explicitly. 296 // by Shill. To prevent that, disable it explicitly.
297 shill_properties_to_update->SetBooleanWithoutPathExpansion( 297 shill_properties_to_update->SetBooleanWithoutPathExpansion(
298 shill::kAutoConnectProperty, false); 298 shill::kAutoConnectProperty, false);
299 } 299 }
300 300
301 std::unique_ptr<base::DictionaryValue> CreateShillConfiguration( 301 std::unique_ptr<base::DictionaryValue> CreateShillConfiguration(
302 const NetworkProfile& profile, 302 const NetworkProfile& profile,
303 const std::string& guid, 303 const std::string& guid,
304 const base::DictionaryValue* global_policy, 304 const base::DictionaryValue* global_policy,
305 const base::DictionaryValue* network_policy, 305 const base::DictionaryValue* network_policy,
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 shill_property_util::SetUIData(*ui_data, shill_dictionary.get()); 391 shill_property_util::SetUIData(*ui_data, shill_dictionary.get());
392 392
393 VLOG(2) << "Created Shill properties: " << *shill_dictionary; 393 VLOG(2) << "Created Shill properties: " << *shill_dictionary;
394 394
395 return shill_dictionary; 395 return shill_dictionary;
396 } 396 }
397 397
398 const base::DictionaryValue* FindMatchingPolicy( 398 const base::DictionaryValue* FindMatchingPolicy(
399 const GuidToPolicyMap& policies, 399 const GuidToPolicyMap& policies,
400 const base::DictionaryValue& actual_network) { 400 const base::DictionaryValue& actual_network) {
401 for (GuidToPolicyMap::const_iterator it = policies.begin(); 401 for (auto it = policies.begin(); it != policies.end(); ++it) {
402 it != policies.end(); ++it) {
403 if (IsPolicyMatching(*it->second, actual_network)) 402 if (IsPolicyMatching(*it->second, actual_network))
404 return it->second; 403 return it->second.get();
405 } 404 }
406 return NULL; 405 return NULL;
407 } 406 }
408 407
409 } // namespace policy_util 408 } // namespace policy_util
410 409
411 } // namespace chromeos 410 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/network/policy_util.h ('k') | chromeos/settings/timezone_settings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698