19714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com// Copyright 2014 The Chromium Authors. All rights reserved. 29714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com// Use of this source code is governed by a BSD-style license that can be 39714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com// found in the LICENSE file. 49714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com 59714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com#ifndef CHROME_BROWSER_SIGNIN_CHROME_SIGNIN_CLIENT_FACTORY_H_ 69714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com#define CHROME_BROWSER_SIGNIN_CHROME_SIGNIN_CLIENT_FACTORY_H_ 79714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com 89714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com#include "base/memory/singleton.h" 99714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com#include "chrome/browser/signin/chrome_signin_client.h" 109714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com#include "components/keyed_service/content/browser_context_keyed_service_factory.h" 119714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com 123b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.comclass Profile; 139714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com 143b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com// Singleton that owns all ChromeSigninClients and associates them with 153b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com// Profiles. 16d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.comclass ChromeSigninClientFactory : public BrowserContextKeyedServiceFactory { 173b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com public: 183b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com // Returns the instance of SigninClient associated with this profile 193b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com // (creating one if none exists). Returns NULL if this profile cannot have an 203b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com // SigninClient (for example, if |profile| is incognito). 219714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com static SigninClient* GetForProfile(Profile* profile); 229714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com 233b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com // Returns an instance of the factory singleton. 243b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com static ChromeSigninClientFactory* GetInstance(); 259714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com 269714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com private: 273b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com friend struct DefaultSingletonTraits<ChromeSigninClientFactory>; 28a8c7f7702fb4bbedb615031bc653c5cd161a038ecommit-bot@chromium.org 299714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com ChromeSigninClientFactory(); 303b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com virtual ~ChromeSigninClientFactory(); 313b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com 329714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com // BrowserContextKeyedServiceFactory: 339714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com virtual KeyedService* BuildServiceInstanceFor( 349714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com content::BrowserContext* profile) const OVERRIDE; 353b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com}; 363b700f6929e093cb14cc0e4ef569e6f697c5a816reed@google.com 379714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com#endif // CHROME_BROWSER_SIGNIN_CHROME_SIGNIN_CLIENT_FACTORY_H_ 389714516a0db56fe1c59d5e831cb0c6d820102c30djsollen@google.com