Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / ios / web / webui / url_fetcher_block_adapter.mm
blobdeb6178aa06e3cf5bb64f623e10e3f49447f37dd
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.
5 #include "ios/web/webui/url_fetcher_block_adapter.h"
7 #include "base/logging.h"
8 #include "net/url_request/url_fetcher.h"
9 #include "net/url_request/url_request_context_getter.h"
11 namespace web {
13 URLFetcherBlockAdapter::URLFetcherBlockAdapter(
14     const GURL& url,
15     net::URLRequestContextGetter* request_context,
16     web::URLFetcherBlockAdapterCompletion completion_handler)
17     : url_(url),
18       request_context_(request_context),
19       completion_handler_([completion_handler copy]) {
22 URLFetcherBlockAdapter::~URLFetcherBlockAdapter() {
25 void URLFetcherBlockAdapter::Start() {
26   fetcher_ = net::URLFetcher::Create(url_, net::URLFetcher::GET, this);
27   fetcher_->SetRequestContext(request_context_);
28   fetcher_->Start();
31 void URLFetcherBlockAdapter::OnURLFetchComplete(const net::URLFetcher* source) {
32   std::string response;
33   if (!source->GetResponseAsString(&response)) {
34     DLOG(WARNING) << "String for resource URL not found" << source->GetURL();
35   }
36   NSData* data =
37       [NSData dataWithBytes:response.c_str() length:response.length()];
38   completion_handler_.get()(data, this);
41 }  // namespace web