diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-03-16 15:32:29 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-16 15:32:29 +0100 |
commit | 7d0b77440e635a666ed1c333df1217dd5fa043c1 (patch) | |
tree | 442d00a5bfa9cddeb5fbd6bbcb30cc4ec0bf1238 /cli/js | |
parent | 49541a04d25ba7308759824213b6053a7b412e3e (diff) |
fix: fetch closes unused body (#4393)
This commit makes sure that "httpBody" resource is closed in case of redirections in fetch API.
Diffstat (limited to 'cli/js')
-rw-r--r-- | cli/js/tests/fetch_test.ts | 8 | ||||
-rw-r--r-- | cli/js/web/fetch.ts | 3 |
2 files changed, 3 insertions, 8 deletions
diff --git a/cli/js/tests/fetch_test.ts b/cli/js/tests/fetch_test.ts index dd988267e..146709583 100644 --- a/cli/js/tests/fetch_test.ts +++ b/cli/js/tests/fetch_test.ts @@ -174,8 +174,6 @@ unitTest( unitTest( { - // TODO(bartlomieju): leaking resources - skip: true, perms: { net: true } }, async function fetchWithRedirection(): Promise<void> { @@ -190,8 +188,6 @@ unitTest( unitTest( { - // TODO: leaking resources - skip: true, perms: { net: true } }, async function fetchWithRelativeRedirection(): Promise<void> { @@ -451,8 +447,6 @@ unitTest( unitTest( { - // TODO: leaking resources - skip: true, perms: { net: true } }, async function fetchWithManualRedirection(): Promise<void> { @@ -476,8 +470,6 @@ unitTest( unitTest( { - // TODO: leaking resources - skip: true, perms: { net: true } }, async function fetchWithErrorRedirection(): Promise<void> { diff --git a/cli/js/web/fetch.ts b/cli/js/web/fetch.ts index c7209943f..acf0bad0f 100644 --- a/cli/js/web/fetch.ts +++ b/cli/js/web/fetch.ts @@ -531,6 +531,9 @@ export async function fetch( redirected ); if ([301, 302, 303, 307, 308].includes(response.status)) { + // We won't use body of received response, so close it now + // otherwise it will be kept in resource table. + close(fetchResponse.bodyRid); // We're in a redirect status switch ((init && init.redirect) || "follow") { case "error": |