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

Unified Diff: content/browser/loader/mime_sniffing_resource_handler.cc

Issue 2323623002: Do not sniff mime type for fetch() requests (Closed)
Patch Set: fix 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/loader/mime_sniffing_resource_handler.cc
diff --git a/content/browser/loader/mime_sniffing_resource_handler.cc b/content/browser/loader/mime_sniffing_resource_handler.cc
index 898cedfa8d45844783c8037868280a5e85c33ea8..1c157dfb0546e9058744233c85a05ef4caffdcf7 100644
--- a/content/browser/loader/mime_sniffing_resource_handler.cc
+++ b/content/browser/loader/mime_sniffing_resource_handler.cc
@@ -68,7 +68,8 @@ MimeSniffingResourceHandler::MimeSniffingResourceHandler(
ResourceDispatcherHostImpl* host,
PluginService* plugin_service,
InterceptingResourceHandler* intercepting_handler,
- net::URLRequest* request)
+ net::URLRequest* request,
+ RequestContextType request_context_type)
: LayeredResourceHandler(request, std::move(next_handler)),
state_(STATE_STARTING),
host_(host),
@@ -80,6 +81,7 @@ MimeSniffingResourceHandler::MimeSniffingResourceHandler(
read_buffer_size_(0),
bytes_read_(0),
intercepting_handler_(intercepting_handler),
+ request_context_type_(request_context_type),
weak_ptr_factory_(this) {
}
@@ -142,7 +144,6 @@ bool MimeSniffingResourceHandler::OnResponseStarted(ResourceResponse* response,
response_ = response;
state_ = STATE_BUFFERING;
-
// A 304 response should not contain a Content-Type header (RFC 7232 section
// 4.1). The following code may incorrectly attempt to add a Content-Type to
// the response, and so must be skipped for 304 responses.
@@ -326,6 +327,11 @@ bool MimeSniffingResourceHandler::ReplayReadCompleted(bool* defer) {
}
bool MimeSniffingResourceHandler::ShouldSniffContent() {
+ if (request_context_type_ == REQUEST_CONTEXT_TYPE_FETCH) {
+ // MIME sniffing should be disabled for a request initiated by fetch().
+ return false;
+ }
+
const std::string& mime_type = response_->head.mime_type;
std::string content_type_options;

Powered by Google App Engine
This is Rietveld 408576698