| 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))
|
|
|