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

Unified Diff: content/browser/loader/resource_request_info_impl.cc

Issue 1041993004: content::ResourceDispatcherHostImpl changes for stale-while-revalidate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@s-w-r-yhirano-patch
Patch Set: Workaround iwyu bug in prerender_resource Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698