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

Side by Side Diff: components/signin/core/browser/signin_manager.cc

Issue 936503002: SigninManager owns ObserverList for the MergeSessionHelper. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Override! Override! (toro! toro!) Created 5 years, 10 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
« no previous file with comments | « components/signin/core/browser/signin_manager.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/signin/core/browser/signin_manager.h" 5 #include "components/signin/core/browser/signin_manager.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 type_(SIGNIN_TYPE_NONE), 67 type_(SIGNIN_TYPE_NONE),
68 client_(client), 68 client_(client),
69 token_service_(token_service), 69 token_service_(token_service),
70 account_tracker_service_(account_tracker_service), 70 account_tracker_service_(account_tracker_service),
71 signin_manager_signed_in_(false), 71 signin_manager_signed_in_(false),
72 user_info_fetched_by_account_tracker_(false), 72 user_info_fetched_by_account_tracker_(false),
73 weak_pointer_factory_(this) {} 73 weak_pointer_factory_(this) {}
74 74
75 void SigninManager::AddMergeSessionObserver( 75 void SigninManager::AddMergeSessionObserver(
76 MergeSessionHelper::Observer* observer) { 76 MergeSessionHelper::Observer* observer) {
77 if (merge_session_helper_) 77 merge_session_observer_list_.AddObserver(observer);
78 merge_session_helper_->AddObserver(observer);
79 } 78 }
80 79
81 void SigninManager::RemoveMergeSessionObserver( 80 void SigninManager::RemoveMergeSessionObserver(
82 MergeSessionHelper::Observer* observer) { 81 MergeSessionHelper::Observer* observer) {
83 if (merge_session_helper_) 82 merge_session_observer_list_.RemoveObserver(observer);
84 merge_session_helper_->RemoveObserver(observer); 83 }
84
85 void SigninManager::MergeSessionCompleted(const std::string& account_id,
86 const GoogleServiceAuthError& error) {
87 FOR_EACH_OBSERVER(MergeSessionHelper::Observer, merge_session_observer_list_,
88 MergeSessionCompleted(account_id, error));
89 }
90
91 void SigninManager::GetCheckConnectionInfoCompleted(bool succeeded) {
92 FOR_EACH_OBSERVER(MergeSessionHelper::Observer, merge_session_observer_list_,
93 GetCheckConnectionInfoCompleted(succeeded));
85 } 94 }
86 95
87 SigninManager::~SigninManager() {} 96 SigninManager::~SigninManager() {}
88 97
89 void SigninManager::InitTokenService() { 98 void SigninManager::InitTokenService() {
90 if (token_service_ && IsAuthenticated()) 99 if (token_service_ && IsAuthenticated())
91 token_service_->LoadCredentials(GetAuthenticatedAccountId()); 100 token_service_->LoadCredentials(GetAuthenticatedAccountId());
92 } 101 }
93 102
94 std::string SigninManager::SigninTypeToString(SigninManager::SigninType type) { 103 std::string SigninManager::SigninTypeToString(SigninManager::SigninType type) {
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 277
269 InitTokenService(); 278 InitTokenService();
270 account_id_helper_.reset( 279 account_id_helper_.reset(
271 new SigninAccountIdHelper(client_, token_service_, this)); 280 new SigninAccountIdHelper(client_, token_service_, this));
272 281
273 account_tracker_service_->AddObserver(this); 282 account_tracker_service_->AddObserver(this);
274 } 283 }
275 284
276 void SigninManager::Shutdown() { 285 void SigninManager::Shutdown() {
277 account_tracker_service_->RemoveObserver(this); 286 account_tracker_service_->RemoveObserver(this);
278 if (merge_session_helper_) 287 if (merge_session_helper_) {
279 merge_session_helper_->CancelAll(); 288 merge_session_helper_->CancelAll();
289 merge_session_helper_->RemoveObserver(this);
290 }
280 291
281 local_state_pref_registrar_.RemoveAll(); 292 local_state_pref_registrar_.RemoveAll();
282 account_id_helper_.reset(); 293 account_id_helper_.reset();
283 SigninManagerBase::Shutdown(); 294 SigninManagerBase::Shutdown();
284 } 295 }
285 296
286 void SigninManager::OnGoogleServicesUsernamePatternChanged() { 297 void SigninManager::OnGoogleServicesUsernamePatternChanged() {
287 if (IsAuthenticated() && 298 if (IsAuthenticated() &&
288 !IsAllowedUsername(GetAuthenticatedUsername())) { 299 !IsAllowedUsername(GetAuthenticatedUsername())) {
289 // Signed in user is invalid according to the current policy so sign 300 // Signed in user is invalid according to the current policy so sign
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
356 prefs->SetBoolean(prefs::kReverseAutologinEnabled, false); 367 prefs->SetBoolean(prefs::kReverseAutologinEnabled, false);
357 } 368 }
358 369
359 void SigninManager::MergeSigninCredentialIntoCookieJar() { 370 void SigninManager::MergeSigninCredentialIntoCookieJar() {
360 if (!client_->ShouldMergeSigninCredentialsIntoCookieJar()) 371 if (!client_->ShouldMergeSigninCredentialsIntoCookieJar())
361 return; 372 return;
362 373
363 if (!IsAuthenticated()) 374 if (!IsAuthenticated())
364 return; 375 return;
365 376
366 // Don't execute 2 MergeSessionHelpers. New account takes priority. 377 // Don't execute two MergeSessionHelpers. New account takes priority.
367 if (merge_session_helper_.get() && merge_session_helper_->is_running()) 378 if (merge_session_helper_) {
368 merge_session_helper_->CancelAll(); 379 if (merge_session_helper_->is_running())
380 merge_session_helper_->CancelAll();
381 merge_session_helper_->RemoveObserver(this);
382 }
369 383
370 merge_session_helper_.reset(new MergeSessionHelper( 384 merge_session_helper_.reset(new MergeSessionHelper(
371 token_service_, GaiaConstants::kChromeSource, 385 token_service_, GaiaConstants::kChromeSource,
372 client_->GetURLRequestContext(), NULL)); 386 client_->GetURLRequestContext(), this));
373 387
374 merge_session_helper_->LogIn(GetAuthenticatedAccountId()); 388 merge_session_helper_->LogIn(GetAuthenticatedAccountId());
375 } 389 }
376 390
377 void SigninManager::CompletePendingSignin() { 391 void SigninManager::CompletePendingSignin() {
378 DCHECK(!possibly_invalid_username_.empty()); 392 DCHECK(!possibly_invalid_username_.empty());
379 OnSignedIn(possibly_invalid_username_); 393 OnSignedIn(possibly_invalid_username_);
380 394
381 DCHECK(!temp_refresh_token_.empty()); 395 DCHECK(!temp_refresh_token_.empty());
382 DCHECK(IsAuthenticated()); 396 DCHECK(IsAuthenticated());
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 void SigninManager::OnAccountUpdateFailed(const std::string& account_id) { 450 void SigninManager::OnAccountUpdateFailed(const std::string& account_id) {
437 user_info_fetched_by_account_tracker_ = true; 451 user_info_fetched_by_account_tracker_ = true;
438 PostSignedIn(); 452 PostSignedIn();
439 } 453 }
440 454
441 void SigninManager::ProhibitSignout(bool prohibit_signout) { 455 void SigninManager::ProhibitSignout(bool prohibit_signout) {
442 prohibit_signout_ = prohibit_signout; 456 prohibit_signout_ = prohibit_signout;
443 } 457 }
444 458
445 bool SigninManager::IsSignoutProhibited() const { return prohibit_signout_; } 459 bool SigninManager::IsSignoutProhibited() const { return prohibit_signout_; }
OLDNEW
« no previous file with comments | « components/signin/core/browser/signin_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698