1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/public/browser/provision_fetcher_impl.h"
6
7 #include "base/bind.h"
8 #include "content/public/browser/provision_fetcher_factory.h"
9 #include "mojo/public/cpp/bindings/self_owned_receiver.h"
10 #include "services/network/public/cpp/shared_url_loader_factory.h"
11
12 namespace content {
13
14 // static
Create(scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,mojo::PendingReceiver<media::mojom::ProvisionFetcher> receiver)15 void ProvisionFetcherImpl::Create(
16 scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
17 mojo::PendingReceiver<media::mojom::ProvisionFetcher> receiver) {
18 DCHECK(url_loader_factory);
19 mojo::MakeSelfOwnedReceiver(
20 std::make_unique<ProvisionFetcherImpl>(
21 CreateProvisionFetcher(std::move(url_loader_factory))),
22 std::move(receiver));
23 }
24
ProvisionFetcherImpl(std::unique_ptr<media::ProvisionFetcher> provision_fetcher)25 ProvisionFetcherImpl::ProvisionFetcherImpl(
26 std::unique_ptr<media::ProvisionFetcher> provision_fetcher)
27 : provision_fetcher_(std::move(provision_fetcher)) {
28 DVLOG(1) << __FUNCTION__;
29 }
30
~ProvisionFetcherImpl()31 ProvisionFetcherImpl::~ProvisionFetcherImpl() {}
32
Retrieve(const std::string & default_url,const std::string & request_data,RetrieveCallback callback)33 void ProvisionFetcherImpl::Retrieve(const std::string& default_url,
34 const std::string& request_data,
35 RetrieveCallback callback) {
36 DVLOG(1) << __FUNCTION__ << ": " << default_url;
37 provision_fetcher_->Retrieve(
38 default_url, request_data,
39 base::BindOnce(&ProvisionFetcherImpl::OnResponse,
40 weak_factory_.GetWeakPtr(), std::move(callback)));
41 }
42
OnResponse(RetrieveCallback callback,bool success,const std::string & response)43 void ProvisionFetcherImpl::OnResponse(RetrieveCallback callback,
44 bool success,
45 const std::string& response) {
46 DVLOG(1) << __FUNCTION__ << ": " << success;
47 std::move(callback).Run(success, response);
48 }
49
50 } // namespace content
51