1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// found in the LICENSE file.
4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
5a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "cloud_print/gcp20/prototype/cloud_print_url_request_context_getter.h"
6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "net/proxy/proxy_config_service_fixed.h"
8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "net/url_request/url_request_context.h"
9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "net/url_request/url_request_context_builder.h"
10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)CloudPrintURLRequestContextGetter::CloudPrintURLRequestContextGetter(
12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  DCHECK(task_runner.get());
14a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  network_task_runner_ = task_runner;
15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}
16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)CloudPrintURLRequestContextGetter::~CloudPrintURLRequestContextGetter() {
18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}
19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)net::URLRequestContext*
21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)CloudPrintURLRequestContextGetter::GetURLRequestContext() {
22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  if (!context_) {
23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    net::URLRequestContextBuilder builder;
24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if defined(OS_LINUX) || defined(OS_ANDROID)
25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    builder.set_proxy_config_service(
26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)        new net::ProxyConfigServiceFixed(net::ProxyConfig()));
27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif  // defined(OS_LINUX) || defined(OS_ANDROID)
28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)    context_.reset(builder.Build());
29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  }
30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  return context_.get();
31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}
32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)scoped_refptr<base::SingleThreadTaskRunner>
34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)CloudPrintURLRequestContextGetter::GetNetworkTaskRunner() const {
35a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)  return network_task_runner_;
36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)}
37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)
38