summaryrefslogtreecommitdiffstats
path: root/components/signin
diff options
context:
space:
mode:
authorknn <knn@chromium.org>2015-09-15 08:49:46 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-15 15:50:48 +0000
commit02d798fe1ad6da982ec4ea2554ea20a3a676ce26 (patch)
treefbf0796bd55173b025ebf739b0740275bfbd4ae7 /components/signin
parent96bc5ccc7965045ece2271cb810d4956bf502668 (diff)
downloadchromium_src-02d798fe1ad6da982ec4ea2554ea20a3a676ce26.zip
chromium_src-02d798fe1ad6da982ec4ea2554ea20a3a676ce26.tar.gz
chromium_src-02d798fe1ad6da982ec4ea2554ea20a3a676ce26.tar.bz2
[Android] Map GAIA id <-> email in ChildAccountInfoFetcherAndroid.
This will fix child account detection post http://crrev.com/1256283002 BUG=531608 Review URL: https://codereview.chromium.org/1337723004 Cr-Commit-Position: refs/heads/master@{#348896}
Diffstat (limited to 'components/signin')
-rw-r--r--components/signin/core/browser/account_fetcher_service.h2
-rw-r--r--components/signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java5
-rw-r--r--components/signin/core/browser/child_account_info_fetcher_android.cc18
-rw-r--r--components/signin/core/browser/child_account_info_fetcher_android.h3
4 files changed, 10 insertions, 18 deletions
diff --git a/components/signin/core/browser/account_fetcher_service.h b/components/signin/core/browser/account_fetcher_service.h
index 82042bc..0443d68 100644
--- a/components/signin/core/browser/account_fetcher_service.h
+++ b/components/signin/core/browser/account_fetcher_service.h
@@ -61,7 +61,6 @@ class AccountFetcherService : public KeyedService,
void FetchUserInfoBeforeSignin(const std::string& account_id);
- protected:
AccountTrackerService* account_tracker_service() const {
return account_tracker_service_;
}
@@ -72,7 +71,6 @@ class AccountFetcherService : public KeyedService,
private:
friend class AccountInfoFetcher;
friend class ChildAccountInfoFetcherImpl;
- friend class ChildAccountInfoFetcherAndroid;
void RefreshAllAccountInfo(bool only_fetch_if_invalid);
void RefreshAllAccountsAndScheduleNext();
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java
index 3dfc915..d2fe991 100644
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/ChildAccountInfoFetcher.java
@@ -30,14 +30,15 @@ public final class ChildAccountInfoFetcher {
}
@CalledByNative
- private static void fetch(final long nativeAccountFetcherService, final String accountId) {
+ private static void fetch(final long nativeAccountFetcherService, final String accountId,
+ final String accountName) {
Context app = ApplicationStatus.getApplicationContext();
assert app != null;
AccountManagerHelper helper = AccountManagerHelper.get(app);
Account[] accounts = helper.getGoogleAccounts();
Account candidate_account = null;
for (Account account : accounts) {
- if (account.name.equals(accountId)) {
+ if (account.name.equals(accountName)) {
candidate_account = account;
break;
}
diff --git a/components/signin/core/browser/child_account_info_fetcher_android.cc b/components/signin/core/browser/child_account_info_fetcher_android.cc
index 39ec8c4..0c7c59a 100644
--- a/components/signin/core/browser/child_account_info_fetcher_android.cc
+++ b/components/signin/core/browser/child_account_info_fetcher_android.cc
@@ -7,6 +7,7 @@
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "components/signin/core/browser/account_fetcher_service.h"
+#include "components/signin/core/browser/account_tracker_service.h"
#include "jni/ChildAccountInfoFetcher_jni.h"
// static
@@ -14,17 +15,12 @@ void ChildAccountInfoFetcherAndroid::StartFetchingChildAccountInfo(
AccountFetcherService* service,
const std::string& account_id) {
JNIEnv* env = base::android::AttachCurrentThread();
+ std::string account_name =
+ service->account_tracker_service()->GetAccountInfo(account_id).email;
Java_ChildAccountInfoFetcher_fetch(
env, reinterpret_cast<jlong>(service),
- base::android::ConvertUTF8ToJavaString(env, account_id).obj());
-}
-
-// static
-void ChildAccountInfoFetcherAndroid::SetIsChildAccount(
- AccountFetcherService* service,
- std::string account_id,
- bool is_child_account) {
- service->SetIsChildAccount(account_id, is_child_account);
+ base::android::ConvertUTF8ToJavaString(env, account_id).obj(),
+ base::android::ConvertUTF8ToJavaString(env, account_name).obj());
}
// static
@@ -39,7 +35,7 @@ void SetIsChildAccount(JNIEnv* env,
jboolean is_child_account) {
AccountFetcherService* service =
reinterpret_cast<AccountFetcherService*>(native_service);
- ChildAccountInfoFetcherAndroid::SetIsChildAccount(
- service, base::android::ConvertJavaStringToUTF8(env, j_account_id),
+ service->SetIsChildAccount(
+ base::android::ConvertJavaStringToUTF8(env, j_account_id),
is_child_account);
}
diff --git a/components/signin/core/browser/child_account_info_fetcher_android.h b/components/signin/core/browser/child_account_info_fetcher_android.h
index 371a7b1..db8b0f4 100644
--- a/components/signin/core/browser/child_account_info_fetcher_android.h
+++ b/components/signin/core/browser/child_account_info_fetcher_android.h
@@ -16,9 +16,6 @@ class ChildAccountInfoFetcherAndroid {
public:
static void StartFetchingChildAccountInfo(AccountFetcherService* service,
const std::string& account_id);
- static void SetIsChildAccount(AccountFetcherService* service,
- std::string account_id,
- bool is_child_account);
// Register JNI methods.
static bool Register(JNIEnv* env);