1a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)// found in the LICENSE file.
4a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
5a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "sync/test/accounts_client/url_request_context_getter.h"
6a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
7a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include <string>
8a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "net/proxy/proxy_config_service_fixed.h"
10a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "net/url_request/url_request_context.h"
11a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "net/url_request/url_request_context_builder.h"
12a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
13a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)URLRequestContextGetter::URLRequestContextGetter(
14a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)    scoped_refptr<base::SingleThreadTaskRunner> network_task_runner)
15a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)    : network_task_runner_(network_task_runner) {
16a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)}
17a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
18a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() {
19a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)  CHECK(network_task_runner_->BelongsToCurrentThread());
20a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)  if (!url_request_context_) {
21a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)    net::URLRequestContextBuilder builder;
22a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)    // net::HttpServer fails to parse headers if user-agent header is blank.
23a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)    builder.set_user_agent("sync-test-accounts-client");
24a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)    builder.DisableHttpCache();
25a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#if defined(OS_LINUX) || defined(OS_ANDROID)
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    builder.set_proxy_config_service(
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        new net::ProxyConfigServiceFixed(net::ProxyConfig::CreateDirect()));
28a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#endif
29a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)    url_request_context_.reset(builder.Build());
30a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)  }
31a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)  return url_request_context_.get();
32a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)}
33a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
34a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)scoped_refptr<base::SingleThreadTaskRunner>
35a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)    URLRequestContextGetter::GetNetworkTaskRunner() const {
36a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)  return network_task_runner_;
37a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)}
38a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)
39a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)URLRequestContextGetter::~URLRequestContextGetter() {}
40