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

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: Remove DCHECK 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/resource_dispatcher_host_impl.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(ResourceDispatcherHostImpl::Get()
55 ->io_thread_task_runner()
56 ->BelongsToCurrentThread());
55 DCHECK(resource_context); 57 DCHECK(resource_context);
56 58
57 net::URLRequestContext* context = resource_context->GetRequestContext(); 59 net::URLRequestContext* context = resource_context->GetRequestContext();
58 net::HttpTransactionFactory* factory = context->http_transaction_factory(); 60 net::HttpTransactionFactory* factory = context->http_transaction_factory();
59 net::HttpNetworkSession* session = factory->GetSession(); 61 net::HttpNetworkSession* session = factory->GetSession();
60 62
61 std::string user_agent; 63 std::string user_agent;
62 if (context->http_user_agent_settings()) 64 if (context->http_user_agent_settings())
63 user_agent = context->http_user_agent_settings()->GetUserAgent(); 65 user_agent = context->http_user_agent_settings()->GetUserAgent();
64 net::HttpRequestInfo request_info; 66 net::HttpRequestInfo request_info;
(...skipping 17 matching lines...) Expand all
82 net::LOAD_DO_NOT_SEND_AUTH_DATA; 84 net::LOAD_DO_NOT_SEND_AUTH_DATA;
83 } 85 }
84 86
85 net::HttpStreamFactory* http_stream_factory = session->http_stream_factory(); 87 net::HttpStreamFactory* http_stream_factory = session->http_stream_factory();
86 http_stream_factory->PreconnectStreams(count, request_info); 88 http_stream_factory->PreconnectStreams(count, request_info);
87 } 89 }
88 90
89 int PreresolveUrl(content::ResourceContext* resource_context, 91 int PreresolveUrl(content::ResourceContext* resource_context,
90 const GURL& url, 92 const GURL& url,
91 const net::CompletionCallback& callback) { 93 const net::CompletionCallback& callback) {
92 DCHECK_CURRENTLY_ON(BrowserThread::IO); 94 DCHECK(ResourceDispatcherHostImpl::Get()
95 ->io_thread_task_runner()
96 ->BelongsToCurrentThread());
93 DCHECK(resource_context); 97 DCHECK(resource_context);
94 98
95 auto request_holder = base::MakeUnique<RequestHolder>(); 99 auto request_holder = base::MakeUnique<RequestHolder>();
96 auto addresses = base::MakeUnique<net::AddressList>(); 100 auto addresses = base::MakeUnique<net::AddressList>();
97 101
98 // Save raw pointers before the unique_ptr is invalidated by base::Passed. 102 // Save raw pointers before the unique_ptr is invalidated by base::Passed.
99 net::AddressList* raw_addresses = addresses.get(); 103 net::AddressList* raw_addresses = addresses.get();
100 std::unique_ptr<net::HostResolver::Request>* out_request = 104 std::unique_ptr<net::HostResolver::Request>* out_request =
101 request_holder->GetRequest(); 105 request_holder->GetRequest();
102 106
103 net::HostResolver* resolver = resource_context->GetHostResolver(); 107 net::HostResolver* resolver = resource_context->GetHostResolver();
104 net::HostResolver::RequestInfo resolve_info(net::HostPortPair::FromURL(url)); 108 net::HostResolver::RequestInfo resolve_info(net::HostPortPair::FromURL(url));
105 resolve_info.set_is_speculative(true); 109 resolve_info.set_is_speculative(true);
106 return resolver->Resolve( 110 return resolver->Resolve(
107 resolve_info, net::IDLE, raw_addresses, 111 resolve_info, net::IDLE, raw_addresses,
108 base::Bind(&OnResolveComplete, base::Passed(&request_holder), 112 base::Bind(&OnResolveComplete, base::Passed(&request_holder),
109 base::Passed(&addresses), callback), 113 base::Passed(&addresses), callback),
110 out_request, net::NetLogWithSource()); 114 out_request, net::NetLogWithSource());
111 } 115 }
112 116
113 } // namespace content 117 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/loader/resource_dispatcher_host_unittest.cc ('k') | content/browser/loader/resource_loader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698