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

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: Created 4 years, 10 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
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 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 512
513 if (common_params.referrer.url.is_valid()) { 513 if (common_params.referrer.url.is_valid()) {
514 WebString web_referrer = WebSecurityPolicy::generateReferrerHeader( 514 WebString web_referrer = WebSecurityPolicy::generateReferrerHeader(
515 common_params.referrer.policy, 515 common_params.referrer.policy,
516 common_params.url, 516 common_params.url,
517 WebString::fromUTF8(common_params.referrer.url.spec())); 517 WebString::fromUTF8(common_params.referrer.url.spec()));
518 if (!web_referrer.isEmpty()) 518 if (!web_referrer.isEmpty())
519 request.setHTTPReferrer(web_referrer, common_params.referrer.policy); 519 request.setHTTPReferrer(web_referrer, common_params.referrer.policy);
520 } 520 }
521 521
522 if (common_params.is_post)
523 request.setHTTPMethod(WebString::fromUTF8("POST"));
524
522 RequestExtraData* extra_data = new RequestExtraData(); 525 RequestExtraData* extra_data = new RequestExtraData();
523 extra_data->set_stream_override(std::move(stream_override)); 526 extra_data->set_stream_override(std::move(stream_override));
524 request.setExtraData(extra_data); 527 request.setExtraData(extra_data);
525 528
526 // Set the ui timestamp for this navigation. Currently the timestamp here is 529 // Set the ui timestamp for this navigation. Currently the timestamp here is
527 // only non empty when the navigation was triggered by an Android intent. The 530 // only non empty when the navigation was triggered by an Android intent. The
528 // timestamp is converted to a double version supported by blink. It will be 531 // timestamp is converted to a double version supported by blink. It will be
529 // passed back to the browser in the DidCommitProvisionalLoad and the 532 // passed back to the browser in the DidCommitProvisionalLoad and the
530 // DocumentLoadComplete IPCs. 533 // DocumentLoadComplete IPCs.
531 base::TimeDelta ui_timestamp = common_params.ui_timestamp - base::TimeTicks(); 534 base::TimeDelta ui_timestamp = common_params.ui_timestamp - base::TimeTicks();
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 static_cast<FrameMsg_UILoadMetricsReportType::Value>( 589 static_cast<FrameMsg_UILoadMetricsReportType::Value>(
587 request->inputPerfMetricReportPolicy()); 590 request->inputPerfMetricReportPolicy());
588 591
589 const RequestExtraData* extra_data = 592 const RequestExtraData* extra_data =
590 static_cast<RequestExtraData*>(request->extraData()); 593 static_cast<RequestExtraData*>(request->extraData());
591 DCHECK(extra_data); 594 DCHECK(extra_data);
592 return CommonNavigationParams( 595 return CommonNavigationParams(
593 request->url(), referrer, extra_data->transition_type(), 596 request->url(), referrer, extra_data->transition_type(),
594 FrameMsg_Navigate_Type::NORMAL, true, should_replace_current_entry, 597 FrameMsg_Navigate_Type::NORMAL, true, should_replace_current_entry,
595 ui_timestamp, report_type, GURL(), GURL(), LOFI_UNSPECIFIED, 598 ui_timestamp, report_type, GURL(), GURL(), LOFI_UNSPECIFIED,
596 base::TimeTicks::Now()); 599 base::TimeTicks::Now(), request->httpMethod().latin1() == "POST");
597 } 600 }
598 601
599 media::Context3D GetSharedMainThreadContext3D() { 602 media::Context3D GetSharedMainThreadContext3D() {
600 cc::ContextProvider* provider = 603 cc::ContextProvider* provider =
601 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 604 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
602 if (!provider) 605 if (!provider)
603 return media::Context3D(); 606 return media::Context3D();
604 return media::Context3D(provider->ContextGL(), provider->GrContext()); 607 return media::Context3D(provider->ContextGL(), provider->GrContext());
605 } 608 }
606 609
(...skipping 4856 matching lines...) Expand 10 before | Expand all | Expand 10 after
5463 if (!start_params.extra_headers.empty() && !browser_side_navigation) { 5466 if (!start_params.extra_headers.empty() && !browser_side_navigation) {
5464 for (net::HttpUtil::HeadersIterator i(start_params.extra_headers.begin(), 5467 for (net::HttpUtil::HeadersIterator i(start_params.extra_headers.begin(),
5465 start_params.extra_headers.end(), 5468 start_params.extra_headers.end(),
5466 "\n"); 5469 "\n");
5467 i.GetNext();) { 5470 i.GetNext();) {
5468 request.addHTTPHeaderField(WebString::fromUTF8(i.name()), 5471 request.addHTTPHeaderField(WebString::fromUTF8(i.name()),
5469 WebString::fromUTF8(i.values())); 5472 WebString::fromUTF8(i.values()));
5470 } 5473 }
5471 } 5474 }
5472 5475
5473 if (start_params.is_post && !browser_side_navigation) { 5476 if (common_params.is_post && !browser_side_navigation) {
5474 request.setHTTPMethod(WebString::fromUTF8("POST"));
5475
5476 // Set post data. 5477 // Set post data.
5477 WebHTTPBody http_body; 5478 WebHTTPBody http_body;
5478 http_body.initialize(); 5479 http_body.initialize();
5479 const char* data = nullptr; 5480 const char* data = nullptr;
5480 if (start_params.browser_initiated_post_data.size()) { 5481 if (start_params.browser_initiated_post_data.size()) {
5481 data = reinterpret_cast<const char*>( 5482 data = reinterpret_cast<const char*>(
5482 &start_params.browser_initiated_post_data.front()); 5483 &start_params.browser_initiated_post_data.front());
5483 } 5484 }
5484 http_body.appendData( 5485 http_body.appendData(
5485 WebData(data, start_params.browser_initiated_post_data.size())); 5486 WebData(data, start_params.browser_initiated_post_data.size()));
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
5741 DCHECK(frame_->parent() || 5742 DCHECK(frame_->parent() ||
5742 GetRequestContextFrameTypeForWebURLRequest(*request) == 5743 GetRequestContextFrameTypeForWebURLRequest(*request) ==
5743 REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL); 5744 REQUEST_CONTEXT_FRAME_TYPE_TOP_LEVEL);
5744 DCHECK(!frame_->parent() || 5745 DCHECK(!frame_->parent() ||
5745 GetRequestContextFrameTypeForWebURLRequest(*request) == 5746 GetRequestContextFrameTypeForWebURLRequest(*request) ==
5746 REQUEST_CONTEXT_FRAME_TYPE_NESTED); 5747 REQUEST_CONTEXT_FRAME_TYPE_NESTED);
5747 5748
5748 Send(new FrameHostMsg_BeginNavigation( 5749 Send(new FrameHostMsg_BeginNavigation(
5749 routing_id_, 5750 routing_id_,
5750 MakeCommonNavigationParams(request, should_replace_current_entry), 5751 MakeCommonNavigationParams(request, should_replace_current_entry),
5751 BeginNavigationParams( 5752 BeginNavigationParams(GetWebURLRequestHeaders(*request),
5752 request->httpMethod().latin1(), GetWebURLRequestHeaders(*request), 5753 GetLoadFlagsForWebURLRequest(*request),
5753 GetLoadFlagsForWebURLRequest(*request), request->hasUserGesture(), 5754 request->hasUserGesture(),
5754 request->skipServiceWorker(), 5755 request->skipServiceWorker(),
5755 GetRequestContextTypeForWebURLRequest(*request)), 5756 GetRequestContextTypeForWebURLRequest(*request)),
5756 GetRequestBodyForWebURLRequest(*request))); 5757 GetRequestBodyForWebURLRequest(*request)));
5757 } 5758 }
5758 5759
5759 void RenderFrameImpl::LoadDataURL(const CommonNavigationParams& params, 5760 void RenderFrameImpl::LoadDataURL(const CommonNavigationParams& params,
5760 const RequestNavigationParams& request_params, 5761 const RequestNavigationParams& request_params,
5761 WebFrame* frame, 5762 WebFrame* frame,
5762 blink::WebFrameLoadType load_type) { 5763 blink::WebFrameLoadType load_type) {
5763 // A loadData request with a specified base URL. 5764 // A loadData request with a specified base URL.
5764 GURL data_url = params.url; 5765 GURL data_url = params.url;
5765 #if defined(OS_ANDROID) 5766 #if defined(OS_ANDROID)
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
6131 int match_count, 6132 int match_count,
6132 int ordinal, 6133 int ordinal,
6133 const WebRect& selection_rect, 6134 const WebRect& selection_rect,
6134 bool final_status_update) { 6135 bool final_status_update) {
6135 Send(new FrameHostMsg_Find_Reply(routing_id_, request_id, match_count, 6136 Send(new FrameHostMsg_Find_Reply(routing_id_, request_id, match_count,
6136 selection_rect, ordinal, 6137 selection_rect, ordinal,
6137 final_status_update)); 6138 final_status_update));
6138 } 6139 }
6139 6140
6140 } // namespace content 6141 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698