Index: components/signin/core/browser/signin_client.h |
diff --git a/components/signin/core/browser/signin_client.h b/components/signin/core/browser/signin_client.h |
index 8668ab629781d5af3ce3d60fdb5d7bcadd0cfe5f..200c2dcff4bcbd76f3051a13165c2fdc2faa7a71 100644 |
--- a/components/signin/core/browser/signin_client.h |
+++ b/components/signin/core/browser/signin_client.h |
@@ -6,6 +6,7 @@ |
#define COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_CLIENT_H_ |
#include "base/callback.h" |
+#include "base/callback_list.h" |
#include "components/keyed_service/core/keyed_service.h" |
#include "components/signin/core/browser/webdata/token_web_data.h" |
@@ -33,6 +34,9 @@ class SigninClient : public KeyedService { |
typedef base::Callback<void(const net::CanonicalCookie* cookie)> |
CookieChangedCallback; |
+ typedef base::CallbackList<void(const net::CanonicalCookie* cookie)> |
+ CookieChangedCallbackList; |
+ |
virtual ~SigninClient() {} |
// Gets the preferences associated with the client. |
@@ -65,13 +69,12 @@ class SigninClient : public KeyedService { |
// Signin component is being used. |
virtual std::string GetProductVersion() = 0; |
- // Sets the callback that should be called when a cookie changes. The |
- // callback will be called only if it is not empty. |
+ // Adds or removes a callback that should be called when a cookie changes. |
// TODO(blundell): Eliminate this interface in favor of having core signin |
// code observe cookie changes once //chrome/browser/net has been |
// componentized. |
- virtual void SetCookieChangedCallback( |
- const CookieChangedCallback& callback) = 0; |
+ virtual scoped_ptr<CookieChangedCallbackList::Subscription> |
+ AddCookieChangedCallback(const CookieChangedCallback& callback) = 0; |
// Called when Google signin has succeeded. |
virtual void GoogleSigninSucceeded(const std::string& username, |