Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(363)

Side by Side Diff: chrome/browser/android/signin/signin_manager_android.cc

Issue 1786263002: Remove uses of ENABLE_CONFIGURATION_POLICY from src/chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sort Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <vector> 5 #include <vector>
6 6
7 #include "chrome/browser/android/signin/signin_manager_android.h" 7 #include "chrome/browser/android/signin/signin_manager_android.h"
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
11 #include "base/android/jni_string.h" 11 #include "base/android/jni_string.h"
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/bind_helpers.h" 13 #include "base/bind_helpers.h"
14 #include "base/macros.h" 14 #include "base/macros.h"
15 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
16 #include "base/single_thread_task_runner.h" 16 #include "base/single_thread_task_runner.h"
17 #include "base/thread_task_runner_handle.h" 17 #include "base/thread_task_runner_handle.h"
18 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 18 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
19 #include "chrome/browser/browser_process.h" 19 #include "chrome/browser/browser_process.h"
20 #include "chrome/browser/browsing_data/browsing_data_helper.h" 20 #include "chrome/browser/browsing_data/browsing_data_helper.h"
21 #include "chrome/browser/browsing_data/browsing_data_remover.h" 21 #include "chrome/browser/browsing_data/browsing_data_remover.h"
22 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" 22 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
23 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
24 #include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h"
23 #include "chrome/browser/policy/cloud/user_policy_signin_service_mobile.h" 25 #include "chrome/browser/policy/cloud/user_policy_signin_service_mobile.h"
24 #include "chrome/browser/profiles/profile_manager.h" 26 #include "chrome/browser/profiles/profile_manager.h"
25 #include "chrome/browser/signin/account_tracker_service_factory.h" 27 #include "chrome/browser/signin/account_tracker_service_factory.h"
26 #include "chrome/browser/signin/oauth2_token_service_delegate_android.h" 28 #include "chrome/browser/signin/oauth2_token_service_delegate_android.h"
27 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" 29 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
28 #include "chrome/browser/signin/signin_manager_factory.h" 30 #include "chrome/browser/signin/signin_manager_factory.h"
29 #include "components/bookmarks/browser/bookmark_model.h" 31 #include "components/bookmarks/browser/bookmark_model.h"
32 #include "components/policy/core/browser/browser_policy_connector.h"
33 #include "components/policy/core/common/cloud/cloud_policy_core.h"
34 #include "components/policy/core/common/cloud/cloud_policy_store.h"
35 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
30 #include "components/prefs/pref_service.h" 36 #include "components/prefs/pref_service.h"
31 #include "components/signin/core/browser/account_tracker_service.h" 37 #include "components/signin/core/browser/account_tracker_service.h"
32 #include "components/signin/core/browser/profile_oauth2_token_service.h" 38 #include "components/signin/core/browser/profile_oauth2_token_service.h"
33 #include "components/signin/core/browser/signin_manager.h" 39 #include "components/signin/core/browser/signin_manager.h"
34 #include "components/signin/core/browser/signin_metrics.h" 40 #include "components/signin/core/browser/signin_metrics.h"
35 #include "components/signin/core/common/profile_management_switches.h" 41 #include "components/signin/core/common/profile_management_switches.h"
36 #include "components/signin/core/common/signin_pref_names.h" 42 #include "components/signin/core/common/signin_pref_names.h"
43 #include "google_apis/gaia/gaia_auth_util.h"
37 #include "google_apis/gaia/gaia_constants.h" 44 #include "google_apis/gaia/gaia_constants.h"
38 #include "jni/SigninManager_jni.h" 45 #include "jni/SigninManager_jni.h"
39
40 #if defined(ENABLE_CONFIGURATION_POLICY)
41 #include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
42 #include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h"
43 #include "chrome/browser/policy/cloud/user_policy_signin_service_mobile.h"
44 #include "components/policy/core/browser/browser_policy_connector.h"
45 #include "components/policy/core/common/cloud/cloud_policy_core.h"
46 #include "components/policy/core/common/cloud/cloud_policy_store.h"
47 #include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
48 #include "google_apis/gaia/gaia_auth_util.h"
49 #include "net/url_request/url_request_context_getter.h" 46 #include "net/url_request/url_request_context_getter.h"
50 #endif
51 47
52 using bookmarks::BookmarkModel; 48 using bookmarks::BookmarkModel;
53 49
54 namespace { 50 namespace {
55 51
56 // A BrowsingDataRemover::Observer that clears all Profile data and then 52 // A BrowsingDataRemover::Observer that clears all Profile data and then
57 // invokes a callback and deletes itself. 53 // invokes a callback and deletes itself.
58 class ProfileDataRemover : public BrowsingDataRemover::Observer { 54 class ProfileDataRemover : public BrowsingDataRemover::Observer {
59 public: 55 public:
60 ProfileDataRemover(Profile* profile, const base::Closure& callback) 56 ProfileDataRemover(Profile* profile, const base::Closure& callback)
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 base::Bind(&SigninManagerAndroid::OnSigninAllowedPrefChanged, 92 base::Bind(&SigninManagerAndroid::OnSigninAllowedPrefChanged,
97 base::Unretained(this))); 93 base::Unretained(this)));
98 } 94 }
99 95
100 SigninManagerAndroid::~SigninManagerAndroid() {} 96 SigninManagerAndroid::~SigninManagerAndroid() {}
101 97
102 void SigninManagerAndroid::CheckPolicyBeforeSignIn( 98 void SigninManagerAndroid::CheckPolicyBeforeSignIn(
103 JNIEnv* env, 99 JNIEnv* env,
104 const JavaParamRef<jobject>& obj, 100 const JavaParamRef<jobject>& obj,
105 const JavaParamRef<jstring>& username) { 101 const JavaParamRef<jstring>& username) {
106 #if defined(ENABLE_CONFIGURATION_POLICY)
107 username_ = base::android::ConvertJavaStringToUTF8(env, username); 102 username_ = base::android::ConvertJavaStringToUTF8(env, username);
108 policy::UserPolicySigninService* service = 103 policy::UserPolicySigninService* service =
109 policy::UserPolicySigninServiceFactory::GetForProfile(profile_); 104 policy::UserPolicySigninServiceFactory::GetForProfile(profile_);
110 service->RegisterForPolicy( 105 service->RegisterForPolicy(
111 username_, AccountTrackerServiceFactory::GetForProfile(profile_) 106 username_, AccountTrackerServiceFactory::GetForProfile(profile_)
112 ->FindAccountInfoByEmail(username_) 107 ->FindAccountInfoByEmail(username_)
113 .account_id, 108 .account_id,
114 base::Bind(&SigninManagerAndroid::OnPolicyRegisterDone, 109 base::Bind(&SigninManagerAndroid::OnPolicyRegisterDone,
115 weak_factory_.GetWeakPtr())); 110 weak_factory_.GetWeakPtr()));
116 #else
117 // This shouldn't be called when ShouldLoadPolicyForUser() is false.
118 NOTREACHED();
119 base::android::ScopedJavaLocalRef<jstring> domain;
120 Java_SigninManager_onPolicyCheckedBeforeSignIn(env,
121 java_signin_manager_.obj(),
122 domain.obj());
123 #endif
124 } 111 }
125 112
126 void SigninManagerAndroid::FetchPolicyBeforeSignIn( 113 void SigninManagerAndroid::FetchPolicyBeforeSignIn(
127 JNIEnv* env, 114 JNIEnv* env,
128 const JavaParamRef<jobject>& obj) { 115 const JavaParamRef<jobject>& obj) {
129 #if defined(ENABLE_CONFIGURATION_POLICY)
130 if (!dm_token_.empty()) { 116 if (!dm_token_.empty()) {
131 policy::UserPolicySigninService* service = 117 policy::UserPolicySigninService* service =
132 policy::UserPolicySigninServiceFactory::GetForProfile(profile_); 118 policy::UserPolicySigninServiceFactory::GetForProfile(profile_);
133 service->FetchPolicyForSignedInUser( 119 service->FetchPolicyForSignedInUser(
134 username_, 120 username_,
135 dm_token_, 121 dm_token_,
136 client_id_, 122 client_id_,
137 profile_->GetRequestContext(), 123 profile_->GetRequestContext(),
138 base::Bind(&SigninManagerAndroid::OnPolicyFetchDone, 124 base::Bind(&SigninManagerAndroid::OnPolicyFetchDone,
139 weak_factory_.GetWeakPtr())); 125 weak_factory_.GetWeakPtr()));
140 dm_token_.clear(); 126 dm_token_.clear();
141 client_id_.clear(); 127 client_id_.clear();
142 return; 128 return;
143 } 129 }
144 #endif 130
145 // This shouldn't be called when ShouldLoadPolicyForUser() is false, or when 131 // This shouldn't be called when ShouldLoadPolicyForUser() is false, or when
146 // CheckPolicyBeforeSignIn() failed. 132 // CheckPolicyBeforeSignIn() failed.
147 NOTREACHED(); 133 NOTREACHED();
148 Java_SigninManager_onPolicyFetchedBeforeSignIn(env, 134 Java_SigninManager_onPolicyFetchedBeforeSignIn(env,
149 java_signin_manager_.obj()); 135 java_signin_manager_.obj());
150 } 136 }
151 137
152 void SigninManagerAndroid::AbortSignIn( 138 void SigninManagerAndroid::AbortSignIn(
153 JNIEnv* env, 139 JNIEnv* env,
154 const base::android::JavaParamRef<jobject>& obj) { 140 const base::android::JavaParamRef<jobject>& obj) {
155 #if defined(ENABLE_CONFIGURATION_POLICY)
156 policy::UserPolicySigninService* service = 141 policy::UserPolicySigninService* service =
157 policy::UserPolicySigninServiceFactory::GetForProfile(profile_); 142 policy::UserPolicySigninServiceFactory::GetForProfile(profile_);
158 service->ShutdownUserCloudPolicyManager(); 143 service->ShutdownUserCloudPolicyManager();
159 #endif
160 } 144 }
161 145
162 void SigninManagerAndroid::OnSignInCompleted( 146 void SigninManagerAndroid::OnSignInCompleted(
163 JNIEnv* env, 147 JNIEnv* env,
164 const JavaParamRef<jobject>& obj, 148 const JavaParamRef<jobject>& obj,
165 const JavaParamRef<jstring>& username) { 149 const JavaParamRef<jstring>& username) {
166 DVLOG(1) << "SigninManagerAndroid::OnSignInCompleted"; 150 DVLOG(1) << "SigninManagerAndroid::OnSignInCompleted";
167 SigninManagerFactory::GetForProfile(profile_)->OnExternalSigninCompleted( 151 SigninManagerFactory::GetForProfile(profile_)->OnExternalSigninCompleted(
168 base::android::ConvertJavaStringToUTF8(env, username)); 152 base::android::ConvertJavaStringToUTF8(env, username));
169 } 153 }
170 154
171 void SigninManagerAndroid::SignOut(JNIEnv* env, 155 void SigninManagerAndroid::SignOut(JNIEnv* env,
172 const JavaParamRef<jobject>& obj) { 156 const JavaParamRef<jobject>& obj) {
173 SigninManagerFactory::GetForProfile(profile_) 157 SigninManagerFactory::GetForProfile(profile_)
174 ->SignOut(signin_metrics::USER_CLICKED_SIGNOUT_SETTINGS, 158 ->SignOut(signin_metrics::USER_CLICKED_SIGNOUT_SETTINGS,
175 signin_metrics::SignoutDelete::IGNORE_METRIC); 159 signin_metrics::SignoutDelete::IGNORE_METRIC);
176 } 160 }
177 161
178 base::android::ScopedJavaLocalRef<jstring> 162 base::android::ScopedJavaLocalRef<jstring>
179 SigninManagerAndroid::GetManagementDomain(JNIEnv* env, 163 SigninManagerAndroid::GetManagementDomain(JNIEnv* env,
180 const JavaParamRef<jobject>& obj) { 164 const JavaParamRef<jobject>& obj) {
181 base::android::ScopedJavaLocalRef<jstring> domain; 165 base::android::ScopedJavaLocalRef<jstring> domain;
182 166
183 #if defined(ENABLE_CONFIGURATION_POLICY)
184 policy::UserCloudPolicyManager* manager = 167 policy::UserCloudPolicyManager* manager =
185 policy::UserCloudPolicyManagerFactory::GetForBrowserContext(profile_); 168 policy::UserCloudPolicyManagerFactory::GetForBrowserContext(profile_);
186 policy::CloudPolicyStore* store = manager->core()->store(); 169 policy::CloudPolicyStore* store = manager->core()->store();
187 170
188 if (store && store->is_managed() && store->policy()->has_username()) { 171 if (store && store->is_managed() && store->policy()->has_username()) {
189 domain.Reset( 172 domain.Reset(
190 base::android::ConvertUTF8ToJavaString( 173 base::android::ConvertUTF8ToJavaString(
191 env, gaia::ExtractDomainName(store->policy()->username()))); 174 env, gaia::ExtractDomainName(store->policy()->username())));
192 } 175 }
193 #endif
194 176
195 return domain; 177 return domain;
196 } 178 }
197 179
198 void SigninManagerAndroid::WipeProfileData( 180 void SigninManagerAndroid::WipeProfileData(
199 JNIEnv* env, 181 JNIEnv* env,
200 const JavaParamRef<jobject>& obj, 182 const JavaParamRef<jobject>& obj,
201 const JavaParamRef<jobject>& callback) { 183 const JavaParamRef<jobject>& callback) {
202 base::android::ScopedJavaGlobalRef<jobject> java_callback; 184 base::android::ScopedJavaGlobalRef<jobject> java_callback;
203 java_callback.Reset(env, callback); 185 java_callback.Reset(env, callback);
204 186
205 // The ProfileDataRemover deletes itself once done. 187 // The ProfileDataRemover deletes itself once done.
206 new ProfileDataRemover( 188 new ProfileDataRemover(
207 profile_, base::Bind(&SigninManagerAndroid::OnBrowsingDataRemoverDone, 189 profile_, base::Bind(&SigninManagerAndroid::OnBrowsingDataRemoverDone,
208 weak_factory_.GetWeakPtr(), java_callback)); 190 weak_factory_.GetWeakPtr(), java_callback));
209 } 191 }
210 192
211 #if defined(ENABLE_CONFIGURATION_POLICY)
212
213 void SigninManagerAndroid::OnPolicyRegisterDone( 193 void SigninManagerAndroid::OnPolicyRegisterDone(
214 const std::string& dm_token, 194 const std::string& dm_token,
215 const std::string& client_id) { 195 const std::string& client_id) {
216 dm_token_ = dm_token; 196 dm_token_ = dm_token;
217 client_id_ = client_id; 197 client_id_ = client_id;
218 198
219 JNIEnv* env = base::android::AttachCurrentThread(); 199 JNIEnv* env = base::android::AttachCurrentThread();
220 base::android::ScopedJavaLocalRef<jstring> domain; 200 base::android::ScopedJavaLocalRef<jstring> domain;
221 if (!dm_token_.empty()) { 201 if (!dm_token_.empty()) {
222 DCHECK(!username_.empty()); 202 DCHECK(!username_.empty());
223 domain.Reset( 203 domain.Reset(
224 base::android::ConvertUTF8ToJavaString( 204 base::android::ConvertUTF8ToJavaString(
225 env, gaia::ExtractDomainName(username_))); 205 env, gaia::ExtractDomainName(username_)));
226 } else { 206 } else {
227 username_.clear(); 207 username_.clear();
228 } 208 }
229 209
230 Java_SigninManager_onPolicyCheckedBeforeSignIn(env, 210 Java_SigninManager_onPolicyCheckedBeforeSignIn(env,
231 java_signin_manager_.obj(), 211 java_signin_manager_.obj(),
232 domain.obj()); 212 domain.obj());
233 } 213 }
234 214
235 void SigninManagerAndroid::OnPolicyFetchDone(bool success) { 215 void SigninManagerAndroid::OnPolicyFetchDone(bool success) {
236 Java_SigninManager_onPolicyFetchedBeforeSignIn( 216 Java_SigninManager_onPolicyFetchedBeforeSignIn(
237 base::android::AttachCurrentThread(), 217 base::android::AttachCurrentThread(),
238 java_signin_manager_.obj()); 218 java_signin_manager_.obj());
239 } 219 }
240 220
241 #endif
242
243 void SigninManagerAndroid::OnBrowsingDataRemoverDone( 221 void SigninManagerAndroid::OnBrowsingDataRemoverDone(
244 const base::android::ScopedJavaGlobalRef<jobject>& callback) { 222 const base::android::ScopedJavaGlobalRef<jobject>& callback) {
245 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile_); 223 BookmarkModel* model = BookmarkModelFactory::GetForProfile(profile_);
246 model->RemoveAllUserBookmarks(); 224 model->RemoveAllUserBookmarks();
247 225
248 // All the Profile data has been wiped. Clear the last signed in username as 226 // All the Profile data has been wiped. Clear the last signed in username as
249 // well, so that the next signin doesn't trigger the acount change dialog. 227 // well, so that the next signin doesn't trigger the acount change dialog.
250 ClearLastSignedInUser(); 228 ClearLastSignedInUser();
251 229
252 Java_SigninManager_onProfileDataWiped(base::android::AttachCurrentThread(), 230 Java_SigninManager_onProfileDataWiped(base::android::AttachCurrentThread(),
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { 278 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
301 SigninManagerAndroid* signin_manager_android = 279 SigninManagerAndroid* signin_manager_android =
302 new SigninManagerAndroid(env, obj); 280 new SigninManagerAndroid(env, obj);
303 return reinterpret_cast<intptr_t>(signin_manager_android); 281 return reinterpret_cast<intptr_t>(signin_manager_android);
304 } 282 }
305 283
306 static jboolean ShouldLoadPolicyForUser( 284 static jboolean ShouldLoadPolicyForUser(
307 JNIEnv* env, 285 JNIEnv* env,
308 const JavaParamRef<jobject>& obj, 286 const JavaParamRef<jobject>& obj,
309 const JavaParamRef<jstring>& j_username) { 287 const JavaParamRef<jstring>& j_username) {
310 #if defined(ENABLE_CONFIGURATION_POLICY)
311 std::string username = 288 std::string username =
312 base::android::ConvertJavaStringToUTF8(env, j_username); 289 base::android::ConvertJavaStringToUTF8(env, j_username);
313 return !policy::BrowserPolicyConnector::IsNonEnterpriseUser(username); 290 return !policy::BrowserPolicyConnector::IsNonEnterpriseUser(username);
314 #else
315 return false;
316 #endif
317 } 291 }
318 292
319 // static 293 // static
320 bool SigninManagerAndroid::Register(JNIEnv* env) { 294 bool SigninManagerAndroid::Register(JNIEnv* env) {
321 return RegisterNativesImpl(env); 295 return RegisterNativesImpl(env);
322 } 296 }
OLDNEW
« no previous file with comments | « chrome/browser/android/signin/signin_manager_android.h ('k') | chrome/browser/browser_process_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698