Chromium Code Reviews| Index: chrome/browser/android/signin/signin_manager_android.cc |
| diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/browser/android/signin/signin_manager_android.cc |
| index c1e5d83aad8473e074333d2b69fe98479b5f4af9..7515b7aee58f061dd8d5541904a709c2d0f3628c 100644 |
| --- a/chrome/browser/android/signin/signin_manager_android.cc |
| +++ b/chrome/browser/android/signin/signin_manager_android.cc |
| @@ -6,6 +6,7 @@ |
| #include "chrome/browser/android/signin/signin_manager_android.h" |
| +#include "base/android/callback_android.h" |
| #include "base/android/jni_android.h" |
| #include "base/android/jni_array.h" |
| #include "base/android/jni_string.h" |
| @@ -298,13 +299,47 @@ static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
| static jboolean ShouldLoadPolicyForUser( |
| JNIEnv* env, |
| - const JavaParamRef<jobject>& obj, |
| + const JavaParamRef<jclass>& clazz, |
| const JavaParamRef<jstring>& j_username) { |
| std::string username = |
| base::android::ConvertJavaStringToUTF8(env, j_username); |
| return !policy::BrowserPolicyConnector::IsNonEnterpriseUser(username); |
| } |
| +namespace { |
|
Bernhard Bauer
2016/06/03 08:50:06
Move to this the existing anonymous namespace at t
PEConn
2016/06/27 09:34:33
Done.
|
| + |
| +void UserManagementDomainFetched( |
| + base::android::ScopedJavaGlobalRef<jobject> callback, |
| + const std::string& dm_token, const std::string& client_id) { |
| + base::android::ScopedJavaLocalRef<jstring> j_domain = |
| + base::android::ConvertUTF8ToJavaString( |
| + base::android::AttachCurrentThread(), |
| + dm_token); |
| + |
| + base::android::RunCallbackAndroid(callback, j_domain); |
|
Bernhard Bauer
2016/06/03 08:50:07
As discussed offline, this should be a boolean |is
PEConn
2016/06/27 09:34:33
Done.
|
| +} |
| + |
| +} // namespace |
| + |
| +static void FetchUserManagementDomain( |
| + JNIEnv* env, |
| + const JavaParamRef<jclass>& clazz, |
| + const JavaParamRef<jstring>& j_username, |
| + const JavaParamRef<jobject>& j_callback) { |
| + base::android::ScopedJavaGlobalRef<jobject> callback(env, j_callback); |
| + |
| + Profile* profile = ProfileManager::GetActiveUserProfile(); |
| + std::string username = |
| + base::android::ConvertJavaStringToUTF8(env, j_username); |
| + policy::UserPolicySigninService* service = |
| + policy::UserPolicySigninServiceFactory::GetForProfile(profile); |
| + service->RegisterForPolicy( |
|
Bernhard Bauer
2016/06/03 08:50:07
You are sure that registering for policy without u
Bernhard Bauer
2016/06/29 10:51:26
^^^
PEConn
2016/06/30 09:26:44
In RegisterForPolicy, the CloudPolicyClient (which
|
| + username, AccountTrackerServiceFactory::GetForProfile(profile) |
| + ->FindAccountInfoByEmail(username) |
| + .account_id, |
| + base::Bind(&UserManagementDomainFetched, callback)); |
| +} |
| + |
| // static |
| bool SigninManagerAndroid::Register(JNIEnv* env) { |
| return RegisterNativesImpl(env); |