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

Side by Side Diff: content/browser/loader/resource_hints_impl.cc

Issue 2785523002: Reduce/remove usage of BrowserThread in content/browser/loader. (Closed)
Patch Set: Fix unittests redness Created 3 years, 8 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <string> 5 #include <string>
6 6
7 #include "base/memory/ptr_util.h" 7 #include "base/memory/ptr_util.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "content/public/browser/browser_thread.h" 9 #include "content/browser/loader/loader_globals.h"
10 #include "content/public/browser/resource_context.h" 10 #include "content/public/browser/resource_context.h"
11 #include "content/public/browser/resource_hints.h" 11 #include "content/public/browser/resource_hints.h"
12 #include "net/base/address_list.h" 12 #include "net/base/address_list.h"
13 #include "net/base/load_flags.h" 13 #include "net/base/load_flags.h"
14 #include "net/dns/host_resolver.h" 14 #include "net/dns/host_resolver.h"
15 #include "net/http/http_network_session.h" 15 #include "net/http/http_network_session.h"
16 #include "net/http/http_request_info.h" 16 #include "net/http/http_request_info.h"
17 #include "net/http/http_stream_factory.h" 17 #include "net/http/http_stream_factory.h"
18 #include "net/http/http_transaction_factory.h" 18 #include "net/http/http_transaction_factory.h"
19 #include "net/log/net_log_with_source.h" 19 #include "net/log/net_log_with_source.h"
(...skipping 24 matching lines...) Expand all
44 } 44 }
45 45
46 } // namespace 46 } // namespace
47 47
48 void PreconnectUrl(content::ResourceContext* resource_context, 48 void PreconnectUrl(content::ResourceContext* resource_context,
49 const GURL& url, 49 const GURL& url,
50 const GURL& first_party_for_cookies, 50 const GURL& first_party_for_cookies,
51 int count, 51 int count,
52 bool allow_credentials, 52 bool allow_credentials,
53 net::HttpRequestInfo::RequestMotivation motivation) { 53 net::HttpRequestInfo::RequestMotivation motivation) {
54 DCHECK_CURRENTLY_ON(BrowserThread::IO); 54 DCHECK(
55 LoaderGlobals::Get()->io_thread_task_runner()->BelongsToCurrentThread());
55 DCHECK(resource_context); 56 DCHECK(resource_context);
56 57
57 net::URLRequestContext* context = resource_context->GetRequestContext(); 58 net::URLRequestContext* context = resource_context->GetRequestContext();
58 net::HttpTransactionFactory* factory = context->http_transaction_factory(); 59 net::HttpTransactionFactory* factory = context->http_transaction_factory();
59 net::HttpNetworkSession* session = factory->GetSession(); 60 net::HttpNetworkSession* session = factory->GetSession();
60 61
61 std::string user_agent; 62 std::string user_agent;
62 if (context->http_user_agent_settings()) 63 if (context->http_user_agent_settings())
63 user_agent = context->http_user_agent_settings()->GetUserAgent(); 64 user_agent = context->http_user_agent_settings()->GetUserAgent();
64 net::HttpRequestInfo request_info; 65 net::HttpRequestInfo request_info;
(...skipping 17 matching lines...) Expand all
82 net::LOAD_DO_NOT_SEND_AUTH_DATA; 83 net::LOAD_DO_NOT_SEND_AUTH_DATA;
83 } 84 }
84 85
85 net::HttpStreamFactory* http_stream_factory = session->http_stream_factory(); 86 net::HttpStreamFactory* http_stream_factory = session->http_stream_factory();
86 http_stream_factory->PreconnectStreams(count, request_info); 87 http_stream_factory->PreconnectStreams(count, request_info);
87 } 88 }
88 89
89 int PreresolveUrl(content::ResourceContext* resource_context, 90 int PreresolveUrl(content::ResourceContext* resource_context,
90 const GURL& url, 91 const GURL& url,
91 const net::CompletionCallback& callback) { 92 const net::CompletionCallback& callback) {
92 DCHECK_CURRENTLY_ON(BrowserThread::IO); 93 DCHECK(
94 LoaderGlobals::Get()->io_thread_task_runner()->BelongsToCurrentThread());
93 DCHECK(resource_context); 95 DCHECK(resource_context);
94 96
95 auto request_holder = base::MakeUnique<RequestHolder>(); 97 auto request_holder = base::MakeUnique<RequestHolder>();
96 auto addresses = base::MakeUnique<net::AddressList>(); 98 auto addresses = base::MakeUnique<net::AddressList>();
97 99
98 // Save raw pointers before the unique_ptr is invalidated by base::Passed. 100 // Save raw pointers before the unique_ptr is invalidated by base::Passed.
99 net::AddressList* raw_addresses = addresses.get(); 101 net::AddressList* raw_addresses = addresses.get();
100 std::unique_ptr<net::HostResolver::Request>* out_request = 102 std::unique_ptr<net::HostResolver::Request>* out_request =
101 request_holder->GetRequest(); 103 request_holder->GetRequest();
102 104
103 net::HostResolver* resolver = resource_context->GetHostResolver(); 105 net::HostResolver* resolver = resource_context->GetHostResolver();
104 net::HostResolver::RequestInfo resolve_info(net::HostPortPair::FromURL(url)); 106 net::HostResolver::RequestInfo resolve_info(net::HostPortPair::FromURL(url));
105 resolve_info.set_is_speculative(true); 107 resolve_info.set_is_speculative(true);
106 return resolver->Resolve( 108 return resolver->Resolve(
107 resolve_info, net::IDLE, raw_addresses, 109 resolve_info, net::IDLE, raw_addresses,
108 base::Bind(&OnResolveComplete, base::Passed(&request_holder), 110 base::Bind(&OnResolveComplete, base::Passed(&request_holder),
109 base::Passed(&addresses), callback), 111 base::Passed(&addresses), callback),
110 out_request, net::NetLogWithSource()); 112 out_request, net::NetLogWithSource());
111 } 113 }
112 114
113 } // namespace content 115 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698