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); |