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

Side by Side Diff: chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.cc

Issue 9580002: Add ResourceRequestInfo. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate. h" 5 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate. h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
9 #include "chrome/browser/content_settings/host_content_settings_map.h" 9 #include "chrome/browser/content_settings/host_content_settings_map.h"
10 #include "chrome/browser/download/download_request_limiter.h" 10 #include "chrome/browser/download/download_request_limiter.h"
(...skipping 13 matching lines...) Expand all
24 #include "chrome/browser/renderer_host/transfer_navigation_resource_throttle.h" 24 #include "chrome/browser/renderer_host/transfer_navigation_resource_throttle.h"
25 #include "chrome/browser/safe_browsing/safe_browsing_service.h" 25 #include "chrome/browser/safe_browsing/safe_browsing_service.h"
26 #include "chrome/browser/ui/auto_login_prompter.h" 26 #include "chrome/browser/ui/auto_login_prompter.h"
27 #include "chrome/browser/ui/login/login_prompt.h" 27 #include "chrome/browser/ui/login/login_prompt.h"
28 #include "chrome/browser/ui/sync/one_click_signin_helper.h" 28 #include "chrome/browser/ui/sync/one_click_signin_helper.h"
29 #include "chrome/common/chrome_notification_types.h" 29 #include "chrome/common/chrome_notification_types.h"
30 #include "chrome/common/extensions/user_script.h" 30 #include "chrome/common/extensions/user_script.h"
31 #include "chrome/common/render_messages.h" 31 #include "chrome/common/render_messages.h"
32 #include "content/browser/renderer_host/render_view_host.h" 32 #include "content/browser/renderer_host/render_view_host.h"
33 #include "content/browser/renderer_host/resource_dispatcher_host.h" 33 #include "content/browser/renderer_host/resource_dispatcher_host.h"
34 #include "content/browser/renderer_host/resource_dispatcher_host_request_info.h"
35 #include "content/public/browser/browser_thread.h" 34 #include "content/public/browser/browser_thread.h"
36 #include "content/public/browser/notification_service.h" 35 #include "content/public/browser/notification_service.h"
37 #include "content/public/browser/resource_context.h" 36 #include "content/public/browser/resource_context.h"
37 #include "content/public/browser/resource_request_info.h"
38 #include "net/base/load_flags.h" 38 #include "net/base/load_flags.h"
39 #include "net/base/ssl_config_service.h" 39 #include "net/base/ssl_config_service.h"
40 40
41 // TODO(oshima): Enable this for other platforms. 41 // TODO(oshima): Enable this for other platforms.
42 #if defined(OS_CHROMEOS) 42 #if defined(OS_CHROMEOS)
43 #include "chrome/browser/renderer_host/offline_resource_throttle.h" 43 #include "chrome/browser/renderer_host/offline_resource_throttle.h"
44 #endif 44 #endif
45 45
46 using content::BrowserThread; 46 using content::BrowserThread;
47 using content::ResourceDispatcherHostLoginDelegate; 47 using content::ResourceDispatcherHostLoginDelegate;
48 using content::ResourceRequestInfo;
48 49
49 namespace { 50 namespace {
50 51
51 void AddPrerenderOnUI( 52 void AddPrerenderOnUI(
52 int render_process_id, int render_view_id, 53 int render_process_id, int render_view_id,
53 const GURL& url, const content::Referrer& referrer) { 54 const GURL& url, const content::Referrer& referrer) {
54 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 55 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
55 prerender::PrerenderManager* prerender_manager = 56 prerender::PrerenderManager* prerender_manager =
56 prerender::FindPrerenderManagerUsingRenderProcessId(render_process_id); 57 prerender::FindPrerenderManagerUsingRenderProcessId(render_process_id);
57 if (!prerender_manager || !prerender_manager->is_enabled()) 58 if (!prerender_manager || !prerender_manager->is_enabled())
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 } 208 }
208 209
209 bool ChromeResourceDispatcherHostDelegate::AcceptSSLClientCertificateRequest( 210 bool ChromeResourceDispatcherHostDelegate::AcceptSSLClientCertificateRequest(
210 net::URLRequest* request, net::SSLCertRequestInfo* cert_request_info) { 211 net::URLRequest* request, net::SSLCertRequestInfo* cert_request_info) {
211 if (request->load_flags() & net::LOAD_PREFETCH) 212 if (request->load_flags() & net::LOAD_PREFETCH)
212 return false; 213 return false;
213 214
214 ChromeURLRequestUserData* user_data = ChromeURLRequestUserData::Get(request); 215 ChromeURLRequestUserData* user_data = ChromeURLRequestUserData::Get(request);
215 if (user_data && user_data->is_prerender()) { 216 if (user_data && user_data->is_prerender()) {
216 int child_id, route_id; 217 int child_id, route_id;
217 if (ResourceDispatcherHost::RenderViewForRequest( 218 if (ResourceRequestInfo::ForRequest(request)->GetAssociatedRenderView(
218 request, &child_id, &route_id)) { 219 &child_id, &route_id)) {
219 if (prerender_tracker_->TryCancel( 220 if (prerender_tracker_->TryCancel(
220 child_id, route_id, 221 child_id, route_id,
221 prerender::FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED)) { 222 prerender::FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED)) {
222 return false; 223 return false;
223 } 224 }
224 } 225 }
225 } 226 }
226 227
227 return true; 228 return true;
228 } 229 }
229 230
230 bool ChromeResourceDispatcherHostDelegate::AcceptAuthRequest( 231 bool ChromeResourceDispatcherHostDelegate::AcceptAuthRequest(
231 net::URLRequest* request, 232 net::URLRequest* request,
232 net::AuthChallengeInfo* auth_info) { 233 net::AuthChallengeInfo* auth_info) {
233 ChromeURLRequestUserData* user_data = ChromeURLRequestUserData::Get(request); 234 ChromeURLRequestUserData* user_data = ChromeURLRequestUserData::Get(request);
234 if (!user_data || !user_data->is_prerender()) 235 if (!user_data || !user_data->is_prerender())
235 return true; 236 return true;
236 237
237 int child_id, route_id; 238 int child_id, route_id;
238 if (!ResourceDispatcherHost::RenderViewForRequest( 239 if (!ResourceRequestInfo::ForRequest(request)->GetAssociatedRenderView(
239 request, &child_id, &route_id)) { 240 &child_id, &route_id)) {
240 NOTREACHED(); 241 NOTREACHED();
241 return true; 242 return true;
242 } 243 }
243 244
244 if (!prerender_tracker_->TryCancelOnIOThread( 245 if (!prerender_tracker_->TryCancelOnIOThread(
245 child_id, route_id, prerender::FINAL_STATUS_AUTH_NEEDED)) { 246 child_id, route_id, prerender::FINAL_STATUS_AUTH_NEEDED)) {
246 return true; 247 return true;
247 } 248 }
248 249
249 return false; 250 return false;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 // Special-case user scripts to get downloaded instead of viewed. 304 // Special-case user scripts to get downloaded instead of viewed.
304 return UserScript::IsURLUserScript(url, mime_type); 305 return UserScript::IsURLUserScript(url, mime_type);
305 } 306 }
306 307
307 void ChromeResourceDispatcherHostDelegate::OnResponseStarted( 308 void ChromeResourceDispatcherHostDelegate::OnResponseStarted(
308 net::URLRequest* request, 309 net::URLRequest* request,
309 content::ResourceResponse* response, 310 content::ResourceResponse* response,
310 IPC::Message::Sender* sender) { 311 IPC::Message::Sender* sender) {
311 LoadTimingObserver::PopulateTimingInfo(request, response); 312 LoadTimingObserver::PopulateTimingInfo(request, response);
312 313
313 ResourceDispatcherHostRequestInfo* info = 314 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
314 resource_dispatcher_host_->InfoForRequest(request);
315 315
316 if (request->url().SchemeIsSecure()) { 316 if (request->url().SchemeIsSecure()) {
317 const net::URLRequestContext* context = request->context(); 317 const net::URLRequestContext* context = request->context();
318 net::TransportSecurityState* state = context->transport_security_state(); 318 net::TransportSecurityState* state = context->transport_security_state();
319 if (state) { 319 if (state) {
320 net::TransportSecurityState::DomainState domain_state; 320 net::TransportSecurityState::DomainState domain_state;
321 bool has_sni = net::SSLConfigService::IsSNIAvailable( 321 bool has_sni = net::SSLConfigService::IsSNIAvailable(
322 context->ssl_config_service()); 322 context->ssl_config_service());
323 if (state->GetDomainState( 323 if (state->GetDomainState(
324 &domain_state, request->url().host(), has_sni)) { 324 &domain_state, request->url().host(), has_sni)) {
325 sender->Send(new ChromeViewMsg_AddStrictSecurityHost( 325 sender->Send(new ChromeViewMsg_AddStrictSecurityHost(
326 info->route_id(), request->url().host())); 326 info->GetRouteID(), request->url().host()));
327 } 327 }
328 } 328 }
329 } 329 }
330 330
331 // See if the response contains the X-Auto-Login header. If so, this was 331 // See if the response contains the X-Auto-Login header. If so, this was
332 // a request for a login page, and the server is allowing the browser to 332 // a request for a login page, and the server is allowing the browser to
333 // suggest auto-login, if available. 333 // suggest auto-login, if available.
334 AutoLoginPrompter::ShowInfoBarIfPossible(request, info->child_id(), 334 AutoLoginPrompter::ShowInfoBarIfPossible(request, info->GetChildID(),
335 info->route_id()); 335 info->GetRouteID());
336 } 336 }
337 337
338 void ChromeResourceDispatcherHostDelegate::OnRequestRedirected( 338 void ChromeResourceDispatcherHostDelegate::OnRequestRedirected(
339 net::URLRequest* request, 339 net::URLRequest* request,
340 content::ResourceResponse* response) { 340 content::ResourceResponse* response) {
341 LoadTimingObserver::PopulateTimingInfo(request, response); 341 LoadTimingObserver::PopulateTimingInfo(request, response);
342 342
343 #if defined(ENABLE_ONE_CLICK_SIGNIN) 343 #if defined(ENABLE_ONE_CLICK_SIGNIN)
344 ResourceDispatcherHostRequestInfo* info = 344 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
345 resource_dispatcher_host_->InfoForRequest(request);
346 345
347 // See if the response contains the X-Google-Accounts-SignIn header. If so, 346 // See if the response contains the X-Google-Accounts-SignIn header. If so,
348 // then the user has just finished signing in, and the server is allowing the 347 // then the user has just finished signing in, and the server is allowing the
349 // browser to suggest connecting the user's profile to the account. 348 // browser to suggest connecting the user's profile to the account.
350 OneClickSigninHelper::ShowInfoBarIfPossible(request, info->child_id(), 349 OneClickSigninHelper::ShowInfoBarIfPossible(request, info->GetChildID(),
351 info->route_id()); 350 info->GetRouteID());
352 #endif 351 #endif
353 } 352 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698