// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef NET_CERT_COALESCING_CERT_VERIFIER_H_ #define NET_CERT_COALESCING_CERT_VERIFIER_H_ #include <stdint.h> #include <map> #include <memory> #include <vector> #include "net/base/net_export.h" #include "net/cert/cert_verifier.h" namespace net { // CoalescingCertVerifier is a CertVerifier that keeps track of in-flight // CertVerifier Verify() requests. If a new call to Verify() is started that // matches the same parameters as an in-progress verification, the new // Verify() call will be joined to the existing, in-progress verification, // completing when it does. If no in-flight requests match, a new request to // the underlying verifier will be started. // // If the underlying configuration changes, existing requests are allowed to // complete, but any new requests will not be seen as matching, even if they // share the same parameters. This ensures configuration changes propagate // "immediately" for all new requests. class NET_EXPORT CoalescingCertVerifier : public CertVerifier, public CertVerifier::Observer { … }; } // namespace net #endif // NET_CERT_COALESCING_CERT_VERIFIER_H_