OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/chromeos/mobile/mobile_activator.h" | 5 #include "chrome/browser/chromeos/mobile/mobile_activator.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <map> | 8 #include <map> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 base::AutoLock create(config_lock_); | 115 base::AutoLock create(config_lock_); |
116 error_map_.clear(); | 116 error_map_.clear(); |
117 error_map_.insert(map.begin(), map.end()); | 117 error_map_.insert(map.begin(), map.end()); |
118 } | 118 } |
119 | 119 |
120 bool CellularConfigDocument::LoadFromFile(const base::FilePath& config_path) { | 120 bool CellularConfigDocument::LoadFromFile(const base::FilePath& config_path) { |
121 std::string config; | 121 std::string config; |
122 if (!base::ReadFileToString(config_path, &config)) | 122 if (!base::ReadFileToString(config_path, &config)) |
123 return false; | 123 return false; |
124 | 124 |
125 scoped_ptr<Value> root( | 125 scoped_ptr<base::Value> root( |
126 base::JSONReader::Read(config, base::JSON_ALLOW_TRAILING_COMMAS)); | 126 base::JSONReader::Read(config, base::JSON_ALLOW_TRAILING_COMMAS)); |
127 DCHECK(root.get() != NULL); | 127 DCHECK(root.get() != NULL); |
128 if (!root.get() || root->GetType() != Value::TYPE_DICTIONARY) { | 128 if (!root.get() || root->GetType() != base::Value::TYPE_DICTIONARY) { |
129 LOG(WARNING) << "Bad cellular config file"; | 129 LOG(WARNING) << "Bad cellular config file"; |
130 return false; | 130 return false; |
131 } | 131 } |
132 | 132 |
133 DictionaryValue* root_dict = static_cast<DictionaryValue*>(root.get()); | 133 base::DictionaryValue* root_dict = |
| 134 static_cast<base::DictionaryValue*>(root.get()); |
134 if (!root_dict->GetString(kVersionField, &version_)) { | 135 if (!root_dict->GetString(kVersionField, &version_)) { |
135 LOG(WARNING) << "Cellular config file missing version"; | 136 LOG(WARNING) << "Cellular config file missing version"; |
136 return false; | 137 return false; |
137 } | 138 } |
138 ErrorMap error_map; | 139 ErrorMap error_map; |
139 DictionaryValue* errors = NULL; | 140 base::DictionaryValue* errors = NULL; |
140 if (!root_dict->GetDictionary(kErrorsField, &errors)) | 141 if (!root_dict->GetDictionary(kErrorsField, &errors)) |
141 return false; | 142 return false; |
142 for (DictionaryValue::Iterator it(*errors); !it.IsAtEnd(); it.Advance()) { | 143 for (base::DictionaryValue::Iterator it(*errors); |
| 144 !it.IsAtEnd(); it.Advance()) { |
143 std::string value; | 145 std::string value; |
144 if (!it.value().GetAsString(&value)) { | 146 if (!it.value().GetAsString(&value)) { |
145 LOG(WARNING) << "Bad cellular config error value"; | 147 LOG(WARNING) << "Bad cellular config error value"; |
146 return false; | 148 return false; |
147 } | 149 } |
148 error_map.insert(ErrorMap::value_type(it.key(), value)); | 150 error_map.insert(ErrorMap::value_type(it.key(), value)); |
149 } | 151 } |
150 SetErrorMap(error_map); | 152 SetErrorMap(error_map); |
151 return true; | 153 return true; |
152 } | 154 } |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 } | 281 } |
280 | 282 |
281 void MobileActivator::GetPropertiesAndContinueActivation( | 283 void MobileActivator::GetPropertiesAndContinueActivation( |
282 const std::string& service_path, | 284 const std::string& service_path, |
283 const base::DictionaryValue& properties) { | 285 const base::DictionaryValue& properties) { |
284 if (service_path != service_path_) { | 286 if (service_path != service_path_) { |
285 NET_LOG_EVENT("MobileActivator::GetProperties received for stale network", | 287 NET_LOG_EVENT("MobileActivator::GetProperties received for stale network", |
286 service_path); | 288 service_path); |
287 return; // Edge case; abort. | 289 return; // Edge case; abort. |
288 } | 290 } |
289 const DictionaryValue* payment_dict; | 291 const base::DictionaryValue* payment_dict; |
290 std::string usage_url, payment_url; | 292 std::string usage_url, payment_url; |
291 if (!properties.GetStringWithoutPathExpansion( | 293 if (!properties.GetStringWithoutPathExpansion( |
292 shill::kUsageURLProperty, &usage_url) || | 294 shill::kUsageURLProperty, &usage_url) || |
293 !properties.GetDictionaryWithoutPathExpansion( | 295 !properties.GetDictionaryWithoutPathExpansion( |
294 shill::kPaymentPortalProperty, &payment_dict) || | 296 shill::kPaymentPortalProperty, &payment_dict) || |
295 !payment_dict->GetStringWithoutPathExpansion( | 297 !payment_dict->GetStringWithoutPathExpansion( |
296 shill::kPaymentPortalURL, &payment_url)) { | 298 shill::kPaymentPortalURL, &payment_url)) { |
297 NET_LOG_ERROR("MobileActivator missing properties", service_path_); | 299 NET_LOG_ERROR("MobileActivator missing properties", service_path_); |
298 return; | 300 return; |
299 } | 301 } |
300 | 302 |
301 if (payment_url.empty() && usage_url.empty()) | 303 if (payment_url.empty() && usage_url.empty()) |
302 return; | 304 return; |
303 | 305 |
304 DisableCertRevocationChecking(); | 306 DisableCertRevocationChecking(); |
305 | 307 |
306 // We want shill to connect us after activations, so enable autoconnect. | 308 // We want shill to connect us after activations, so enable autoconnect. |
307 DictionaryValue auto_connect_property; | 309 base::DictionaryValue auto_connect_property; |
308 auto_connect_property.SetBoolean(shill::kAutoConnectProperty, true); | 310 auto_connect_property.SetBoolean(shill::kAutoConnectProperty, true); |
309 NetworkHandler::Get()->network_configuration_handler()->SetProperties( | 311 NetworkHandler::Get()->network_configuration_handler()->SetProperties( |
310 service_path_, | 312 service_path_, |
311 auto_connect_property, | 313 auto_connect_property, |
312 base::Bind(&base::DoNothing), | 314 base::Bind(&base::DoNothing), |
313 network_handler::ErrorCallback()); | 315 network_handler::ErrorCallback()); |
314 StartActivation(); | 316 StartActivation(); |
315 } | 317 } |
316 | 318 |
317 void MobileActivator::GetPropertiesFailure( | 319 void MobileActivator::GetPropertiesFailure( |
(...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1079 cellular_plan_payment_time_ = base::Time::Now(); | 1081 cellular_plan_payment_time_ = base::Time::Now(); |
1080 } | 1082 } |
1081 | 1083 |
1082 bool MobileActivator::HasRecentCellularPlanPayment() const { | 1084 bool MobileActivator::HasRecentCellularPlanPayment() const { |
1083 const int kRecentPlanPaymentHours = 6; | 1085 const int kRecentPlanPaymentHours = 6; |
1084 return (base::Time::Now() - | 1086 return (base::Time::Now() - |
1085 cellular_plan_payment_time_).InHours() < kRecentPlanPaymentHours; | 1087 cellular_plan_payment_time_).InHours() < kRecentPlanPaymentHours; |
1086 } | 1088 } |
1087 | 1089 |
1088 } // namespace chromeos | 1090 } // namespace chromeos |
OLD | NEW |