| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 // A GoogleServiceAuthError is immutable, plain old data representing an | 5 // A GoogleServiceAuthError is immutable, plain old data representing an |
| 6 // error from an attempt to authenticate with a Google service. | 6 // error from an attempt to authenticate with a Google service. |
| 7 // It could be from Google Accounts itself, or any service using Google | 7 // It could be from Google Accounts itself, or any service using Google |
| 8 // Accounts (e.g expired credentials). It may contain additional data such as | 8 // Accounts (e.g expired credentials). It may contain additional data such as |
| 9 // captcha challenges. | 9 // captcha challenges. |
| 10 | 10 |
| 11 // A GoogleServiceAuthError without additional data is just a State, defined | 11 // A GoogleServiceAuthError without additional data is just a State, defined |
| 12 // below. A case could be made to have this relation implicit, to allow raising | 12 // below. A case could be made to have this relation implicit, to allow raising |
| 13 // error events concisely by doing OnAuthError(GoogleServiceAuthError::NONE), | 13 // error events concisely by doing OnAuthError(GoogleServiceAuthError::NONE), |
| 14 // for example. But the truth is this class is ever so slightly more than a | 14 // for example. But the truth is this class is ever so slightly more than a |
| 15 // transparent wrapper around 'State' due to additional Captcha data | 15 // transparent wrapper around 'State' due to additional Captcha data |
| 16 // (e.g consider operator=), and this would violate the style guide. Thus, | 16 // (e.g consider operator=), and this would violate the style guide. Thus, |
| 17 // you must explicitly use the constructor when all you have is a State. | 17 // you must explicitly use the constructor when all you have is a State. |
| 18 // The good news is the implementation nests the enum inside a class, so you | 18 // The good news is the implementation nests the enum inside a class, so you |
| 19 // may forward declare and typedef GoogleServiceAuthError to something shorter | 19 // may forward declare and typedef GoogleServiceAuthError to something shorter |
| 20 // in the comfort of your own translation unit. | 20 // in the comfort of your own translation unit. |
| 21 | 21 |
| 22 #ifndef CHROME_COMMON_NET_GAIA_GOOGLE_SERVICE_AUTH_ERROR_H_ | 22 #ifndef CHROME_COMMON_NET_GAIA_GOOGLE_SERVICE_AUTH_ERROR_H_ |
| 23 #define CHROME_COMMON_NET_GAIA_GOOGLE_SERVICE_AUTH_ERROR_H_ | 23 #define CHROME_COMMON_NET_GAIA_GOOGLE_SERVICE_AUTH_ERROR_H_ |
| 24 #pragma once | 24 #pragma once |
| 25 | 25 |
| 26 #include <string> | 26 #include <string> |
| 27 | 27 |
| 28 #include "googleurl/src/gurl.h" | 28 #include "googleurl/src/gurl.h" |
| 29 | 29 |
| 30 namespace base { |
| 30 class DictionaryValue; | 31 class DictionaryValue; |
| 32 } |
| 31 | 33 |
| 32 class GoogleServiceAuthError { | 34 class GoogleServiceAuthError { |
| 33 public: | 35 public: |
| 34 // | 36 // |
| 35 // These enumerations are referenced by integer value in HTML login code. | 37 // These enumerations are referenced by integer value in HTML login code. |
| 36 // Do not change the numeric values. | 38 // Do not change the numeric values. |
| 37 // | 39 // |
| 38 enum State { | 40 enum State { |
| 39 // The user is authenticated. | 41 // The user is authenticated. |
| 40 NONE = 0, | 42 NONE = 0, |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 // to explicit class and State enum relation. Note: shouldn't be inlined! | 109 // to explicit class and State enum relation. Note: shouldn't be inlined! |
| 108 static GoogleServiceAuthError None(); | 110 static GoogleServiceAuthError None(); |
| 109 | 111 |
| 110 // The error information. | 112 // The error information. |
| 111 const State& state() const; | 113 const State& state() const; |
| 112 const Captcha& captcha() const; | 114 const Captcha& captcha() const; |
| 113 int network_error() const; | 115 int network_error() const; |
| 114 | 116 |
| 115 // Returns info about this object in a dictionary. Caller takes | 117 // Returns info about this object in a dictionary. Caller takes |
| 116 // ownership of returned dictionary. | 118 // ownership of returned dictionary. |
| 117 DictionaryValue* ToValue() const; | 119 base::DictionaryValue* ToValue() const; |
| 118 | 120 |
| 119 private: | 121 private: |
| 120 GoogleServiceAuthError(State s, int error); | 122 GoogleServiceAuthError(State s, int error); |
| 121 | 123 |
| 122 GoogleServiceAuthError(State s, const std::string& captcha_token, | 124 GoogleServiceAuthError(State s, const std::string& captcha_token, |
| 123 const GURL& captcha_image_url, | 125 const GURL& captcha_image_url, |
| 124 const GURL& captcha_unlock_url); | 126 const GURL& captcha_unlock_url); |
| 125 | 127 |
| 126 State state_; | 128 State state_; |
| 127 Captcha captcha_; | 129 Captcha captcha_; |
| 128 int network_error_; | 130 int network_error_; |
| 129 }; | 131 }; |
| 130 | 132 |
| 131 #endif // CHROME_COMMON_NET_GAIA_GOOGLE_SERVICE_AUTH_ERROR_H_ | 133 #endif // CHROME_COMMON_NET_GAIA_GOOGLE_SERVICE_AUTH_ERROR_H_ |
| OLD | NEW |