// Copyright 2021 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_NET_NSS_SERVICE_H_ #define CHROME_BROWSER_NET_NSS_SERVICE_H_ #include <memory> #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "build/buildflag.h" #include "build/chromeos_buildflags.h" #include "components/keyed_service/core/keyed_service.h" namespace content { class BrowserContext; } // namespace content namespace net { class NSSCertDatabase; } // namespace net // `NssCertDatabaseGetter` is a callback that MUST only be invoked on the IO // thread, and will either synchronously return the associated // `NSSCertDatabase*` (if available), or nullptr along with a commitment to // asynchronously invoke the caller-supplied callback once the // `NSSCertDatabase*` has been initialized. // Ownership of the `NSSCertDatabase` is not transferred, and the lifetime // should only be considered valid for the current Task. // // TODO(crbug.com/40753707): Provide better lifetime guarantees. NssCertDatabaseGetter; // Service that owns and initializes the per-`BrowserContext` certificate // database. // On some platforms, this may be a per-`BrowserContext` `KeyedService` that // returns a system-wide shared `NSSCertDatabase`, if the configuration is // system-wide. class NssService : public KeyedService { … }; #endif // CHROME_BROWSER_NET_NSS_SERVICE_H_