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

Unified Diff: content/browser/frame_host/navigator_impl.cc

Issue 2423233002: Preserving extra http request headers in OpenURL navigation path [relanding]. (Closed)
Patch Set: This patchset is copied from https://crrev.com/2355023002 Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/frame_host/navigator_impl.h ('k') | content/browser/frame_host/render_frame_host_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/frame_host/navigator_impl.cc
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc
index 8e704b1fc7d314d2bcda10d78ead7d017047e4a7..16fe406e5fecd0dbeaf757c634f36faf6d4869e9 100644
--- a/content/browser/frame_host/navigator_impl.cc
+++ b/content/browser/frame_host/navigator_impl.cc
@@ -692,6 +692,7 @@ void NavigatorImpl::RequestOpenURL(
const GURL& url,
bool uses_post,
const scoped_refptr<ResourceRequestBodyImpl>& body,
+ const std::string& extra_headers,
SiteInstance* source_site_instance,
const Referrer& referrer,
WindowOpenDisposition disposition,
@@ -737,6 +738,7 @@ void NavigatorImpl::RequestOpenURL(
true /* is_renderer_initiated */);
params.uses_post = uses_post;
params.post_data = body;
+ params.extra_headers = extra_headers;
params.source_site_instance = source_site_instance;
if (redirect_chain.size() > 0)
params.redirect_chain = redirect_chain;
@@ -779,7 +781,8 @@ void NavigatorImpl::RequestTransferURL(
const GlobalRequestID& transferred_global_request_id,
bool should_replace_current_entry,
const std::string& method,
- scoped_refptr<ResourceRequestBodyImpl> post_body) {
+ scoped_refptr<ResourceRequestBodyImpl> post_body,
+ const std::string& extra_headers) {
// |method != "POST"| should imply absence of |post_body|.
if (method != "POST" && post_body) {
NOTREACHED();
@@ -839,6 +842,7 @@ void NavigatorImpl::RequestTransferURL(
CHECK(SiteIsolationPolicy::UseSubframeNavigationEntries());
if (controller_->GetLastCommittedEntry()) {
entry = controller_->GetLastCommittedEntry()->Clone();
+ entry->set_extra_headers(extra_headers);
} else {
// If there's no last committed entry, create an entry for about:blank
// with a subframe entry for our destination.
@@ -846,7 +850,7 @@ void NavigatorImpl::RequestTransferURL(
entry = NavigationEntryImpl::FromNavigationEntry(
controller_->CreateNavigationEntry(
GURL(url::kAboutBlankURL), referrer_to_use, page_transition,
- is_renderer_initiated, std::string(),
+ is_renderer_initiated, extra_headers,
controller_->GetBrowserContext()));
}
entry->AddOrUpdateFrameEntry(
@@ -859,7 +863,7 @@ void NavigatorImpl::RequestTransferURL(
entry = NavigationEntryImpl::FromNavigationEntry(
controller_->CreateNavigationEntry(
dest_url, referrer_to_use, page_transition, is_renderer_initiated,
- std::string(), controller_->GetBrowserContext()));
+ extra_headers, controller_->GetBrowserContext()));
entry->root_node()->frame_entry->set_source_site_instance(
static_cast<SiteInstanceImpl*>(source_site_instance));
entry->SetRedirectChain(redirect_chain);
« no previous file with comments | « content/browser/frame_host/navigator_impl.h ('k') | content/browser/frame_host/render_frame_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698