OLD | NEW |
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 "chrome/browser/signin/oauth2_token_service_delegate_android.h" | 5 #include "chrome/browser/signin/oauth2_token_service_delegate_android.h" |
6 | 6 |
7 #include "base/android/context_utils.h" | 7 #include "base/android/context_utils.h" |
8 #include "base/android/jni_android.h" | 8 #include "base/android/jni_android.h" |
9 #include "base/android/jni_array.h" | 9 #include "base/android/jni_array.h" |
10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 ValidateAccountId(account_id); | 279 ValidateAccountId(account_id); |
280 JNIEnv* env = AttachCurrentThread(); | 280 JNIEnv* env = AttachCurrentThread(); |
281 ScopedJavaLocalRef<jstring> j_access_token = | 281 ScopedJavaLocalRef<jstring> j_access_token = |
282 ConvertUTF8ToJavaString(env, access_token); | 282 ConvertUTF8ToJavaString(env, access_token); |
283 Java_OAuth2TokenService_invalidateOAuth2AuthToken( | 283 Java_OAuth2TokenService_invalidateOAuth2AuthToken( |
284 env, base::android::GetApplicationContext(), j_access_token.obj()); | 284 env, base::android::GetApplicationContext(), j_access_token.obj()); |
285 } | 285 } |
286 | 286 |
287 void OAuth2TokenServiceDelegateAndroid::ValidateAccounts( | 287 void OAuth2TokenServiceDelegateAndroid::ValidateAccounts( |
288 JNIEnv* env, | 288 JNIEnv* env, |
289 jobject obj, | 289 const JavaParamRef<jobject>& obj, |
290 jstring j_current_acc, | 290 const JavaParamRef<jstring>& j_current_acc, |
291 jboolean j_force_notifications) { | 291 jboolean j_force_notifications) { |
292 std::string signed_in_account_name; | 292 std::string signed_in_account_name; |
293 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::ValidateAccounts from java"; | 293 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::ValidateAccounts from java"; |
294 if (j_current_acc) | 294 if (j_current_acc) |
295 signed_in_account_name = ConvertJavaStringToUTF8(env, j_current_acc); | 295 signed_in_account_name = ConvertJavaStringToUTF8(env, j_current_acc); |
296 if (!signed_in_account_name.empty()) | 296 if (!signed_in_account_name.empty()) |
297 signed_in_account_name = gaia::CanonicalizeEmail(signed_in_account_name); | 297 signed_in_account_name = gaia::CanonicalizeEmail(signed_in_account_name); |
298 | 298 |
299 // Clear any auth errors so that client can retry to get access tokens. | 299 // Clear any auth errors so that client can retry to get access tokens. |
300 errors_.clear(); | 300 errors_.clear(); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::ValidateAccounts:" | 429 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::ValidateAccounts:" |
430 << "revoked=" << prev_id; | 430 << "revoked=" << prev_id; |
431 revoked_ids->push_back(prev_id); | 431 revoked_ids->push_back(prev_id); |
432 } | 432 } |
433 } | 433 } |
434 return currently_signed_in; | 434 return currently_signed_in; |
435 } | 435 } |
436 | 436 |
437 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokenAvailableFromJava( | 437 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokenAvailableFromJava( |
438 JNIEnv* env, | 438 JNIEnv* env, |
439 jobject obj, | 439 const JavaParamRef<jobject>& obj, |
440 const jstring account_name) { | 440 const JavaParamRef<jstring>& account_name) { |
441 std::string account_id = | 441 std::string account_id = |
442 MapAccountNameToAccountId(ConvertJavaStringToUTF8(env, account_name)); | 442 MapAccountNameToAccountId(ConvertJavaStringToUTF8(env, account_name)); |
443 // Notify native observers. | 443 // Notify native observers. |
444 FireRefreshTokenAvailable(account_id); | 444 FireRefreshTokenAvailable(account_id); |
445 } | 445 } |
446 | 446 |
447 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokenAvailable( | 447 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokenAvailable( |
448 const std::string& account_id) { | 448 const std::string& account_id) { |
449 // TODO(knn): Convert to DCHECK after https://crbug.com/535211 | 449 // TODO(knn): Convert to DCHECK after https://crbug.com/535211 |
450 CHECK(!account_id.empty()); | 450 CHECK(!account_id.empty()); |
451 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::FireRefreshTokenAvailable id=" | 451 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::FireRefreshTokenAvailable id=" |
452 << account_id; | 452 << account_id; |
453 std::string account_name = MapAccountIdToAccountName(account_id); | 453 std::string account_name = MapAccountIdToAccountName(account_id); |
454 // TODO(knn): Convert to DCHECK after https://crbug.com/535211 | 454 // TODO(knn): Convert to DCHECK after https://crbug.com/535211 |
455 CHECK(!account_name.empty()); | 455 CHECK(!account_name.empty()); |
456 JNIEnv* env = AttachCurrentThread(); | 456 JNIEnv* env = AttachCurrentThread(); |
457 ScopedJavaLocalRef<jstring> j_account_name = | 457 ScopedJavaLocalRef<jstring> j_account_name = |
458 ConvertUTF8ToJavaString(env, account_name); | 458 ConvertUTF8ToJavaString(env, account_name); |
459 Java_OAuth2TokenService_notifyRefreshTokenAvailable(env, java_ref_.obj(), | 459 Java_OAuth2TokenService_notifyRefreshTokenAvailable(env, java_ref_.obj(), |
460 j_account_name.obj()); | 460 j_account_name.obj()); |
461 OAuth2TokenServiceDelegate::FireRefreshTokenAvailable(account_id); | 461 OAuth2TokenServiceDelegate::FireRefreshTokenAvailable(account_id); |
462 } | 462 } |
463 | 463 |
464 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokenRevokedFromJava( | 464 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokenRevokedFromJava( |
465 JNIEnv* env, | 465 JNIEnv* env, |
466 jobject obj, | 466 const JavaParamRef<jobject>& obj, |
467 const jstring account_name) { | 467 const JavaParamRef<jstring>& account_name) { |
468 std::string account_id = | 468 std::string account_id = |
469 MapAccountNameToAccountId(ConvertJavaStringToUTF8(env, account_name)); | 469 MapAccountNameToAccountId(ConvertJavaStringToUTF8(env, account_name)); |
470 // Notify native observers. | 470 // Notify native observers. |
471 FireRefreshTokenRevoked(account_id); | 471 FireRefreshTokenRevoked(account_id); |
472 } | 472 } |
473 | 473 |
474 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokenRevoked( | 474 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokenRevoked( |
475 const std::string& account_id) { | 475 const std::string& account_id) { |
476 // TODO(knn): Convert to DCHECK after https://crbug.com/535211 | 476 // TODO(knn): Convert to DCHECK after https://crbug.com/535211 |
477 CHECK(!account_id.empty()); | 477 CHECK(!account_id.empty()); |
478 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::FireRefreshTokenRevoked id=" | 478 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::FireRefreshTokenRevoked id=" |
479 << account_id; | 479 << account_id; |
480 std::string account_name = MapAccountIdToAccountName(account_id); | 480 std::string account_name = MapAccountIdToAccountName(account_id); |
481 // TODO(knn): Convert to DCHECK after https://crbug.com/535211 | 481 // TODO(knn): Convert to DCHECK after https://crbug.com/535211 |
482 CHECK(!account_name.empty()); | 482 CHECK(!account_name.empty()); |
483 JNIEnv* env = AttachCurrentThread(); | 483 JNIEnv* env = AttachCurrentThread(); |
484 ScopedJavaLocalRef<jstring> j_account_name = | 484 ScopedJavaLocalRef<jstring> j_account_name = |
485 ConvertUTF8ToJavaString(env, account_name); | 485 ConvertUTF8ToJavaString(env, account_name); |
486 Java_OAuth2TokenService_notifyRefreshTokenRevoked(env, java_ref_.obj(), | 486 Java_OAuth2TokenService_notifyRefreshTokenRevoked(env, java_ref_.obj(), |
487 j_account_name.obj()); | 487 j_account_name.obj()); |
488 OAuth2TokenServiceDelegate::FireRefreshTokenRevoked(account_id); | 488 OAuth2TokenServiceDelegate::FireRefreshTokenRevoked(account_id); |
489 } | 489 } |
490 | 490 |
491 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokensLoadedFromJava( | 491 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokensLoadedFromJava( |
492 JNIEnv* env, | 492 JNIEnv* env, |
493 jobject obj) { | 493 const JavaParamRef<jobject>& obj) { |
494 // Notify native observers. | 494 // Notify native observers. |
495 FireRefreshTokensLoaded(); | 495 FireRefreshTokensLoaded(); |
496 } | 496 } |
497 | 497 |
498 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokensLoaded() { | 498 void OAuth2TokenServiceDelegateAndroid::FireRefreshTokensLoaded() { |
499 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::FireRefreshTokensLoaded"; | 499 DVLOG(1) << "OAuth2TokenServiceDelegateAndroid::FireRefreshTokensLoaded"; |
500 JNIEnv* env = AttachCurrentThread(); | 500 JNIEnv* env = AttachCurrentThread(); |
501 Java_OAuth2TokenService_notifyRefreshTokensLoaded(env, java_ref_.obj()); | 501 Java_OAuth2TokenService_notifyRefreshTokensLoaded(env, java_ref_.obj()); |
502 OAuth2TokenServiceDelegate::FireRefreshTokensLoaded(); | 502 OAuth2TokenServiceDelegate::FireRefreshTokensLoaded(); |
503 } | 503 } |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
567 : isTransientError | 567 : isTransientError |
568 ? GoogleServiceAuthError::CONNECTION_FAILED | 568 ? GoogleServiceAuthError::CONNECTION_FAILED |
569 : GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); | 569 : GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS); |
570 heap_callback->Run(err, token, base::Time()); | 570 heap_callback->Run(err, token, base::Time()); |
571 } | 571 } |
572 | 572 |
573 // static | 573 // static |
574 bool OAuth2TokenServiceDelegateAndroid::Register(JNIEnv* env) { | 574 bool OAuth2TokenServiceDelegateAndroid::Register(JNIEnv* env) { |
575 return RegisterNativesImpl(env); | 575 return RegisterNativesImpl(env); |
576 } | 576 } |
OLD | NEW |