diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/loader/form_submission.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/loader/form_submission.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/chromium/third_party/blink/renderer/core/loader/form_submission.cc b/chromium/third_party/blink/renderer/core/loader/form_submission.cc index 901b1f60287..020052ff693 100644 --- a/chromium/third_party/blink/renderer/core/loader/form_submission.cc +++ b/chromium/third_party/blink/renderer/core/loader/form_submission.cc @@ -272,8 +272,10 @@ void FormSubmission::Trace(blink::Visitor* visitor) { } KURL FormSubmission::RequestURL() const { - if (method_ == FormSubmission::kPostMethod) + if (method_ == FormSubmission::kPostMethod || + action_.ProtocolIsJavaScript()) { return action_; + } KURL request_url(action_); request_url.SetQuery(form_data_->FlattenToString()); @@ -287,9 +289,11 @@ FrameLoadRequest FormSubmission::CreateFrameLoadRequest( if (!target_.IsEmpty()) frame_request.SetFrameName(target_); + ClientNavigationReason reason = ClientNavigationReason::kFormSubmissionGet; if (method_ == FormSubmission::kPostMethod) { - frame_request.GetResourceRequest().SetHTTPMethod(http_names::kPOST); - frame_request.GetResourceRequest().SetHTTPBody(form_data_); + reason = ClientNavigationReason::kFormSubmissionPost; + frame_request.GetResourceRequest().SetHttpMethod(http_names::kPOST); + frame_request.GetResourceRequest().SetHttpBody(form_data_); // construct some user headers if necessary if (boundary_.IsEmpty()) { @@ -299,8 +303,9 @@ FrameLoadRequest FormSubmission::CreateFrameLoadRequest( content_type_ + "; boundary=" + boundary_); } } + frame_request.SetClientRedirectReason(reason); - frame_request.GetResourceRequest().SetURL(RequestURL()); + frame_request.GetResourceRequest().SetUrl(RequestURL()); frame_request.SetForm(form_); |