| // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_SSL_SSL_CONFIG_SERVICE_MANAGER_H_ |
| #define CHROME_BROWSER_SSL_SSL_CONFIG_SERVICE_MANAGER_H_ |
| |
| #include "services/network/public/mojom/network_service.mojom.h" |
| #include "services/network/public/mojom/ssl_config.mojom.h" |
| |
| class PrefService; |
| class PrefRegistrySimple; |
| |
| // An interface for sending updated network::mojom::SSLConfigs to one or more |
| // network::Mojom::SSLConfigClients. Not threadsafe. |
| class SSLConfigServiceManager { |
| public: |
| // Create an instance of the SSLConfigServiceManager. The lifetime of the |
| // PrefService objects must be longer than that of the manager. Get SSL |
| // preferences from local_state object. |
| static SSLConfigServiceManager* CreateDefaultManager( |
| PrefService* local_state); |
| |
| static void RegisterPrefs(PrefRegistrySimple* registry); |
| |
| virtual ~SSLConfigServiceManager() {} |
| |
| // Populates the SSLConfig-related members of |network_context_params| |
| // (|initial_ssl_config| and |ssl_config_client_request|). Updated SSLConfigs |
| // will be send to the NetworkContext created with those params whenever the |
| // configuration changes. Can be called more than once to inform multiple |
| // NetworkContexts of changes. |
| virtual void AddToNetworkContextParams( |
| network::mojom::NetworkContextParams* network_context_params) = 0; |
| |
| // Flushes all SSLConfigClient mojo pipes, to avoid races in tests. |
| virtual void FlushForTesting() = 0; |
| }; |
| |
| #endif // CHROME_BROWSER_SSL_SSL_CONFIG_SERVICE_MANAGER_H_ |