Index: content/browser/webui/url_data_manager_backend.cc |
diff --git a/content/browser/webui/url_data_manager_backend.cc b/content/browser/webui/url_data_manager_backend.cc |
index 404e834ca0d7542a3723e37baa9e0370a4958f98..7779f5190c0f6cec441652e82db58735acce148a 100644 |
--- a/content/browser/webui/url_data_manager_backend.cc |
+++ b/content/browser/webui/url_data_manager_backend.cc |
@@ -185,6 +185,10 @@ class URLRequestChromeJob : public net::URLRequestJob { |
access_control_allow_origin_ = value; |
} |
+ void set_preload_headers(const std::vector<std::string>& preload_headers) { |
+ preload_headers_ = preload_headers; |
+ } |
+ |
// Returns true when job was generated from an incognito profile. |
bool is_incognito() const { |
return is_incognito_; |
@@ -247,6 +251,8 @@ class URLRequestChromeJob : public net::URLRequestJob { |
// True when job is generated from an incognito profile. |
const bool is_incognito_; |
+ std::vector<std::string> preload_headers_; |
+ |
// The backend is owned by net::URLRequestContext and always outlives us. |
URLDataManagerBackend* backend_; |
@@ -355,6 +361,10 @@ void URLRequestChromeJob::GetResponseInfo(net::HttpResponseInfo* info) { |
access_control_allow_origin_); |
info->headers->AddHeader("Vary: Origin"); |
} |
+ |
+ for (const std::string& preload_header : preload_headers_) { |
+ info->headers->AddHeader(preload_header); |
+ } |
} |
void URLRequestChromeJob::MimeTypeAvailable(const std::string& mime_type) { |
@@ -635,6 +645,7 @@ bool URLDataManagerBackend::StartRequest(const net::URLRequest* request, |
source->source()->ShouldDenyXFrameOptions()); |
job->set_send_content_type_header( |
source->source()->ShouldServeMimeTypeAsContentTypeHeader()); |
+ job->set_preload_headers(source->source()->GetPreloadHeaders()); |
std::string origin = GetOriginHeaderValue(request); |
if (!origin.empty()) { |