OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/proximity_auth/webui/proximity_auth_webui_handler.h" | 5 #include "components/proximity_auth/webui/proximity_auth_webui_handler.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/i18n/time_formatting.h" | 8 #include "base/i18n/time_formatting.h" |
9 #include "base/prefs/pref_service.h" | 9 #include "base/prefs/pref_service.h" |
10 #include "base/time/default_clock.h" | 10 #include "base/time/default_clock.h" |
11 #include "base/values.h" | 11 #include "base/values.h" |
12 #include "components/proximity_auth/cryptauth/base64url.h" | 12 #include "components/proximity_auth/cryptauth/base64url.h" |
13 #include "components/proximity_auth/cryptauth/cryptauth_enrollment_manager.h" | 13 #include "components/proximity_auth/cryptauth/cryptauth_enrollment_manager.h" |
| 14 #include "components/proximity_auth/cryptauth/cryptauth_gcm_manager_impl.h" |
14 #include "components/proximity_auth/cryptauth/proto/cryptauth_api.pb.h" | 15 #include "components/proximity_auth/cryptauth/proto/cryptauth_api.pb.h" |
15 #include "components/proximity_auth/logging/logging.h" | 16 #include "components/proximity_auth/logging/logging.h" |
16 #include "components/proximity_auth/webui/cryptauth_enroller_factory_impl.h" | 17 #include "components/proximity_auth/webui/cryptauth_enroller_factory_impl.h" |
17 #include "components/proximity_auth/webui/proximity_auth_ui_delegate.h" | 18 #include "components/proximity_auth/webui/proximity_auth_ui_delegate.h" |
18 #include "content/public/browser/web_ui.h" | 19 #include "content/public/browser/web_ui.h" |
19 | 20 |
20 namespace proximity_auth { | 21 namespace proximity_auth { |
21 | 22 |
22 namespace { | 23 namespace { |
23 | 24 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 | 145 |
145 web_ui()->RegisterMessageCallback( | 146 web_ui()->RegisterMessageCallback( |
146 "forceEnrollment", base::Bind(&ProximityAuthWebUIHandler::ForceEnrollment, | 147 "forceEnrollment", base::Bind(&ProximityAuthWebUIHandler::ForceEnrollment, |
147 base::Unretained(this))); | 148 base::Unretained(this))); |
148 | 149 |
149 web_ui()->RegisterMessageCallback( | 150 web_ui()->RegisterMessageCallback( |
150 "forceDeviceSync", base::Bind(&ProximityAuthWebUIHandler::ForceDeviceSync, | 151 "forceDeviceSync", base::Bind(&ProximityAuthWebUIHandler::ForceDeviceSync, |
151 base::Unretained(this))); | 152 base::Unretained(this))); |
152 | 153 |
153 LogBuffer::GetInstance()->AddObserver(this); | 154 LogBuffer::GetInstance()->AddObserver(this); |
| 155 |
| 156 InitGCMManager(); |
154 InitEnrollmentManager(); | 157 InitEnrollmentManager(); |
155 InitDeviceManager(); | 158 InitDeviceManager(); |
156 } | 159 } |
157 | 160 |
158 void ProximityAuthWebUIHandler::OnLogMessageAdded( | 161 void ProximityAuthWebUIHandler::OnLogMessageAdded( |
159 const LogBuffer::LogMessage& log_message) { | 162 const LogBuffer::LogMessage& log_message) { |
160 scoped_ptr<base::DictionaryValue> dictionary = | 163 scoped_ptr<base::DictionaryValue> dictionary = |
161 LogMessageToDictionary(log_message); | 164 LogMessageToDictionary(log_message); |
162 web_ui()->CallJavascriptFunction("LogBufferInterface.onLogMessageAdded", | 165 web_ui()->CallJavascriptFunction("LogBufferInterface.onLogMessageAdded", |
163 *dictionary); | 166 *dictionary); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
233 enrollment_manager_->ForceEnrollmentNow( | 236 enrollment_manager_->ForceEnrollmentNow( |
234 cryptauth::INVOCATION_REASON_MANUAL); | 237 cryptauth::INVOCATION_REASON_MANUAL); |
235 } | 238 } |
236 } | 239 } |
237 | 240 |
238 void ProximityAuthWebUIHandler::ForceDeviceSync(const base::ListValue* args) { | 241 void ProximityAuthWebUIHandler::ForceDeviceSync(const base::ListValue* args) { |
239 if (device_manager_) | 242 if (device_manager_) |
240 device_manager_->ForceSyncNow(cryptauth::INVOCATION_REASON_MANUAL); | 243 device_manager_->ForceSyncNow(cryptauth::INVOCATION_REASON_MANUAL); |
241 } | 244 } |
242 | 245 |
| 246 void ProximityAuthWebUIHandler::InitGCMManager() { |
| 247 gcm_manager_.reset(new CryptAuthGCMManagerImpl(delegate_->GetGCMDriver(), |
| 248 delegate_->GetPrefService())); |
| 249 } |
| 250 |
243 void ProximityAuthWebUIHandler::InitEnrollmentManager() { | 251 void ProximityAuthWebUIHandler::InitEnrollmentManager() { |
244 #if defined(OS_CHROMEOS) | 252 #if defined(OS_CHROMEOS) |
245 // TODO(tengs): We initialize a CryptAuthEnrollmentManager here for | 253 // TODO(tengs): We initialize a CryptAuthEnrollmentManager here for |
246 // development and testing purposes until it is ready to be moved into Chrome. | 254 // development and testing purposes until it is ready to be moved into Chrome. |
247 // The public/private key pair has been generated and serialized in a previous | 255 // The public/private key pair has been generated and serialized in a previous |
248 // session. | 256 // session. |
249 std::string user_public_key; | 257 std::string user_public_key; |
250 Base64UrlDecode( | 258 Base64UrlDecode( |
251 "CAESRgohAD1lP_wgQ8XqVVwz4aK_89SqdvAQG5L_NZH5zXxwg5UbEiEAZFMlgCZ9h8OlyE4" | 259 "CAESRgohAD1lP_wgQ8XqVVwz4aK_89SqdvAQG5L_NZH5zXxwg5UbEiEAZFMlgCZ9h8OlyE4" |
252 "QYKY5oiOBu0FmLSKeTAXEq2jnVJI=", | 260 "QYKY5oiOBu0FmLSKeTAXEq2jnVJI=", |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 "bF9JVWY4YTJDSmJNbXFqaWpYUFYzaVV5dmJXSVRrR3d1bFRaVUs3RGVZczJtT0h5ZkQ1NWR" | 295 "bF9JVWY4YTJDSmJNbXFqaWpYUFYzaVV5dmJXSVRrR3d1bFRaVUs3RGVZczJtT0h5ZkQ1NWR" |
288 "HRXEtdnJTdVc4VEZ2Z1haa2xhVEZTN0dqM2xCVUktSHd5Z0h6bHZHX2NGLWtzQmw0dXdveG" | 296 "HRXEtdnJTdVc4VEZ2Z1haa2xhVEZTN0dqM2xCVUktSHd5Z0h6bHZHX2NGLWtzQmw0dXdveG" |
289 "VPWE1hRlJ3WGJHVUU1Tm9sLS1mdkRIcGVZVnJR", | 297 "VPWE1hRlJ3WGJHVUU1Tm9sLS1mdkRIcGVZVnJR", |
290 &serialized_device_info); | 298 &serialized_device_info); |
291 cryptauth::GcmDeviceInfo device_info; | 299 cryptauth::GcmDeviceInfo device_info; |
292 device_info.ParseFromString(serialized_device_info); | 300 device_info.ParseFromString(serialized_device_info); |
293 | 301 |
294 enrollment_manager_.reset(new CryptAuthEnrollmentManager( | 302 enrollment_manager_.reset(new CryptAuthEnrollmentManager( |
295 make_scoped_ptr(new base::DefaultClock()), | 303 make_scoped_ptr(new base::DefaultClock()), |
296 make_scoped_ptr(new CryptAuthEnrollerFactoryImpl(delegate_)), | 304 make_scoped_ptr(new CryptAuthEnrollerFactoryImpl(delegate_)), |
297 user_public_key, user_private_key, device_info, | 305 user_public_key, user_private_key, device_info, gcm_manager_.get(), |
298 delegate_->GetPrefService())); | 306 delegate_->GetPrefService())); |
299 enrollment_manager_->AddObserver(this); | 307 enrollment_manager_->AddObserver(this); |
300 enrollment_manager_->Start(); | 308 enrollment_manager_->Start(); |
301 #endif | 309 #endif |
302 } | 310 } |
303 | 311 |
304 void ProximityAuthWebUIHandler::InitDeviceManager() { | 312 void ProximityAuthWebUIHandler::InitDeviceManager() { |
305 // TODO(tengs): We initialize a CryptAuthDeviceManager here for | 313 // TODO(tengs): We initialize a CryptAuthDeviceManager here for |
306 // development and testing purposes until it is ready to be moved into Chrome. | 314 // development and testing purposes until it is ready to be moved into Chrome. |
307 device_manager_.reset(new CryptAuthDeviceManager( | 315 device_manager_.reset(new CryptAuthDeviceManager( |
308 make_scoped_ptr(new base::DefaultClock()), | 316 make_scoped_ptr(new base::DefaultClock()), |
309 delegate_->CreateCryptAuthClientFactory(), delegate_->GetPrefService())); | 317 delegate_->CreateCryptAuthClientFactory(), gcm_manager_.get(), |
| 318 delegate_->GetPrefService())); |
310 device_manager_->AddObserver(this); | 319 device_manager_->AddObserver(this); |
311 device_manager_->Start(); | 320 device_manager_->Start(); |
312 } | 321 } |
313 | 322 |
314 void ProximityAuthWebUIHandler::OnCryptAuthClientError( | 323 void ProximityAuthWebUIHandler::OnCryptAuthClientError( |
315 const std::string& error_message) { | 324 const std::string& error_message) { |
316 PA_LOG(WARNING) << "CryptAuth request failed: " << error_message; | 325 PA_LOG(WARNING) << "CryptAuth request failed: " << error_message; |
317 base::StringValue error_string(error_message); | 326 base::StringValue error_string(error_message); |
318 web_ui()->CallJavascriptFunction("CryptAuthInterface.onError", error_string); | 327 web_ui()->CallJavascriptFunction("CryptAuthInterface.onError", error_string); |
319 } | 328 } |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 return make_scoped_ptr(new base::DictionaryValue()); | 375 return make_scoped_ptr(new base::DictionaryValue()); |
367 | 376 |
368 return CreateSyncStateDictionary( | 377 return CreateSyncStateDictionary( |
369 device_manager_->GetLastSyncTime().ToJsTime(), | 378 device_manager_->GetLastSyncTime().ToJsTime(), |
370 device_manager_->GetTimeToNextAttempt().InMillisecondsF(), | 379 device_manager_->GetTimeToNextAttempt().InMillisecondsF(), |
371 device_manager_->IsRecoveringFromFailure(), | 380 device_manager_->IsRecoveringFromFailure(), |
372 device_manager_->IsSyncInProgress()); | 381 device_manager_->IsSyncInProgress()); |
373 } | 382 } |
374 | 383 |
375 } // namespace proximity_auth | 384 } // namespace proximity_auth |
OLD | NEW |