diff options
author | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-21 17:46:36 +0000 |
---|---|---|
committer | mnissler@chromium.org <mnissler@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-21 17:46:36 +0000 |
commit | dd5e392a53c7aa927a9e6cd4ad6a46241b25cbaa (patch) | |
tree | ac02ba00655f523156fd95adc98e6661bab31a91 /chrome/browser/invalidation/fake_invalidation_service.h | |
parent | e0bc89ec46f87d8da3d6547f6198bf98546ce6ed (diff) | |
download | chromium_src-dd5e392a53c7aa927a9e6cd4ad6a46241b25cbaa.zip chromium_src-dd5e392a53c7aa927a9e6cd4ad6a46241b25cbaa.tar.gz chromium_src-dd5e392a53c7aa927a9e6cd4ad6a46241b25cbaa.tar.bz2 |
Make invalidations work for Chrome OS Kiosk Apps.
Kiosk Apps don't have a user logged in, so SigninManager and
ProfileOAuth2TokenService don't work. However, Kiosk Apps have access
to a device-level robot account for identity. Wire this up with the
invalidation code by breaking out the authentication-related pieces
into a separate interface and providing implementations both for the
regular Profile case as well as Kiosk Apps. The appropriate
implementation gets selected by InvalidationServiceFactory.
BUG=chromium:269455
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=258522
Review URL: https://codereview.chromium.org/179843002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258623 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/invalidation/fake_invalidation_service.h')
-rw-r--r-- | chrome/browser/invalidation/fake_invalidation_service.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/chrome/browser/invalidation/fake_invalidation_service.h b/chrome/browser/invalidation/fake_invalidation_service.h index 5a9a4b7..661c9d0 100644 --- a/chrome/browser/invalidation/fake_invalidation_service.h +++ b/chrome/browser/invalidation/fake_invalidation_service.h @@ -10,7 +10,9 @@ #include "base/basictypes.h" #include "base/callback_forward.h" +#include "chrome/browser/invalidation/invalidation_auth_provider.h" #include "chrome/browser/invalidation/invalidation_service.h" +#include "chrome/browser/signin/fake_profile_oauth2_token_service.h" #include "sync/notifier/invalidator_registrar.h" #include "sync/notifier/mock_ack_handler.h" @@ -26,6 +28,27 @@ namespace invalidation { class InvalidationLogger; +// Fake invalidation auth provider implementation. +class FakeInvalidationAuthProvider : public InvalidationAuthProvider { + public: + FakeInvalidationAuthProvider(); + virtual ~FakeInvalidationAuthProvider(); + + // InvalidationAuthProvider: + virtual OAuth2TokenService* GetTokenService() OVERRIDE; + virtual std::string GetAccountId() OVERRIDE; + virtual bool ShowLoginUI() OVERRIDE; + + FakeProfileOAuth2TokenService* fake_token_service() { + return &token_service_; + } + + private: + FakeProfileOAuth2TokenService token_service_; + + DISALLOW_COPY_AND_ASSIGN(FakeInvalidationAuthProvider); +}; + // An InvalidationService that emits invalidations only when // its EmitInvalidationForTest method is called. class FakeInvalidationService : public InvalidationService { @@ -48,6 +71,7 @@ class FakeInvalidationService : public InvalidationService { virtual InvalidationLogger* GetInvalidationLogger() OVERRIDE; virtual void RequestDetailedStatus( base::Callback<void(const base::DictionaryValue&)> caller) OVERRIDE; + virtual InvalidationAuthProvider* GetInvalidationAuthProvider() OVERRIDE; void SetInvalidatorState(syncer::InvalidatorState state); @@ -65,6 +89,7 @@ class FakeInvalidationService : public InvalidationService { std::string client_id_; syncer::InvalidatorRegistrar invalidator_registrar_; syncer::MockAckHandler mock_ack_handler_; + FakeInvalidationAuthProvider auth_provider_; DISALLOW_COPY_AND_ASSIGN(FakeInvalidationService); }; |