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

Unified Diff: content/browser/frame_host/render_frame_host_impl.cc

Issue 1907443006: PlzNavigate: store POST data in the FrameNavigationEntry (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/frame_host/render_frame_host_impl.cc
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 1cc0c86a1e2884e3eb1599028822c30e680aeb49..bd1596fdf89194f227808a136e703c99c0f9041d 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -956,13 +956,17 @@ void RenderFrameHostImpl::OnDidCommitProvisionalLoad(const IPC::Message& msg) {
// Read the parameters out of the IPC message directly to avoid making another
// copy when we filter the URLs.
base::PickleIterator iter(msg);
- FrameHostMsg_DidCommitProvisionalLoad_Params validated_params;
- if (!IPC::ParamTraits<FrameHostMsg_DidCommitProvisionalLoad_Params>::
- Read(&msg, &iter, &validated_params)) {
+ base::Tuple<FrameHostMsg_DidCommitProvisionalLoad_Params,
+ scoped_refptr<ResourceRequestBody>>
+ params;
+ if (!FrameHostMsg_DidCommitProvisionalLoad::Read(&msg, &params)) {
bad_message::ReceivedBadMessage(
process, bad_message::RFH_COMMIT_DESERIALIZATION_FAILED);
return;
}
+ FrameHostMsg_DidCommitProvisionalLoad_Params& validated_params =
+ base::get<0>(params);
+ scoped_refptr<ResourceRequestBody> post_data = base::get<1>(params);
TRACE_EVENT1("navigation", "RenderFrameHostImpl::OnDidCommitProvisionalLoad",
"url", validated_params.url.possibly_invalid_spec());
@@ -1107,7 +1111,8 @@ void RenderFrameHostImpl::OnDidCommitProvisionalLoad(const IPC::Message& msg) {
}
accessibility_reset_count_ = 0;
- frame_tree_node()->navigator()->DidNavigate(this, validated_params);
+ frame_tree_node()->navigator()->DidNavigate(this, validated_params,
+ post_data);
// For a top-level frame, there are potential security concerns associated
// with displaying graphics from a previously loaded page after the URL in
@@ -2069,7 +2074,7 @@ void RenderFrameHostImpl::NavigateToInterstitialURL(const GURL& data_url) {
base::TimeTicks::Now(), "GET");
if (IsBrowserSideNavigationEnabled()) {
CommitNavigation(nullptr, nullptr, common_params, RequestNavigationParams(),
- false);
+ false, nullptr);
} else {
Navigate(common_params, StartNavigationParams(), RequestNavigationParams());
}
@@ -2200,7 +2205,8 @@ void RenderFrameHostImpl::CommitNavigation(
std::unique_ptr<StreamHandle> body,
const CommonNavigationParams& common_params,
const RequestNavigationParams& request_params,
- bool is_view_source) {
+ bool is_view_source,
+ scoped_refptr<ResourceRequestBody> post_data) {
DCHECK((response && body.get()) ||
!ShouldMakeNetworkRequestForURL(common_params.url));
UpdatePermissionsForNavigation(common_params, request_params);
@@ -2221,7 +2227,7 @@ void RenderFrameHostImpl::CommitNavigation(
const ResourceResponseHead head = response ?
response->head : ResourceResponseHead();
Send(new FrameMsg_CommitNavigation(routing_id_, head, body_url, common_params,
- request_params));
+ request_params, post_data));
// If a network request was made, update the LoFi state.
if (ShouldMakeNetworkRequestForURL(common_params.url))

Powered by Google App Engine
This is Rietveld 408576698