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