Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(675)

Side by Side Diff: remoting/base/chromium_url_request.cc

Issue 1679023009: Add remoting::UrlRequest interface with 2 implementations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « remoting/base/chromium_url_request.h ('k') | remoting/base/url_request.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 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 "remoting/base/chromium_url_request.h"
6
7 #include "base/callback_helpers.h"
8 #include "net/url_request/url_fetcher.h"
9 #include "net/url_request/url_request_context_getter.h"
10
11 namespace remoting {
12
13 ChromiumUrlRequest::ChromiumUrlRequest(
14 scoped_refptr<net::URLRequestContextGetter> url_context,
15 const std::string& url) {
16 url_fetcher_ = net::URLFetcher::Create(GURL(url), net::URLFetcher::GET, this);
17 url_fetcher_->SetRequestContext(url_context.get());
18 }
19
20 ChromiumUrlRequest::~ChromiumUrlRequest() {}
21
22 void ChromiumUrlRequest::AddHeader(const std::string& value) {
23 url_fetcher_->AddExtraRequestHeader(value);
24 }
25
26 void ChromiumUrlRequest::Start(const OnResultCallback& on_result_callback) {
27 DCHECK(!on_result_callback.is_null());
28 DCHECK(on_result_callback_.is_null());
29
30 on_result_callback_ = on_result_callback;
31 url_fetcher_->Start();
32 }
33
34 void ChromiumUrlRequest::OnURLFetchComplete(
35 const net::URLFetcher* url_fetcher) {
36 DCHECK_EQ(url_fetcher, url_fetcher_.get());
37
38 Result result;
39 result.success =
40 url_fetcher_->GetResponseCode() != net::URLFetcher::RESPONSE_CODE_INVALID;
41 if (result.success) {
42 result.status = url_fetcher_->GetResponseCode();
43 url_fetcher_->GetResponseAsString(&result.response_body);
44 }
45
46 DCHECK(!on_result_callback_.is_null());
47 base::ResetAndReturn(&on_result_callback_).Run(result);
48 }
49
50 ChromiumUrlRequestFactory::ChromiumUrlRequestFactory(
51 scoped_refptr<net::URLRequestContextGetter> url_context)
52 : url_context_(url_context) {}
53 ChromiumUrlRequestFactory::~ChromiumUrlRequestFactory() {}
54
55 scoped_ptr<UrlRequest> ChromiumUrlRequestFactory::CreateUrlRequest(
56 const std::string& url) {
57 return make_scoped_ptr(new ChromiumUrlRequest(url_context_, url));
58 }
59
60 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/base/chromium_url_request.h ('k') | remoting/base/url_request.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698