diff options
author | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-26 04:55:01 +0000 |
---|---|---|
committer | asargent@chromium.org <asargent@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-26 04:55:01 +0000 |
commit | 774cebd7441ea331546a5e85f8f3566060f133fa (patch) | |
tree | 8a1d5a604e5e957647d6c21786c6e686cf725790 /chrome/browser/extensions/extension_protocols.cc | |
parent | d688ed58faa35bff5efcaa0f1c03ac8a66db0a6a (diff) | |
download | chromium_src-774cebd7441ea331546a5e85f8f3566060f133fa.zip chromium_src-774cebd7441ea331546a5e85f8f3566060f133fa.tar.gz chromium_src-774cebd7441ea331546a5e85f8f3566060f133fa.tar.bz2 |
Add Content-Length header to component extension url responses
When investigating the bug referenced below, we found that playing audio via
an <audio> tag from a file inside an extension worked if the extension was
installed normally, but not if it was a component extension. It turns out that
sending a Content-Length header makes this work properly.
BUG=284815
Review URL: https://codereview.chromium.org/23600029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225335 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_protocols.cc')
-rw-r--r-- | chrome/browser/extensions/extension_protocols.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_protocols.cc b/chrome/browser/extensions/extension_protocols.cc index 25ef06b..eb247ab 100644 --- a/chrome/browser/extensions/extension_protocols.cc +++ b/chrome/browser/extensions/extension_protocols.cc @@ -16,6 +16,7 @@ #include "base/message_loop/message_loop.h" #include "base/path_service.h" #include "base/sha1.h" +#include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" @@ -42,6 +43,7 @@ #include "grit/component_extension_resources_map.h" #include "net/base/mime_util.h" #include "net/base/net_errors.h" +#include "net/http/http_request_headers.h" #include "net/http/http_response_headers.h" #include "net/http/http_response_info.h" #include "net/url_request/url_request_error_job.h" @@ -135,6 +137,11 @@ class URLRequestResourceBundleJob : public net::URLRequestSimpleJob { const ResourceBundle& rb = ResourceBundle::GetSharedInstance(); *data = rb.GetRawDataResource(resource_id_).as_string(); + // Add the Content-Length header now that we know the resource length. + response_info_.headers->AddHeader(base::StringPrintf( + "%s: %s", net::HttpRequestHeaders::kContentLength, + base::UintToString(data->size()).c_str())); + std::string* read_mime_type = new std::string; bool* read_result = new bool; bool posted = content::BrowserThread::PostBlockingPoolTaskAndReply( |