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

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

Issue 2355023002: Preserving Content-Type header from http request in OpenURL path. (Closed)
Patch Set: Rebasing... Created 4 years, 3 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
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 ca9ce6b7dafe92a1beda4848ff14b56078eeeb05..b812c15efffef6806747efb33edeaf5433c9886b 100644
--- a/content/browser/frame_host/navigator_impl.cc
+++ b/content/browser/frame_host/navigator_impl.cc
@@ -660,6 +660,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,
@@ -705,6 +706,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;
@@ -747,7 +749,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();
@@ -806,6 +809,7 @@ void NavigatorImpl::RequestTransferURL(
CHECK(SiteIsolationPolicy::UseSubframeNavigationEntries());
if (controller_->GetLastCommittedEntry()) {
entry = controller_->GetLastCommittedEntry()->Clone();
+ entry->set_extra_headers(extra_headers);
entry->SetPageID(-1);
} else {
// If there's no last committed entry, create an entry for about:blank
@@ -814,7 +818,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(
@@ -826,7 +830,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));
}

Powered by Google App Engine
This is Rietveld 408576698