// Copyright 2023 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_SAFE_BROWSING_OHTTP_KEY_SERVICE_FACTORY_H_ #define CHROME_BROWSER_SAFE_BROWSING_OHTTP_KEY_SERVICE_FACTORY_H_ #include "base/no_destructor.h" #include "chrome/browser/profiles/profile_keyed_service_factory.h" class KeyedService; class Profile; namespace content { class BrowserContext; } namespace safe_browsing { class OhttpKeyService; // Singleton that owns OhttpKeyService objects, one for each active // Profile. It listens to profile destroy events and destroy its associated // service. It returns nullptr if the profile is in incognito or guest mode. class OhttpKeyServiceFactory : public ProfileKeyedServiceFactory { … }; // Used only for tests. By default, the OHTTP key service is null for tests, // since when it's created it tries to fetch the OHTTP key, which can cause // errors for unrelated tests. To allow the OHTTP key service in tests, create // an object of this type and keep it in scope for as long as the override // should exist. The constructor will set the override, and the destructor will // clear it. class OhttpKeyServiceAllowerForTesting { … }; } // namespace safe_browsing #endif // CHROME_BROWSER_SAFE_BROWSING_OHTTP_KEY_SERVICE_FACTORY_H_