#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "base/time/time.h"
-#include "chrome/browser/chromeos/net/network_portal_detector.h"
-#include "chrome/browser/signin/profile_oauth2_token_service.h"
+#include "chrome/browser/chromeos/net/delay_network_call.h"
#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
-#include "chrome/browser/signin/signin_manager.h"
#include "chrome/browser/signin/signin_manager_factory.h"
-#include "chromeos/network/network_handler.h"
-#include "chromeos/network/network_state.h"
-#include "chromeos/network/network_state_handler.h"
+#include "components/signin/core/browser/profile_oauth2_token_service.h"
+#include "components/signin/core/browser/signin_manager.h"
#include "content/public/browser/browser_thread.h"
#include "google_apis/gaia/gaia_constants.h"
-#include "google_apis/gaia/gaia_urls.h"
-#include "third_party/cros_system_api/dbus/service_constants.h"
using content::BrowserThread;
OAuth2LoginVerifier::~OAuth2LoginVerifier() {
}
+void OAuth2LoginVerifier::VerifyUserCookies(Profile* profile) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+
+ // Delay the verification if the network is not connected or on a captive
+ // portal.
+ DelayNetworkCall(
+ base::Bind(&OAuth2LoginVerifier::StartAuthCookiesVerification,
+ AsWeakPtr()),
+ base::TimeDelta::FromMilliseconds(kRequestRestartDelay));
+}
+
void OAuth2LoginVerifier::VerifyProfileTokens(Profile* profile) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
// Delay the verification if the network is not connected or on a captive
// portal.
- const NetworkState* default_network =
- NetworkHandler::Get()->network_state_handler()->DefaultNetwork();
- NetworkPortalDetector* detector = NetworkPortalDetector::Get();
- if (!default_network ||
- default_network->connection_state() == shill::kStatePortal ||
- (detector && detector->GetCaptivePortalState(default_network).status !=
- NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE)) {
- // If network is offline, defer the token fetching until online.
- LOG(WARNING) << "Network is offline. Deferring OAuth2 access token fetch.";
- BrowserThread::PostDelayedTask(
- BrowserThread::UI,
- FROM_HERE,
- base::Bind(
- &OAuth2LoginVerifier::VerifyProfileTokens, AsWeakPtr(), profile),
- base::TimeDelta::FromMilliseconds(kRequestRestartDelay));
- return;
- }
+ DelayNetworkCall(
+ base::Bind(
+ &OAuth2LoginVerifier::VerifyProfileTokensImpl, AsWeakPtr(), profile),
+ base::TimeDelta::FromMilliseconds(kRequestRestartDelay));
+}
+
+void OAuth2LoginVerifier::VerifyProfileTokensImpl(Profile* profile) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
gaia_token_.clear();
if (access_token_.empty()) {
void OAuth2LoginVerifier::StartFetchingOAuthLoginAccessToken(Profile* profile) {
OAuth2TokenService::ScopeSet scopes;
- scopes.insert(GaiaUrls::GetInstance()->oauth1_login_scope());
+ scopes.insert(GaiaConstants::kOAuth1LoginScope);
ProfileOAuth2TokenService* token_service =
ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
SigninManagerBase* signin_manager =
BrowserThread::UI,
FROM_HERE,
base::Bind(
- &OAuth2LoginVerifier::StartPostRestoreVerification, AsWeakPtr()),
+ &OAuth2LoginVerifier::StartAuthCookiesVerification, AsWeakPtr()),
base::TimeDelta::FromMilliseconds(kPostResoreVerificationDelay));
}
-void OAuth2LoginVerifier::StartPostRestoreVerification() {
+void OAuth2LoginVerifier::StartAuthCookiesVerification() {
gaia_fetcher_.reset(
new GaiaAuthFetcher(this,
std::string(GaiaConstants::kChromeOSSource),
RetryOnError(
"ListAccounts",
error,
- base::Bind(&OAuth2LoginVerifier::StartPostRestoreVerification,
+ base::Bind(&OAuth2LoginVerifier::StartAuthCookiesVerification,
AsWeakPtr()),
base::Bind(&Delegate::OnListAccountsFailure,
base::Unretained(delegate_)));