|
@@ -21,7 +21,6 @@
|
|
|
#include "gin/dictionary.h"
|
|
|
#include "gin/handle.h"
|
|
|
#include "gin/object_template_builder.h"
|
|
|
-#include "net/http/http_content_disposition.h"
|
|
|
#include "shell/browser/api/electron_api_session.h"
|
|
|
#include "shell/browser/api/electron_api_web_contents.h"
|
|
|
#include "shell/browser/api/electron_api_web_frame_main.h"
|
|
@@ -100,22 +99,6 @@ v8::Local<v8::Value> HttpResponseHeadersToV8(
|
|
|
std::string key;
|
|
|
std::string value;
|
|
|
while (headers->EnumerateHeaderLines(&iter, &key, &value)) {
|
|
|
- // Note that Web servers not developed with nodejs allow non-utf8
|
|
|
- // characters in content-disposition's filename field. Use Chromium's
|
|
|
- // HttpContentDisposition class to decode the correct encoding instead of
|
|
|
- // arbitrarily converting it to UTF8. It should also be noted that if the
|
|
|
- // encoding is not specified, HttpContentDisposition will transcode
|
|
|
- // according to the system's encoding.
|
|
|
- if (base::EqualsCaseInsensitiveASCII("Content-Disposition", key) &&
|
|
|
- !value.empty()) {
|
|
|
- net::HttpContentDisposition header(value, std::string());
|
|
|
- std::string decodedFilename =
|
|
|
- header.is_attachment() ? " attachment" : " inline";
|
|
|
- // The filename must be encased in double quotes for serialization
|
|
|
- // to happen correctly.
|
|
|
- std::string filename = "\"" + header.filename() + "\"";
|
|
|
- value = decodedFilename + "; filename=" + filename;
|
|
|
- }
|
|
|
response_headers.EnsureList(key)->Append(value);
|
|
|
}
|
|
|
}
|