From 7f29275aa2a6947a56c03ecd8c66f1b6bb0b75b8 Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Tue, 21 Jul 2020 09:55:46 -0700 Subject: [PATCH] browser(firefox): use base64 to deliver post data (#3063) --- browser_patches/firefox/BUILD_NUMBER | 4 ++-- .../firefox/juggler/NetworkObserver.js | 17 +++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/browser_patches/firefox/BUILD_NUMBER b/browser_patches/firefox/BUILD_NUMBER index 71ec431b77..e59ce259ce 100644 --- a/browser_patches/firefox/BUILD_NUMBER +++ b/browser_patches/firefox/BUILD_NUMBER @@ -1,2 +1,2 @@ -1135 -Changed: yurys@chromium.org Tue Jul 21 09:15:13 PDT 2020 +1136 +Changed: pavel.feldman@gmail.com Tue Jul 21 09:33:13 PDT 2020 diff --git a/browser_patches/firefox/juggler/NetworkObserver.js b/browser_patches/firefox/juggler/NetworkObserver.js index 2307fe6065..a4f59a570e 100644 --- a/browser_patches/firefox/juggler/NetworkObserver.js +++ b/browser_patches/firefox/juggler/NetworkObserver.js @@ -708,15 +708,16 @@ function readRequestPostData(httpChannel) { } // Read data from the stream. - let text = undefined; + let result = undefined; try { - text = NetUtil.readInputStreamToString(iStream, iStream.available()); - const converter = Cc['@mozilla.org/intl/scriptableunicodeconverter'] - .createInstance(Ci.nsIScriptableUnicodeConverter); - converter.charset = 'UTF-8'; - text = converter.ConvertToUnicode(text); + const buffer = NetUtil.readInputStream(iStream, iStream.available()); + const bytes = new Uint8Array(buffer); + let binary = ''; + for (let i = 0; i < bytes.byteLength; i++) + binary += String.fromCharCode(bytes[i]); + result = btoa(binary); } catch (err) { - text = undefined; + result = ''; } // Seek locks the file, so seek to the beginning only if necko hasn't @@ -724,7 +725,7 @@ function readRequestPostData(httpChannel) { // not till 459384 is fixed). if (isSeekableStream && prevOffset == 0) iStream.seek(Ci.nsISeekableStream.NS_SEEK_SET, 0); - return text; + return result; } function requestHeaders(httpChannel) {