diff --git a/shell/browser/api/electron_api_web_request.cc b/shell/browser/api/electron_api_web_request.cc index 2ffc346bbf..17e99aecc5 100644 --- a/shell/browser/api/electron_api_web_request.cc +++ b/shell/browser/api/electron_api_web_request.cc @@ -19,7 +19,6 @@ #include "gin/converter.h" #include "gin/dictionary.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" @@ -98,22 +97,6 @@ v8::Local 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); } } diff --git a/spec/api-web-request-spec.ts b/spec/api-web-request-spec.ts index 3afaba1cd9..95737fc779 100644 --- a/spec/api-web-request-spec.ts +++ b/spec/api-web-request-spec.ts @@ -474,7 +474,7 @@ describe('webRequest module', () => { it('does not change content-disposition header by default', async () => { ses.webRequest.onHeadersReceived((details, callback) => { - expect(details.responseHeaders!['content-disposition']).to.deep.equal([' attachment; filename="aa中aa.txt"']); + expect(details.responseHeaders!['content-disposition']).to.deep.equal(['attachment; filename=aa中aa.txt']); callback({}); }); const { data, headers } = await ajax(defaultURL + 'contentDisposition');