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

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 1678303004: PlzNavigate: inform the renderer that a navigation is a POST (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 9 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 unified diff | Download patch
« no previous file with comments | « content/public/test/render_view_test.cc ('k') | content/renderer/render_view_browsertest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 519
520 if (common_params.referrer.url.is_valid()) { 520 if (common_params.referrer.url.is_valid()) {
521 WebString web_referrer = WebSecurityPolicy::generateReferrerHeader( 521 WebString web_referrer = WebSecurityPolicy::generateReferrerHeader(
522 common_params.referrer.policy, 522 common_params.referrer.policy,
523 common_params.url, 523 common_params.url,
524 WebString::fromUTF8(common_params.referrer.url.spec())); 524 WebString::fromUTF8(common_params.referrer.url.spec()));
525 if (!web_referrer.isEmpty()) 525 if (!web_referrer.isEmpty())
526 request.setHTTPReferrer(web_referrer, common_params.referrer.policy); 526 request.setHTTPReferrer(web_referrer, common_params.referrer.policy);
527 } 527 }
528 528
529 request.setHTTPMethod(WebString::fromUTF8(common_params.method));
530
529 RequestExtraData* extra_data = new RequestExtraData(); 531 RequestExtraData* extra_data = new RequestExtraData();
530 extra_data->set_stream_override(std::move(stream_override)); 532 extra_data->set_stream_override(std::move(stream_override));
531 extra_data->set_lofi_state(common_params.lofi_state); 533 extra_data->set_lofi_state(common_params.lofi_state);
532 request.setExtraData(extra_data); 534 request.setExtraData(extra_data);
533 535
534 // Set the ui timestamp for this navigation. Currently the timestamp here is 536 // Set the ui timestamp for this navigation. Currently the timestamp here is
535 // only non empty when the navigation was triggered by an Android intent. The 537 // only non empty when the navigation was triggered by an Android intent. The
536 // timestamp is converted to a double version supported by blink. It will be 538 // timestamp is converted to a double version supported by blink. It will be
537 // passed back to the browser in the DidCommitProvisionalLoad and the 539 // passed back to the browser in the DidCommitProvisionalLoad and the
538 // DocumentLoadComplete IPCs. 540 // DocumentLoadComplete IPCs.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 static_cast<FrameMsg_UILoadMetricsReportType::Value>( 596 static_cast<FrameMsg_UILoadMetricsReportType::Value>(
595 request->inputPerfMetricReportPolicy()); 597 request->inputPerfMetricReportPolicy());
596 598
597 const RequestExtraData* extra_data = 599 const RequestExtraData* extra_data =
598 static_cast<RequestExtraData*>(request->extraData()); 600 static_cast<RequestExtraData*>(request->extraData());
599 DCHECK(extra_data); 601 DCHECK(extra_data);
600 return CommonNavigationParams( 602 return CommonNavigationParams(
601 request->url(), referrer, extra_data->transition_type(), 603 request->url(), referrer, extra_data->transition_type(),
602 FrameMsg_Navigate_Type::NORMAL, true, should_replace_current_entry, 604 FrameMsg_Navigate_Type::NORMAL, true, should_replace_current_entry,
603 ui_timestamp, report_type, GURL(), GURL(), extra_data->lofi_state(), 605 ui_timestamp, report_type, GURL(), GURL(), extra_data->lofi_state(),
604 base::TimeTicks::Now()); 606 base::TimeTicks::Now(), request->httpMethod().latin1());
605 } 607 }
606 608
607 media::Context3D GetSharedMainThreadContext3D() { 609 media::Context3D GetSharedMainThreadContext3D() {
608 cc::ContextProvider* provider = 610 cc::ContextProvider* provider =
609 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 611 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
610 if (!provider) 612 if (!provider)
611 return media::Context3D(); 613 return media::Context3D();
612 return media::Context3D(provider->ContextGL(), provider->GrContext()); 614 return media::Context3D(provider->ContextGL(), provider->GrContext());
613 } 615 }
614 616
(...skipping 4823 matching lines...) Expand 10 before | Expand all | Expand 10 after
5438 if (!start_params.extra_headers.empty() && !browser_side_navigation) { 5440 if (!start_params.extra_headers.empty() && !browser_side_navigation) {
5439 for (net::HttpUtil::HeadersIterator i(start_params.extra_headers.begin(), 5441 for (net::HttpUtil::HeadersIterator i(start_params.extra_headers.begin(),
5440 start_params.extra_headers.end(), 5442 start_params.extra_headers.end(),
5441 "\n"); 5443 "\n");
5442 i.GetNext();) { 5444 i.GetNext();) {
5443 request.addHTTPHeaderField(WebString::fromUTF8(i.name()), 5445 request.addHTTPHeaderField(WebString::fromUTF8(i.name()),
5444 WebString::fromUTF8(i.values())); 5446 WebString::fromUTF8(i.values()));
5445 } 5447 }
5446 } 5448 }
5447 5449
5448 if (start_params.is_post && !browser_side_navigation) { 5450 if (common_params.method == "POST" && !browser_side_navigation) {
5449 request.setHTTPMethod(WebString::fromUTF8("POST"));
5450
5451 // Set post data. 5451 // Set post data.
5452 WebHTTPBody http_body; 5452 WebHTTPBody http_body;
5453 http_body.initialize(); 5453 http_body.initialize();
5454 const char* data = nullptr; 5454 const char* data = nullptr;
5455 if (start_params.browser_initiated_post_data.size()) { 5455 if (start_params.browser_initiated_post_data.size()) {
5456 data = reinterpret_cast<const char*>( 5456 data = reinterpret_cast<const char*>(
5457 &start_params.browser_initiated_post_data.front()); 5457 &start_params.browser_initiated_post_data.front());
5458 } 5458 }
5459 http_body.appendData( 5459 http_body.appendData(
5460 WebData(data, start_params.browser_initiated_post_data.size())); 5460 WebData(data, start_params.browser_initiated_post_data.size()));
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
5731 DCHECK(frame_->parent() || 5731 DCHECK(frame_->parent() ||
5732 GetRequestContextFrameTypeForWebURLRequest(*request) == 5732 GetRequestContextFrameTypeForWebURLRequest(*request) ==
5733 REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL); 5733 REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL);
5734 DCHECK(!frame_->parent() || 5734 DCHECK(!frame_->parent() ||
5735 GetRequestContextFrameTypeForWebURLRequest(*request) == 5735 GetRequestContextFrameTypeForWebURLRequest(*request) ==
5736 REQUEST_CONTEXT_FRAME_TYPE_NESTED); 5736 REQUEST_CONTEXT_FRAME_TYPE_NESTED);
5737 5737
5738 Send(new FrameHostMsg_BeginNavigation( 5738 Send(new FrameHostMsg_BeginNavigation(
5739 routing_id_, 5739 routing_id_,
5740 MakeCommonNavigationParams(request, should_replace_current_entry), 5740 MakeCommonNavigationParams(request, should_replace_current_entry),
5741 BeginNavigationParams( 5741 BeginNavigationParams(GetWebURLRequestHeaders(*request),
5742 request->httpMethod().latin1(), GetWebURLRequestHeaders(*request), 5742 GetLoadFlagsForWebURLRequest(*request),
5743 GetLoadFlagsForWebURLRequest(*request), request->hasUserGesture(), 5743 request->hasUserGesture(),
5744 request->skipServiceWorker(), 5744 request->skipServiceWorker(),
5745 GetRequestContextTypeForWebURLRequest(*request)), 5745 GetRequestContextTypeForWebURLRequest(*request)),
5746 GetRequestBodyForWebURLRequest(*request))); 5746 GetRequestBodyForWebURLRequest(*request)));
5747 } 5747 }
5748 5748
5749 void RenderFrameImpl::LoadDataURL( 5749 void RenderFrameImpl::LoadDataURL(
5750 const CommonNavigationParams& params, 5750 const CommonNavigationParams& params,
5751 const RequestNavigationParams& request_params, 5751 const RequestNavigationParams& request_params,
5752 WebLocalFrame* frame, 5752 WebLocalFrame* frame,
5753 blink::WebFrameLoadType load_type, 5753 blink::WebFrameLoadType load_type,
5754 blink::WebHistoryItem item_for_history_navigation, 5754 blink::WebHistoryItem item_for_history_navigation,
5755 blink::WebHistoryLoadType history_load_type, 5755 blink::WebHistoryLoadType history_load_type,
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
6102 int match_count, 6102 int match_count,
6103 int ordinal, 6103 int ordinal,
6104 const WebRect& selection_rect, 6104 const WebRect& selection_rect,
6105 bool final_status_update) { 6105 bool final_status_update) {
6106 Send(new FrameHostMsg_Find_Reply(routing_id_, request_id, match_count, 6106 Send(new FrameHostMsg_Find_Reply(routing_id_, request_id, match_count,
6107 selection_rect, ordinal, 6107 selection_rect, ordinal,
6108 final_status_update)); 6108 final_status_update));
6109 } 6109 }
6110 6110
6111 } // namespace content 6111 } // namespace content
OLDNEW
« no previous file with comments | « content/public/test/render_view_test.cc ('k') | content/renderer/render_view_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698