15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_NET_SSL_CONFIG_SERVICE_MANAGER_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_NET_SSL_CONFIG_SERVICE_MANAGER_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SSLConfigService; 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace net 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PrefService; 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class PrefRegistrySimple; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// An interface for creating SSLConfigService objects. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SSLConfigServiceManager { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Create an instance of the SSLConfigServiceManager. The lifetime of the 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // PrefService objects must be longer than that of the manager. Get SSL 2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) // preferences from local_state object. 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) static SSLConfigServiceManager* CreateDefaultManager( 2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) PrefService* local_state); 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static void RegisterPrefs(PrefRegistrySimple* registry); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~SSLConfigServiceManager() {} 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Get an SSLConfigService instance. It may be a new instance or the manager 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // may return the same instance multiple times. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The caller should hold a reference as long as it needs the instance (eg, 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // using scoped_refptr.) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual net::SSLConfigService* Get() = 0; 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_NET_SSL_CONFIG_SERVICE_MANAGER_H_ 36