From f3991f9821d82886184d97adc90b58ff38858951 Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Mon, 2 Oct 2023 04:42:24 -0500 Subject: [PATCH] Issue #1442 - Part 24 - Prevent FetchStream from incorrectly running on the main thread. This prevents a deadlock and JSContext related crashes, however this should eventually be replaced by an EventTargetFor() call when the Dispatcher API is implemented. Also now that ReadableStream appears stable, toggle the preferences true by default. --- dom/fetch/FetchStream.cpp | 4 +++- modules/libpref/init/all.js | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/dom/fetch/FetchStream.cpp b/dom/fetch/FetchStream.cpp index 8d2ac7b1df..1c22a71405 100644 --- a/dom/fetch/FetchStream.cpp +++ b/dom/fetch/FetchStream.cpp @@ -403,7 +403,9 @@ FetchStream::FetchStream(nsIGlobalObject* aGlobal, , mGlobal(aGlobal) , mStreamHolder(aStreamHolder) , mOriginalInputStream(aInputStream) - , mOwningEventTarget(nullptr) + // TODO: Replace with mGlobal->EventTargetFor(TaskCategory::Other) + // When we have the Dispatcher API in the tree, see Issue #1442 + , mOwningEventTarget(NS_GetCurrentThread()) { MOZ_DIAGNOSTIC_ASSERT(aInputStream); MOZ_DIAGNOSTIC_ASSERT(aStreamHolder); diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 3d6325655e..b7d915996e 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -1335,7 +1335,7 @@ pref("javascript.options.main_thread_stack_quota_cap", 2097152); pref("javascript.options.dynamicImport", true); // Streams API -pref("javascript.options.streams", false); +pref("javascript.options.streams", true); // advanced prefs pref("advanced.mailftp", false); @@ -4586,7 +4586,7 @@ pref("layout.animated-image-layers.enabled", false); pref("dom.abortController.enabled", true); // Streams API -pref("dom.streams.enabled", false); +pref("dom.streams.enabled", true); // Push pref("dom.push.enabled", false);