| 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 "chrome/browser/extensions/app_notify_channel_setup.h" | 5 #include "chrome/browser/extensions/app_notify_channel_setup.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/command_line.h" | 12 #include "base/command_line.h" |
| 13 #include "base/json/json_reader.h" | 13 #include "base/json/json_reader.h" |
| 14 #include "base/message_loop.h" | 14 #include "base/message_loop.h" |
| 15 #include "base/metrics/histogram.h" | 15 #include "base/metrics/histogram.h" |
| 16 #include "base/stringprintf.h" | 16 #include "base/stringprintf.h" |
| 17 #include "chrome/browser/prefs/pref_service.h" | 17 #include "chrome/browser/prefs/pref_service.h" |
| 18 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
| 19 #include "chrome/browser/signin/about_signin_internals.h" |
| 20 #include "chrome/browser/signin/about_signin_internals_factory.h" |
| 19 #include "chrome/browser/signin/signin_manager.h" | 21 #include "chrome/browser/signin/signin_manager.h" |
| 20 #include "chrome/browser/signin/signin_manager_factory.h" | 22 #include "chrome/browser/signin/signin_manager_factory.h" |
| 21 #include "chrome/browser/signin/token_service.h" | 23 #include "chrome/browser/signin/token_service.h" |
| 22 #include "chrome/browser/signin/token_service_factory.h" | 24 #include "chrome/browser/signin/token_service_factory.h" |
| 23 #include "chrome/common/chrome_switches.h" | 25 #include "chrome/common/chrome_switches.h" |
| 24 #include "chrome/common/pref_names.h" | 26 #include "chrome/common/pref_names.h" |
| 25 #include "content/public/browser/browser_thread.h" | 27 #include "content/public/browser/browser_thread.h" |
| 26 #include "google_apis/gaia/gaia_constants.h" | 28 #include "google_apis/gaia/gaia_constants.h" |
| 27 #include "google_apis/gaia/gaia_urls.h" | 29 #include "google_apis/gaia/gaia_urls.h" |
| 28 #include "net/base/escape.h" | 30 #include "net/base/escape.h" |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 return; | 113 return; |
| 112 } | 114 } |
| 113 | 115 |
| 114 BeginLogin(); | 116 BeginLogin(); |
| 115 } | 117 } |
| 116 | 118 |
| 117 void AppNotifyChannelSetup::OnGetTokenSuccess( | 119 void AppNotifyChannelSetup::OnGetTokenSuccess( |
| 118 const std::string& access_token, | 120 const std::string& access_token, |
| 119 const base::Time& expiration_time) { | 121 const base::Time& expiration_time) { |
| 120 oauth2_access_token_ = access_token; | 122 oauth2_access_token_ = access_token; |
| 123 |
| 124 // Let SigninInternals know about the token fetch. |
| 125 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 126 DCHECK(profile_); |
| 127 // TODO(vishwath): This can be removed when refactoring this to use |
| 128 // OAuth2TokenService instead. |
| 129 AboutSigninInternalsFactory::GetForProfile(profile_)-> |
| 130 NotifyTokenReceivedSuccess( |
| 131 signin_internals_util::kAppNotifyChannelSetupToken, |
| 132 access_token, |
| 133 true); |
| 134 |
| 121 EndGetAccessToken(true); | 135 EndGetAccessToken(true); |
| 122 } | 136 } |
| 123 void AppNotifyChannelSetup::OnGetTokenFailure( | 137 void AppNotifyChannelSetup::OnGetTokenFailure( |
| 124 const GoogleServiceAuthError& error) { | 138 const GoogleServiceAuthError& error) { |
| 139 // Let SigninInternals know about the failed token fetch. |
| 140 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 141 DCHECK(profile_); |
| 142 // TODO(vishwath): This can be removed when refactoring this to use |
| 143 // OAuth2TokenService instead. |
| 144 AboutSigninInternalsFactory::GetForProfile(profile_)-> |
| 145 NotifyTokenReceivedFailure( |
| 146 signin_internals_util::kAppNotifyChannelSetupToken, error.ToString()); |
| 147 |
| 125 EndGetAccessToken(false); | 148 EndGetAccessToken(false); |
| 126 } | 149 } |
| 127 | 150 |
| 128 void AppNotifyChannelSetup::OnSyncSetupResult(bool enabled) { | 151 void AppNotifyChannelSetup::OnSyncSetupResult(bool enabled) { |
| 129 EndLogin(enabled); | 152 EndLogin(enabled); |
| 130 } | 153 } |
| 131 | 154 |
| 132 void AppNotifyChannelSetup::OnURLFetchComplete(const net::URLFetcher* source) { | 155 void AppNotifyChannelSetup::OnURLFetchComplete(const net::URLFetcher* source) { |
| 133 CHECK(source); | 156 CHECK(source); |
| 134 switch (state_) { | 157 switch (state_) { |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 407 const std::string& data, std::string* result) { | 430 const std::string& data, std::string* result) { |
| 408 scoped_ptr<base::Value> value(base::JSONReader::Read(data)); | 431 scoped_ptr<base::Value> value(base::JSONReader::Read(data)); |
| 409 if (!value.get() || value->GetType() != base::Value::TYPE_DICTIONARY) | 432 if (!value.get() || value->GetType() != base::Value::TYPE_DICTIONARY) |
| 410 return false; | 433 return false; |
| 411 | 434 |
| 412 DictionaryValue* dict = static_cast<DictionaryValue*>(value.get()); | 435 DictionaryValue* dict = static_cast<DictionaryValue*>(value.get()); |
| 413 return dict->GetString("id", result); | 436 return dict->GetString("id", result); |
| 414 } | 437 } |
| 415 | 438 |
| 416 } // namespace extensions | 439 } // namespace extensions |
| OLD | NEW |