From 822f7cb1eb0f2c5d2cecdf28f3ef14688a46c8f0 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Mon, 15 Feb 2021 22:49:57 -0800 Subject: [PATCH] browser(firefox): respect Set-Cookie header from fulfilled request (#5456) --- browser_patches/firefox/BUILD_NUMBER | 4 ++-- browser_patches/firefox/juggler/NetworkObserver.js | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/browser_patches/firefox/BUILD_NUMBER b/browser_patches/firefox/BUILD_NUMBER index 67a45c8270501..6ca12d25139e3 100644 --- a/browser_patches/firefox/BUILD_NUMBER +++ b/browser_patches/firefox/BUILD_NUMBER @@ -1,2 +1,2 @@ -1229 -Changed: lushnikov@chromium.org Thu 11 Feb 2021 08:20:05 AM PST +1230 +Changed: dgozman@gmail.com Sat Feb 13 10:15:07 PST 2021 diff --git a/browser_patches/firefox/juggler/NetworkObserver.js b/browser_patches/firefox/juggler/NetworkObserver.js index 4df2d3997e77d..b3a4e9ddf3f7b 100644 --- a/browser_patches/firefox/juggler/NetworkObserver.js +++ b/browser_patches/firefox/juggler/NetworkObserver.js @@ -197,8 +197,13 @@ class NetworkRequest { // Public interception API. fulfill(status, statusText, headers, base64body) { this._interceptedChannel.synthesizeStatus(status, statusText); - for (const header of headers) + for (const header of headers) { this._interceptedChannel.synthesizeHeader(header.name, header.value); + if (header.name.toLowerCase() === 'set-cookie') { + Services.cookies.QueryInterface(Ci.nsICookieService); + Services.cookies.setCookieStringFromHttp(this.httpChannel.URI, header.value, this.httpChannel); + } + } const synthesized = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream); const body = base64body ? atob(base64body) : ''; synthesized.data = body;