15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#ifndef CHROME_BROWSER_SERVICES_GCM_FAKE_SIGNIN_MANAGER_H_ 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define CHROME_BROWSER_SERVICES_GCM_FAKE_SIGNIN_MANAGER_H_ 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include <string> 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/macros.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "components/signin/core/browser/signin_metrics.h" 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#if defined(OS_CHROMEOS) 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "components/signin/core/browser/signin_manager_base.h" 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#else 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/compiler_specific.h" 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "components/signin/core/browser/signin_manager.h" 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass KeyedService; 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass Profile; 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace content { 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass BrowserContext; 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace gcm { 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#if defined(OS_CHROMEOS) 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass FakeSigninManager : public SigninManagerBase { 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#else 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuclass FakeSigninManager : public SigninManager { 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu public: 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu explicit FakeSigninManager(Profile* profile); 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu virtual ~FakeSigninManager(); 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu void SignIn(const std::string& username); 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#if defined(OS_CHROMEOS) 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void SignOut(signin_metrics::ProfileSignout signout_source_metric); 415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#else 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void SignOut(signin_metrics::ProfileSignout signout_source_metric) 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch OVERRIDE; 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu static KeyedService* Build(content::BrowserContext* context); 475c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu private: 495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu Profile* profile_; 505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu DISALLOW_COPY_AND_ASSIGN(FakeSigninManager); 525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}; 535c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 545c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace gcm 555c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#endif // CHROME_BROWSER_SERVICES_GCM_FAKE_SIGNIN_MANAGER_H_ 57