diff options
Diffstat (limited to 'chromium/content/browser/web_package/signed_exchange_cert_fetcher_factory.cc')
-rw-r--r-- | chromium/content/browser/web_package/signed_exchange_cert_fetcher_factory.cc | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/chromium/content/browser/web_package/signed_exchange_cert_fetcher_factory.cc b/chromium/content/browser/web_package/signed_exchange_cert_fetcher_factory.cc new file mode 100644 index 00000000000..40d63e33e51 --- /dev/null +++ b/chromium/content/browser/web_package/signed_exchange_cert_fetcher_factory.cc @@ -0,0 +1,65 @@ +// Copyright 2018 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. + +#include "content/browser/web_package/signed_exchange_cert_fetcher_factory.h" + +#include "content/public/common/url_loader_throttle.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" + +namespace content { + +SignedExchangeCertFetcherFactory::~SignedExchangeCertFetcherFactory() = default; + +class SignedExchangeCertFetcherFactoryImpl + : public SignedExchangeCertFetcherFactory { + public: + SignedExchangeCertFetcherFactoryImpl( + url::Origin request_initiator, + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, + URLLoaderThrottlesGetter url_loader_throttles_getter) + : request_initiator_(std::move(request_initiator)), + url_loader_factory_(std::move(url_loader_factory)), + url_loader_throttles_getter_(std::move(url_loader_throttles_getter)) {} + + std::unique_ptr<SignedExchangeCertFetcher> CreateFetcherAndStart( + const GURL& cert_url, + bool force_fetch, + SignedExchangeCertFetcher::CertificateCallback callback, + const signed_exchange_utils::LogCallback& error_message_callback) + override; + + private: + url::Origin request_initiator_; + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; + URLLoaderThrottlesGetter url_loader_throttles_getter_; +}; + +std::unique_ptr<SignedExchangeCertFetcher> +SignedExchangeCertFetcherFactoryImpl::CreateFetcherAndStart( + const GURL& cert_url, + bool force_fetch, + SignedExchangeCertFetcher::CertificateCallback callback, + const signed_exchange_utils::LogCallback& error_message_callback) { + DCHECK(url_loader_factory_); + DCHECK(url_loader_throttles_getter_); + std::vector<std::unique_ptr<URLLoaderThrottle>> throttles = + std::move(url_loader_throttles_getter_).Run(); + return SignedExchangeCertFetcher::CreateAndStart( + std::move(url_loader_factory_), std::move(throttles), cert_url, + std::move(request_initiator_), force_fetch, std::move(callback), + std::move(error_message_callback)); +} + +// static +std::unique_ptr<SignedExchangeCertFetcherFactory> +SignedExchangeCertFetcherFactory::Create( + url::Origin request_initiator, + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, + URLLoaderThrottlesGetter url_loader_throttles_getter) { + return std::make_unique<SignedExchangeCertFetcherFactoryImpl>( + std::move(request_initiator), std::move(url_loader_factory), + std::move(url_loader_throttles_getter)); +} + +} // namespace content |