146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file.
446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "mojo/services/network/network_context.h"
646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/base_paths.h"
846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/path_service.h"
946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "net/proxy/proxy_service.h"
1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "net/url_request/url_request_context.h"
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "net/url_request/url_request_context_builder.h"
1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace mojo {
1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
15116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkContext::NetworkContext(const base::FilePath& base_path) {
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  net::URLRequestContextBuilder builder;
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  builder.set_accept_language("en-us,en");
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // TODO(darin): This is surely the wrong UA string.
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  builder.set_user_agent("Mojo/0.1");
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  builder.set_proxy_service(net::ProxyService::CreateDirect());
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  builder.set_transport_security_persister_path(base_path);
2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  net::URLRequestContextBuilder::HttpCacheParams cache_params;
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  cache_params.path = base_path.Append(FILE_PATH_LITERAL("Cache"));
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  cache_params.type = net::URLRequestContextBuilder::HttpCacheParams::DISK;
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  builder.EnableHttpCache(cache_params);
2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  builder.set_file_enabled(true);
2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  url_request_context_.reset(builder.Build());
3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)NetworkContext::~NetworkContext() {
3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // TODO(darin): Be careful about destruction order of member variables?
3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}
3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}  // namespace mojo
38