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

Side by Side Diff: chrome/browser/google_apis/auth_service.cc

Issue 12630010: Files.app: Treats HTTP_FORBIDDEN (403) as temporary error on authentication. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test failure Created 7 years, 9 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 | Annotate | Revision Log
OLDNEW
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/google_apis/auth_service.h" 5 #include "chrome/browser/google_apis/auth_service.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 22 matching lines...) Expand all
33 33
34 namespace google_apis { 34 namespace google_apis {
35 35
36 namespace { 36 namespace {
37 37
38 // Used for success ratio histograms. 0 for failure, 1 for success, 38 // Used for success ratio histograms. 0 for failure, 1 for success,
39 // 2 for no connection (likely offline). 39 // 2 for no connection (likely offline).
40 const int kSuccessRatioHistogramFailure = 0; 40 const int kSuccessRatioHistogramFailure = 0;
41 const int kSuccessRatioHistogramSuccess = 1; 41 const int kSuccessRatioHistogramSuccess = 1;
42 const int kSuccessRatioHistogramNoConnection = 2; 42 const int kSuccessRatioHistogramNoConnection = 2;
43 const int kSuccessRatioHistogramMaxValue = 3; // The max value is exclusive. 43 const int kSuccessRatioHistogramTemporaryFailure = 3;
44 const int kSuccessRatioHistogramMaxValue = 4; // The max value is exclusive.
44 45
45 } // namespace 46 } // namespace
46 47
47 // OAuth2 authorization token retrieval operation. 48 // OAuth2 authorization token retrieval operation.
48 class AuthOperation : public OperationRegistry::Operation, 49 class AuthOperation : public OperationRegistry::Operation,
49 public OAuth2AccessTokenConsumer { 50 public OAuth2AccessTokenConsumer {
50 public: 51 public:
51 AuthOperation(OperationRegistry* registry, 52 AuthOperation(OperationRegistry* registry,
52 net::URLRequestContextGetter* url_request_context_getter, 53 net::URLRequestContextGetter* url_request_context_getter,
53 const AuthStatusCallback& callback, 54 const AuthStatusCallback& callback,
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 << error.ToString(); 130 << error.ToString();
130 131
131 // There are many ways to fail, but if the failure is due to connection, 132 // There are many ways to fail, but if the failure is due to connection,
132 // it's likely that the device is off-line. We treat the error differently 133 // it's likely that the device is off-line. We treat the error differently
133 // so that the file manager works while off-line. 134 // so that the file manager works while off-line.
134 if (error.state() == GoogleServiceAuthError::CONNECTION_FAILED) { 135 if (error.state() == GoogleServiceAuthError::CONNECTION_FAILED) {
135 UMA_HISTOGRAM_ENUMERATION("GData.AuthSuccess", 136 UMA_HISTOGRAM_ENUMERATION("GData.AuthSuccess",
136 kSuccessRatioHistogramNoConnection, 137 kSuccessRatioHistogramNoConnection,
137 kSuccessRatioHistogramMaxValue); 138 kSuccessRatioHistogramMaxValue);
138 callback_.Run(GDATA_NO_CONNECTION, std::string()); 139 callback_.Run(GDATA_NO_CONNECTION, std::string());
140 } else if (error.state() == GoogleServiceAuthError::SERVICE_UNAVAILABLE) {
141 // Temporary auth error.
142 UMA_HISTOGRAM_ENUMERATION("GData.AuthSuccess",
143 kSuccessRatioHistogramTemporaryFailure,
144 kSuccessRatioHistogramMaxValue);
145 callback_.Run(HTTP_FORBIDDEN, std::string());
139 } else { 146 } else {
147 // Permanent auth error.
140 UMA_HISTOGRAM_ENUMERATION("GData.AuthSuccess", 148 UMA_HISTOGRAM_ENUMERATION("GData.AuthSuccess",
141 kSuccessRatioHistogramFailure, 149 kSuccessRatioHistogramFailure,
142 kSuccessRatioHistogramMaxValue); 150 kSuccessRatioHistogramMaxValue);
143 callback_.Run(HTTP_UNAUTHORIZED, std::string()); 151 callback_.Run(HTTP_UNAUTHORIZED, std::string());
144 } 152 }
145 NotifyFinish(OPERATION_FAILED); 153 NotifyFinish(OPERATION_FAILED);
146 } 154 }
147 155
148 void AuthService::Initialize(Profile* profile) { 156 void AuthService::Initialize(Profile* profile) {
149 profile_ = profile; 157 profile_ = profile;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 #endif // OS_CHROMEOS 297 #endif // OS_CHROMEOS
290 298
291 // Authentication cannot be done with the incognito mode profile. 299 // Authentication cannot be done with the incognito mode profile.
292 if (profile->IsOffTheRecord()) 300 if (profile->IsOffTheRecord())
293 return false; 301 return false;
294 302
295 return true; 303 return true;
296 } 304 }
297 305
298 } // namespace google_apis 306 } // namespace google_apis
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/login_utils_browsertest.cc ('k') | google_apis/gaia/oauth2_access_token_fetcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698