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

Side by Side Diff: chrome/browser/chromeos/login/google_authenticator.h

Issue 1142005: Mocks for all libcros elements (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_GOOGLE_AUTHENTICATOR_H_ 5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_GOOGLE_AUTHENTICATOR_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_GOOGLE_AUTHENTICATOR_H_ 6 #define CHROME_BROWSER_CHROMEOS_LOGIN_GOOGLE_AUTHENTICATOR_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/file_path.h" 11 #include "base/file_path.h"
12 #include "base/ref_counted.h" 12 #include "base/ref_counted.h"
13 #include "base/scoped_ptr.h" 13 #include "base/scoped_ptr.h"
14 #include "base/sha2.h" 14 #include "base/sha2.h"
15 #include "chrome/browser/chromeos/cros/cros_library.h" 15 #include "chrome/browser/chromeos/cros/cros_library.h"
16 #include "chrome/browser/chromeos/cros/cryptohome_library.h" 16 #include "chrome/browser/chromeos/cros/cryptohome_library.h"
17 #include "chrome/browser/chromeos/login/authenticator.h" 17 #include "chrome/browser/chromeos/login/authenticator.h"
18 #include "chrome/browser/chromeos/login/auth_response_handler.h" 18 #include "chrome/browser/chromeos/login/auth_response_handler.h"
19 #include "chrome/browser/net/url_fetcher.h" 19 #include "chrome/browser/net/url_fetcher.h"
20 20
21 class LoginStatusConsumer; 21 class LoginStatusConsumer;
22 22
23 // Authenticates a Chromium OS user against the Google Accounts ClientLogin API. 23 // Authenticates a Chromium OS user against the Google Accounts ClientLogin API.
24 24
25 class GoogleAuthenticator : public Authenticator, 25 class GoogleAuthenticator : public Authenticator,
26 public URLFetcher::Delegate { 26 public URLFetcher::Delegate {
27 public: 27 public:
28 GoogleAuthenticator(LoginStatusConsumer* consumer, 28 GoogleAuthenticator(LoginStatusConsumer* consumer,
29 chromeos::CryptohomeLibrary* library,
30 AuthResponseHandler* cl_handler, 29 AuthResponseHandler* cl_handler,
31 AuthResponseHandler* i_handler) 30 AuthResponseHandler* i_handler)
32 : Authenticator(consumer), 31 : Authenticator(consumer),
33 library_(library),
34 fetcher_(NULL), 32 fetcher_(NULL),
35 getter_(NULL), 33 getter_(NULL),
36 client_login_handler_(cl_handler), 34 client_login_handler_(cl_handler),
37 issue_handler_(i_handler) { 35 issue_handler_(i_handler) {
38 if (!library && chromeos::CrosLibrary::EnsureLoaded()) 36 CHECK(chromeos::CrosLibrary::Get()->EnsureLoaded());
39 library_ = chromeos::CryptohomeLibrary::Get(); 37 library_ = chromeos::CrosLibrary::Get()->GetCryptohomeLibrary();
40 } 38 }
41 39
42 explicit GoogleAuthenticator(LoginStatusConsumer* consumer) 40 explicit GoogleAuthenticator(LoginStatusConsumer* consumer)
43 : Authenticator(consumer), 41 : Authenticator(consumer),
44 fetcher_(NULL), 42 fetcher_(NULL),
45 getter_(NULL), 43 getter_(NULL),
46 client_login_handler_(NULL), 44 client_login_handler_(NULL),
47 issue_handler_(NULL) { 45 issue_handler_(NULL) {
48 CHECK(chromeos::CrosLibrary::EnsureLoaded()); 46 CHECK(chromeos::CrosLibrary::Get()->EnsureLoaded());
49 library_ = chromeos::CryptohomeLibrary::Get(); 47 library_ = chromeos::CrosLibrary::Get()->GetCryptohomeLibrary();
50 } 48 }
51 49
52 virtual ~GoogleAuthenticator() {} 50 virtual ~GoogleAuthenticator() {}
53 51
54 // Given a |username| and |password|, this method attempts to authenticate to 52 // Given a |username| and |password|, this method attempts to authenticate to
55 // the Google accounts servers. The ultimate result is either a callback to 53 // the Google accounts servers. The ultimate result is either a callback to
56 // consumer_->OnLoginSuccess() with the |username| and a vector of 54 // consumer_->OnLoginSuccess() with the |username| and a vector of
57 // authentication cookies or a callback to consumer_->OnLoginFailure() with 55 // authentication cookies or a callback to consumer_->OnLoginFailure() with
58 // an error message. 56 // an error message.
59 // 57 //
(...skipping 14 matching lines...) Expand all
74 72
75 // Returns the ascii encoding of the system salt. 73 // Returns the ascii encoding of the system salt.
76 std::string SaltAsAscii(); 74 std::string SaltAsAscii();
77 75
78 // I need these static methods so I can PostTasks that use methods 76 // I need these static methods so I can PostTasks that use methods
79 // of sublcasses of LoginStatusConsumer. I can't seem to make 77 // of sublcasses of LoginStatusConsumer. I can't seem to make
80 // RunnableMethods out of methods belonging to subclasses without referring 78 // RunnableMethods out of methods belonging to subclasses without referring
81 // to the subclasses specifically, and I want to allow mocked out 79 // to the subclasses specifically, and I want to allow mocked out
82 // LoginStatusConsumers to be used here as well. 80 // LoginStatusConsumers to be used here as well.
83 static void OnLoginSuccess(LoginStatusConsumer* consumer, 81 static void OnLoginSuccess(LoginStatusConsumer* consumer,
84 chromeos::CryptohomeLibrary* library,
85 const std::string& username, 82 const std::string& username,
86 const std::string& passhash, 83 const std::string& passhash,
87 const ResponseCookies& cookies); 84 const ResponseCookies& cookies);
88 static void CheckOffline(LoginStatusConsumer* consumer, 85 static void CheckOffline(LoginStatusConsumer* consumer,
89 chromeos::CryptohomeLibrary* library,
90 const std::string& username, 86 const std::string& username,
91 const std::string& passhash, 87 const std::string& passhash,
92 const URLRequestStatus& status); 88 const URLRequestStatus& status);
93 static void OnLoginFailure(LoginStatusConsumer* consumer, 89 static void OnLoginFailure(LoginStatusConsumer* consumer,
94 const std::string& data); 90 const std::string& data);
95 91
96 // Meant for testing. 92 // Meant for testing.
97 void set_system_salt(const std::vector<unsigned char>& fake_salt) { 93 void set_system_salt(const std::vector<unsigned char>& fake_salt) {
98 system_salt_ = fake_salt; 94 system_salt_ = fake_salt;
99 } 95 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 // Returns false if |hex_string| is too small, true otherwise. 127 // Returns false if |hex_string| is too small, true otherwise.
132 static bool BinaryToHex(const std::vector<unsigned char>& binary, 128 static bool BinaryToHex(const std::vector<unsigned char>& binary,
133 const unsigned int binary_len, 129 const unsigned int binary_len,
134 char* hex_string, 130 char* hex_string,
135 const unsigned int len); 131 const unsigned int len);
136 132
137 DISALLOW_COPY_AND_ASSIGN(GoogleAuthenticator); 133 DISALLOW_COPY_AND_ASSIGN(GoogleAuthenticator);
138 }; 134 };
139 135
140 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_GOOGLE_AUTHENTICATOR_H_ 136 #endif // CHROME_BROWSER_CHROMEOS_LOGIN_GOOGLE_AUTHENTICATOR_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/existing_user_controller.cc ('k') | chrome/browser/chromeos/login/google_authenticator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698