Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / login / oauth2_login_verifier.cc
index 86e6aab..d1bba9c 100644 (file)
 #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;
 
@@ -68,28 +63,30 @@ OAuth2LoginVerifier::OAuth2LoginVerifier(
 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()) {
@@ -104,7 +101,7 @@ void OAuth2LoginVerifier::VerifyProfileTokens(Profile* profile) {
 
 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 =
@@ -169,11 +166,11 @@ void OAuth2LoginVerifier::SchedulePostMergeVerification() {
       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),
@@ -239,7 +236,7 @@ void OAuth2LoginVerifier::OnListAccountsFailure(
   RetryOnError(
       "ListAccounts",
       error,
-      base::Bind(&OAuth2LoginVerifier::StartPostRestoreVerification,
+      base::Bind(&OAuth2LoginVerifier::StartAuthCookiesVerification,
                  AsWeakPtr()),
       base::Bind(&Delegate::OnListAccountsFailure,
                  base::Unretained(delegate_)));