Index: chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h |
diff --git a/chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h b/chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h |
index 16bd680ff573ea51f2d7f42dc6cc14e00cee16da..cd68763b7a870a32bef843431df2619e0b561d18 100644 |
--- a/chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h |
+++ b/chrome/browser/chromeos/settings/device_oauth2_token_service_factory.h |
@@ -5,8 +5,12 @@ |
#ifndef CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_OAUTH2_TOKEN_SERVICE_FACTORY_H_ |
#define CHROME_BROWSER_CHROMEOS_SETTINGS_DEVICE_OAUTH2_TOKEN_SERVICE_FACTORY_H_ |
+#include <queue> |
+#include <string> |
+ |
#include "base/basictypes.h" |
#include "base/callback_forward.h" |
+#include "base/memory/weak_ptr.h" |
namespace chromeos { |
@@ -45,7 +49,28 @@ class DeviceOAuth2TokenServiceFactory { |
DeviceOAuth2TokenServiceFactory(); |
~DeviceOAuth2TokenServiceFactory(); |
+ // Creates the token service asynchronously in the following steps: |
+ // 1) Get the system salt from cryptohomed asynchronously |
+ // 2) Create CryptohomeTokenEncryptor using the system salt |
+ // 3) Create DeviceOAuth2TokenServiceFactory using the token encryptor |
+ void CreateTokenService(); |
+ |
+ // Continuation of CreateTokenService(). Called when GetSystemSalt() is |
+ // complete. |
+ void DidGetSystemSalt(const std::string& system_salt); |
+ |
+ // Runs the callback asynchronously. If |token_service_| is ready, the |
+ // callback will be simply run via MessageLoop. Otherwise, the callback |
+ // will be queued in |pending_callbacks_| and run when |token_service_| is |
+ // ready. |
+ void RunAsync(const GetCallback& callback); |
+ |
+ // True if the factory is initialized (i.e. system salt retrieval is done |
+ // regardless of whether it succeeded or failed). |
+ bool initialized_; |
DeviceOAuth2TokenService* token_service_; |
+ std::queue<GetCallback> pending_callbacks_; |
+ base::WeakPtrFactory<DeviceOAuth2TokenServiceFactory> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(DeviceOAuth2TokenServiceFactory); |
}; |