summaryrefslogtreecommitdiff
path: root/chromium/content/browser/web_package/signed_exchange_cert_fetcher_factory.cc
diff options
context:
space:
mode:
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.cc65
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