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, ¶ms)) { |
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)) |