Chromium Code Reviews| Index: content/browser/loader/resource_request_info_impl.cc |
| diff --git a/content/browser/loader/resource_request_info_impl.cc b/content/browser/loader/resource_request_info_impl.cc |
| index 20ce8d98cea9c631dfd396e810c0934062b839ea..86fc48a1c93a3fd5c677d9cef5da5acd67285572 100644 |
| --- a/content/browser/loader/resource_request_info_impl.cc |
| +++ b/content/browser/loader/resource_request_info_impl.cc |
| @@ -7,6 +7,7 @@ |
| #include "content/browser/loader/global_routing_id.h" |
| #include "content/browser/loader/resource_message_filter.h" |
| #include "content/common/net/url_request_user_data.h" |
| +#include "content/common/resource_messages.h" |
| #include "content/public/browser/global_request_id.h" |
| #include "content/public/common/process_type.h" |
| #include "net/url_request/url_request.h" |
| @@ -41,33 +42,33 @@ void ResourceRequestInfo::AllocateForTesting(net::URLRequest* request, |
| // the main frame. |
| DCHECK(resource_type != RESOURCE_TYPE_MAIN_FRAME || is_main_frame); |
| - ResourceRequestInfoImpl* info = |
| - new ResourceRequestInfoImpl( |
| - PROCESS_TYPE_RENDERER, // process_type |
| - render_process_id, // child_id |
| - render_view_id, // route_id |
| - -1, // frame_tree_node_id |
| - 0, // origin_pid |
| - 0, // request_id |
| - render_frame_id, // render_frame_id |
| - is_main_frame, // is_main_frame |
| - parent_is_main_frame, // parent_is_main_frame |
| - 0, // parent_render_frame_id |
| - resource_type, // resource_type |
| - ui::PAGE_TRANSITION_LINK, // transition_type |
| - false, // should_replace_current_entry |
| - false, // is_download |
| - false, // is_stream |
| - allow_download, // allow_download |
| - false, // has_user_gesture |
| - false, // enable load timing |
| - request->has_upload(), // enable upload progress |
| - false, // do_not_prompt_for_login |
| - blink::WebReferrerPolicyDefault, // referrer_policy |
| - blink::WebPageVisibilityStateVisible, // visibility_state |
| - context, // context |
| - base::WeakPtr<ResourceMessageFilter>(), // filter |
| - is_async); // is_async |
| + ResourceRequestInfoImpl* info = new ResourceRequestInfoImpl( |
| + PROCESS_TYPE_RENDERER, // process_type |
| + render_process_id, // child_id |
| + render_view_id, // route_id |
| + -1, // frame_tree_node_id |
| + 0, // origin_pid |
| + 0, // request_id |
| + render_frame_id, // render_frame_id |
| + is_main_frame, // is_main_frame |
| + parent_is_main_frame, // parent_is_main_frame |
| + 0, // parent_render_frame_id |
| + resource_type, // resource_type |
| + ui::PAGE_TRANSITION_LINK, // transition_type |
| + false, // should_replace_current_entry |
| + false, // is_download |
| + false, // is_stream |
| + allow_download, // allow_download |
| + false, // has_user_gesture |
| + false, // enable load timing |
| + request->has_upload(), // enable upload progress |
| + false, // do_not_prompt_for_login |
| + blink::WebReferrerPolicyDefault, // referrer_policy |
| + blink::WebPageVisibilityStateVisible, // visibility_state |
| + context, // context |
| + base::WeakPtr<ResourceMessageFilter>(), // filter |
| + is_async, // is_async |
| + NULL); // original_request |
|
davidben
2015/10/08 21:57:52
nullptr
Adam Rice
2015/10/13 22:53:17
Done.
|
| info->AssociateWithRequest(request); |
| } |
| @@ -125,7 +126,8 @@ ResourceRequestInfoImpl::ResourceRequestInfoImpl( |
| blink::WebPageVisibilityState visibility_state, |
| ResourceContext* context, |
| base::WeakPtr<ResourceMessageFilter> filter, |
| - bool is_async) |
| + bool is_async, |
| + const ResourceHostMsg_Request* original_request) |
| : cross_site_handler_(NULL), |
| detachable_handler_(NULL), |
| process_type_(process_type), |
| @@ -156,6 +158,14 @@ ResourceRequestInfoImpl::ResourceRequestInfoImpl( |
| context_(context), |
| filter_(filter), |
| is_async_(is_async) { |
| + if (original_request) { |
| + // ResourceHostMsg_Request can be safely copied because it is a struct with |
| + // only copyable types as members. The only potentially dangerous member is |
| + // request_body, and ResourceDispatcherHostImpl ensures that is never set |
| + // for an asynchronous revalidation. |
|
davidben
2015/10/08 21:57:52
This class cannot depend on ResourceDispatcherHost
Adam Rice
2015/10/13 22:53:17
Done.
|
| + DCHECK(!original_request->request_body); |
| + original_request_.reset(new ResourceHostMsg_Request(*original_request)); |
| + } |
| } |
| ResourceRequestInfoImpl::~ResourceRequestInfoImpl() { |