OLD | NEW |
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 "content/public/browser/resource_request_details.h" | 5 #include "content/public/browser/resource_request_details.h" |
6 | 6 |
7 #include "content/browser/worker_host/worker_service_impl.h" | |
8 #include "content/public/browser/resource_request_info.h" | 7 #include "content/public/browser/resource_request_info.h" |
9 #include "net/http/http_response_headers.h" | 8 #include "net/http/http_response_headers.h" |
10 #include "net/url_request/url_request.h" | 9 #include "net/url_request/url_request.h" |
11 | 10 |
12 namespace content { | 11 namespace content { |
13 | 12 |
14 ResourceRequestDetails::ResourceRequestDetails(const net::URLRequest* request, | 13 ResourceRequestDetails::ResourceRequestDetails(const net::URLRequest* request, |
15 int cert_id) | 14 int cert_id) |
16 : url(request->url()), | 15 : url(request->url()), |
17 original_url(request->original_url()), | 16 original_url(request->original_url()), |
18 method(request->method()), | 17 method(request->method()), |
19 referrer(request->referrer()), | 18 referrer(request->referrer()), |
20 has_upload(request->has_upload()), | 19 has_upload(request->has_upload()), |
21 load_flags(request->load_flags()), | 20 load_flags(request->load_flags()), |
22 status(request->status()), | 21 status(request->status()), |
23 ssl_cert_id(cert_id), | 22 ssl_cert_id(cert_id), |
24 ssl_cert_status(request->ssl_info().cert_status), | 23 ssl_cert_status(request->ssl_info().cert_status), |
25 socket_address(request->GetSocketAddress()) { | 24 socket_address(request->GetSocketAddress()) { |
26 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); | 25 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request); |
27 resource_type = info->GetResourceType(); | 26 resource_type = info->GetResourceType(); |
28 render_frame_id = info->GetRenderFrameID(); | 27 render_frame_id = info->GetRenderFrameID(); |
29 http_response_code = | 28 http_response_code = |
30 request->response_info().headers.get() ? | 29 request->response_info().headers.get() ? |
31 request->response_info().headers.get()->response_code() : -1; | 30 request->response_info().headers.get()->response_code() : -1; |
32 | 31 origin_child_id = info->GetChildID(); |
33 // If request is from the worker process on behalf of a renderer, use | |
34 // the renderer process id, since it consumes the notification response | |
35 // such as ssl state etc. | |
36 // TODO(atwilson): need to notify all associated renderers in the case | |
37 // of ssl state change (http://crbug.com/25357). For now, just notify | |
38 // the first one (works for dedicated workers and shared workers with | |
39 // a single process). | |
40 int worker_render_frame_id; | |
41 if (!WorkerServiceImpl::GetInstance()->GetRendererForWorker( | |
42 info->GetChildID(), &origin_child_id, &worker_render_frame_id)) { | |
43 origin_child_id = info->GetChildID(); | |
44 } | |
45 } | 32 } |
46 | 33 |
47 ResourceRequestDetails::~ResourceRequestDetails() {} | 34 ResourceRequestDetails::~ResourceRequestDetails() {} |
48 | 35 |
49 ResourceRedirectDetails::ResourceRedirectDetails(const net::URLRequest* request, | 36 ResourceRedirectDetails::ResourceRedirectDetails(const net::URLRequest* request, |
50 int cert_id, | 37 int cert_id, |
51 const GURL& new_url) | 38 const GURL& new_url) |
52 : ResourceRequestDetails(request, cert_id), | 39 : ResourceRequestDetails(request, cert_id), |
53 new_url(new_url) { | 40 new_url(new_url) { |
54 } | 41 } |
55 | 42 |
56 ResourceRedirectDetails::~ResourceRedirectDetails() {} | 43 ResourceRedirectDetails::~ResourceRedirectDetails() {} |
57 | 44 |
58 } // namespace content | 45 } // namespace content |
OLD | NEW |