| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/about_signin_internals.h" | 5 #include "components/signin/core/browser/about_signin_internals.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
| 9 #include "base/hash.h" | 9 #include "base/hash.h" |
| 10 #include "base/i18n/time_formatting.h" | 10 #include "base/i18n/time_formatting.h" |
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 | 202 |
| 203 void AboutSigninInternals::Initialize(SigninClient* client) { | 203 void AboutSigninInternals::Initialize(SigninClient* client) { |
| 204 DCHECK(!client_); | 204 DCHECK(!client_); |
| 205 client_ = client; | 205 client_ = client; |
| 206 | 206 |
| 207 RefreshSigninPrefs(); | 207 RefreshSigninPrefs(); |
| 208 | 208 |
| 209 signin_manager_->AddSigninDiagnosticsObserver(this); | 209 signin_manager_->AddSigninDiagnosticsObserver(this); |
| 210 token_service_->AddDiagnosticsObserver(this); | 210 token_service_->AddDiagnosticsObserver(this); |
| 211 cookie_changed_subscription_ = client_->AddCookieChangedCallback( | 211 cookie_changed_subscription_ = client_->AddCookieChangedCallback( |
| 212 base::Bind(&AboutSigninInternals::OnCookieChanged, | 212 GaiaUrls::GetInstance()->gaia_url(), |
| 213 base::Unretained(this))); | 213 "LSID", |
| 214 base::Bind(&AboutSigninInternals::OnCookieChanged, |
| 215 base::Unretained(this))); |
| 214 } | 216 } |
| 215 | 217 |
| 216 void AboutSigninInternals::Shutdown() { | 218 void AboutSigninInternals::Shutdown() { |
| 217 signin_manager_->RemoveSigninDiagnosticsObserver(this); | 219 signin_manager_->RemoveSigninDiagnosticsObserver(this); |
| 218 token_service_->RemoveDiagnosticsObserver(this); | 220 token_service_->RemoveDiagnosticsObserver(this); |
| 219 cookie_changed_subscription_.reset(); | 221 cookie_changed_subscription_.reset(); |
| 220 } | 222 } |
| 221 | 223 |
| 222 void AboutSigninInternals::NotifyObservers() { | 224 void AboutSigninInternals::NotifyObservers() { |
| 223 scoped_ptr<base::DictionaryValue> signin_status_value = | 225 scoped_ptr<base::DictionaryValue> signin_status_value = |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 } | 280 } |
| 279 | 281 |
| 280 void AboutSigninInternals::OnRefreshTokenReceived(std::string status) { | 282 void AboutSigninInternals::OnRefreshTokenReceived(std::string status) { |
| 281 NotifySigninValueChanged(REFRESH_TOKEN_RECEIVED, status); | 283 NotifySigninValueChanged(REFRESH_TOKEN_RECEIVED, status); |
| 282 } | 284 } |
| 283 | 285 |
| 284 void AboutSigninInternals::OnAuthenticationResultReceived(std::string status) { | 286 void AboutSigninInternals::OnAuthenticationResultReceived(std::string status) { |
| 285 NotifySigninValueChanged(AUTHENTICATION_RESULT_RECEIVED, status); | 287 NotifySigninValueChanged(AUTHENTICATION_RESULT_RECEIVED, status); |
| 286 } | 288 } |
| 287 | 289 |
| 288 void AboutSigninInternals::OnCookieChanged( | 290 void AboutSigninInternals::OnCookieChanged(const net::CanonicalCookie& cookie, |
| 289 const net::CanonicalCookie* cookie) { | 291 bool removed) { |
| 290 if (cookie->Name() == "LSID" && | 292 DCHECK_EQ("LSID", cookie.Name()); |
| 291 cookie->Domain() == GaiaUrls::GetInstance()->gaia_url().host() && | 293 DCHECK_EQ(GaiaUrls::GetInstance()->gaia_url().host(), cookie.Domain()); |
| 292 cookie->IsSecure() && | 294 if (cookie.IsSecure() && cookie.IsHttpOnly()) { |
| 293 cookie->IsHttpOnly()) { | |
| 294 GetCookieAccountsAsync(); | 295 GetCookieAccountsAsync(); |
| 295 } | 296 } |
| 296 } | 297 } |
| 297 | 298 |
| 298 void AboutSigninInternals::GetCookieAccountsAsync() { | 299 void AboutSigninInternals::GetCookieAccountsAsync() { |
| 299 // Don't bother calling /ListAccounts if no one will observe the response. | 300 // Don't bother calling /ListAccounts if no one will observe the response. |
| 300 if (!gaia_fetcher_ && signin_observers_.might_have_observers()) { | 301 if (!gaia_fetcher_ && signin_observers_.might_have_observers()) { |
| 301 // There is no list account request in flight. | 302 // There is no list account request in flight. |
| 302 gaia_fetcher_.reset(new GaiaAuthFetcher( | 303 gaia_fetcher_.reset(new GaiaAuthFetcher( |
| 303 this, GaiaConstants::kChromeSource, client_->GetURLRequestContext())); | 304 this, GaiaConstants::kChromeSource, client_->GetURLRequestContext())); |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 std::sort(it->second.begin(), it->second.end(), TokenInfo::LessThan); | 486 std::sort(it->second.begin(), it->second.end(), TokenInfo::LessThan); |
| 486 const std::vector<TokenInfo*>& tokens = it->second; | 487 const std::vector<TokenInfo*>& tokens = it->second; |
| 487 for (size_t i = 0; i < tokens.size(); ++i) { | 488 for (size_t i = 0; i < tokens.size(); ++i) { |
| 488 base::DictionaryValue* token_info = tokens[i]->ToValue(); | 489 base::DictionaryValue* token_info = tokens[i]->ToValue(); |
| 489 token_details->Append(token_info); | 490 token_details->Append(token_info); |
| 490 } | 491 } |
| 491 } | 492 } |
| 492 | 493 |
| 493 return signin_status.Pass(); | 494 return signin_status.Pass(); |
| 494 } | 495 } |
| OLD | NEW |