106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)// found in the LICENSE file. 406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "mojo/services/network/network_context.h" 606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "base/base_paths.h" 806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "base/path_service.h" 906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "net/proxy/proxy_service.h" 1006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "net/url_request/url_request_context.h" 1106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)#include "net/url_request/url_request_context_builder.h" 1206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 1306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)namespace mojo { 1406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 1506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)NetworkContext::NetworkContext(const base::FilePath& base_path) { 1606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) net::URLRequestContextBuilder builder; 1706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) builder.set_accept_language("en-us,en"); 1806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) // TODO(darin): This is surely the wrong UA string. 1906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) builder.set_user_agent("Mojo/0.1"); 2006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) builder.set_proxy_service(net::ProxyService::CreateDirect()); 2106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) builder.set_transport_security_persister_path(base_path); 2206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 2306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) net::URLRequestContextBuilder::HttpCacheParams cache_params; 2406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) cache_params.path = base_path.Append(FILE_PATH_LITERAL("Cache")); 2506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) cache_params.type = net::URLRequestContextBuilder::HttpCacheParams::DISK; 2606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) builder.EnableHttpCache(cache_params); 2706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 2806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) builder.set_file_enabled(true); 2906f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 3006f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) url_request_context_.reset(builder.Build()); 3106f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)} 3206f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 3306f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)NetworkContext::~NetworkContext() { 3406f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) // TODO(darin): Be careful about destruction order of member variables? 3506f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)} 3606f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles) 3706f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)} // namespace mojo 3806f816c7c76bc45a15e452ade8a34e8af077693eTorne (Richard Coles)