From c256578f285c499e42a09de03fca0eb480772e7a Mon Sep 17 00:00:00 2001 From: Tom Schuster Date: Fri, 13 May 2022 18:58:48 +0000 Subject: [PATCH] Bug 1522136 - Remove javascript.options.streams and other legacy prefs. r=mgaudet,webidl,edgar Differential Revision: https://phabricator.services.mozilla.com/D145810 --- .../test/browser_download_canceled.js | 1 - dom/serviceworkers/test/test_fetch_event.html | 1 - .../test_fetch_event_with_thirdpartypref.html | 1 - dom/tests/mochitest/fetch/mochitest.ini | 2 - dom/webidl/Response.webidl | 2 +- .../test_readableStream_when_closing.html | 42 +++++++++---------- js/public/RealmOptions.h | 28 ------------- js/src/shell/js.cpp | 12 ------ js/xpconnect/src/XPCJSContext.cpp | 2 - modules/libpref/init/StaticPrefList.yaml | 16 ------- .../meta/fetch/api/abort/__dir__.ini | 1 - .../meta/fetch/api/basic/__dir__.ini | 1 - .../meta/fetch/api/response/__dir__.ini | 1 - .../meta/service-workers/__dir__.ini | 2 +- testing/web-platform/meta/streams/__dir__.ini | 2 +- .../semantics/interface-objects/__dir__.ini | 1 - testing/web-platform/meta/xhr/__dir__.ini | 2 +- 17 files changed, 23 insertions(+), 94 deletions(-) delete mode 100644 testing/web-platform/meta/workers/semantics/interface-objects/__dir__.ini diff --git a/dom/serviceworkers/test/browser_download_canceled.js b/dom/serviceworkers/test/browser_download_canceled.js index 5efd7fd3f8a9..7821f67a16a5 100644 --- a/dom/serviceworkers/test/browser_download_canceled.js +++ b/dom/serviceworkers/test/browser_download_canceled.js @@ -141,7 +141,6 @@ add_task(async function interruptedDownloads() { ["dom.serviceWorkers.enabled", true], ["dom.serviceWorkers.exemptFromPerDomainMax", true], ["dom.serviceWorkers.testing.enabled", true], - ["javascript.options.streams", true], ], }); diff --git a/dom/serviceworkers/test/test_fetch_event.html b/dom/serviceworkers/test/test_fetch_event.html index 71537a034c15..5227f6ae3430 100644 --- a/dom/serviceworkers/test/test_fetch_event.html +++ b/dom/serviceworkers/test/test_fetch_event.html @@ -68,7 +68,6 @@ ["dom.serviceWorkers.exemptFromPerDomainMax", true], ["dom.serviceWorkers.enabled", true], ["dom.serviceWorkers.testing.enabled", true], - ["javascript.options.streams", true], ]}, runTest); diff --git a/dom/serviceworkers/test/test_fetch_event_with_thirdpartypref.html b/dom/serviceworkers/test/test_fetch_event_with_thirdpartypref.html index 7ab08af9e40b..53552e03c3fd 100644 --- a/dom/serviceworkers/test/test_fetch_event_with_thirdpartypref.html +++ b/dom/serviceworkers/test/test_fetch_event_with_thirdpartypref.html @@ -82,7 +82,6 @@ ["dom.serviceWorkers.exemptFromPerDomainMax", true], ["dom.serviceWorkers.enabled", true], ["dom.serviceWorkers.testing.enabled", true], - ["javascript.options.streams", true], ["network.cookie.cookieBehavior", COOKIE_BEHAVIOR_REJECTFOREIGN], ]}, runTest); diff --git a/dom/tests/mochitest/fetch/mochitest.ini b/dom/tests/mochitest/fetch/mochitest.ini index cc199148639b..8a5c97eacf63 100644 --- a/dom/tests/mochitest/fetch/mochitest.ini +++ b/dom/tests/mochitest/fetch/mochitest.ini @@ -44,8 +44,6 @@ support-files = !/dom/security/test/csp/file_redirects_resource.sjs !/dom/base/test/referrer_helper.js !/dom/base/test/referrer_testserver.sjs -prefs = - javascript.options.streams=true [test_headers.html] [test_headers_sw_reroute.html] [test_headers_mainthread.html] diff --git a/dom/webidl/Response.webidl b/dom/webidl/Response.webidl index 05505f455a80..341c2b8b6732 100644 --- a/dom/webidl/Response.webidl +++ b/dom/webidl/Response.webidl @@ -42,7 +42,7 @@ Response includes Body; // This should be part of Body but we don't want to expose body to request yet. // See bug 1387483. partial interface Response { - [GetterThrows, Pref="javascript.options.streams"] + [GetterThrows] readonly attribute ReadableStream? body; }; diff --git a/dom/workers/test/test_readableStream_when_closing.html b/dom/workers/test/test_readableStream_when_closing.html index 293428628945..24d5bf382172 100644 --- a/dom/workers/test/test_readableStream_when_closing.html +++ b/dom/workers/test/test_readableStream_when_closing.html @@ -34,32 +34,28 @@ function workerCode() { } SimpleTest.waitForExplicitFinish(); -SpecialPowers.pushPrefEnv({"set": [ - ["javascript.options.streams", true], -]}).then(() => { - const b = new Blob([workerCode+'workerCode();']); - const url = URL.createObjectURL(b); - const w = new Worker(url); - w.onmessage = function(e) { - ok(true, 'Worker is reading'); - const wdm = Cc["@mozilla.org/dom/workers/workerdebuggermanager;1"]. - getService(Ci.nsIWorkerDebuggerManager); - wdm.addListener({ - onUnregister (dbg) { - if (dbg.url == url) { - ok(true, "Debugger with url " + url + " should be unregistered."); - wdm.removeListener(this); - SimpleTest.finish(); - } +const b = new Blob([workerCode+'workerCode();']); +const url = URL.createObjectURL(b); +const w = new Worker(url); +w.onmessage = function(e) { + ok(true, 'Worker is reading'); + + const wdm = Cc["@mozilla.org/dom/workers/workerdebuggermanager;1"]. + getService(Ci.nsIWorkerDebuggerManager); + wdm.addListener({ + onUnregister (dbg) { + if (dbg.url == url) { + ok(true, "Debugger with url " + url + " should be unregistered."); + wdm.removeListener(this); + SimpleTest.finish(); } - }); - - w.terminate(); - } - w.postMessage("start"); -}); + } + }); + w.terminate(); +} +w.postMessage("start"); diff --git a/js/public/RealmOptions.h b/js/public/RealmOptions.h index 30174015d13d..b147273ae9c6 100644 --- a/js/public/RealmOptions.h +++ b/js/public/RealmOptions.h @@ -182,30 +182,6 @@ class JS_PUBLIC_API RealmCreationOptions { return *this; } - bool getReadableByteStreamsEnabled() const { return readableByteStreams_; } - RealmCreationOptions& setReadableByteStreamsEnabled(bool flag) { - readableByteStreams_ = flag; - return *this; - } - - bool getBYOBStreamReadersEnabled() const { return byobStreamReaders_; } - RealmCreationOptions& setBYOBStreamReadersEnabled(bool enabled) { - byobStreamReaders_ = enabled; - return *this; - } - - bool getWritableStreamsEnabled() const { return writableStreams_; } - RealmCreationOptions& setWritableStreamsEnabled(bool enabled) { - writableStreams_ = enabled; - return *this; - } - - bool getReadableStreamPipeToEnabled() const { return readableStreamPipeTo_; } - RealmCreationOptions& setReadableStreamPipeToEnabled(bool enabled) { - readableStreamPipeTo_ = enabled; - return *this; - } - WeakRefSpecifier getWeakRefsEnabled() const { return weakRefs_; } RealmCreationOptions& setWeakRefsEnabled(WeakRefSpecifier spec) { weakRefs_ = spec; @@ -279,10 +255,6 @@ class JS_PUBLIC_API RealmCreationOptions { bool defineSharedArrayBufferConstructor_ = true; bool coopAndCoep_ = false; bool streams_ = false; - bool readableByteStreams_ = false; - bool byobStreamReaders_ = false; - bool writableStreams_ = false; - bool readableStreamPipeTo_ = false; bool toSource_ = false; bool propertyErrorMessageFix_ = false; bool iteratorHelpers_ = false; diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp index 5d88186bd62e..e029c38f7159 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -622,8 +622,6 @@ bool shell::enableSourcePragmas = true; bool shell::enableAsyncStacks = false; bool shell::enableAsyncStackCaptureDebuggeeOnly = false; bool shell::enableStreams = false; -bool shell::enableReadableByteStreams = false; -bool shell::enableBYOBStreamReaders = false; bool shell::enableWeakRefs = false; bool shell::enableToSource = false; bool shell::enablePropertyErrorMessageFix = false; @@ -4241,8 +4239,6 @@ static void SetStandardRealmOptions(JS::RealmOptions& options) { .setSharedMemoryAndAtomicsEnabled(enableSharedMemory) .setCoopAndCoepEnabled(false) .setStreamsEnabled(enableStreams) - .setReadableByteStreamsEnabled(enableReadableByteStreams) - .setBYOBStreamReadersEnabled(enableBYOBStreamReaders) .setWeakRefsEnabled(enableWeakRefs ? JS::WeakRefSpecifier::EnabledWithCleanupSome : JS::WeakRefSpecifier::Disabled) @@ -11026,8 +11022,6 @@ static bool SetContextOptions(JSContext* cx, const OptionParser& op) { enableAsyncStackCaptureDebuggeeOnly = op.getBoolOption("async-stacks-capture-debuggee-only"); enableStreams = !op.getBoolOption("no-streams"); - enableReadableByteStreams = op.getBoolOption("enable-readable-byte-streams"); - enableBYOBStreamReaders = op.getBoolOption("enable-byob-stream-readers"); enableWeakRefs = !op.getBoolOption("disable-weak-refs"); enableToSource = !op.getBoolOption("disable-tosource"); enablePropertyErrorMessageFix = @@ -12007,12 +12001,6 @@ int main(int argc, char** argv) { !op.addBoolOption('\0', "enable-streams", "Enable WHATWG Streams (default)") || !op.addBoolOption('\0', "no-streams", "Disable WHATWG Streams") || - !op.addBoolOption('\0', "enable-readable-byte-streams", - "Enable support for WHATWG ReadableStreams of type " - "'bytes'") || - !op.addBoolOption('\0', "enable-byob-stream-readers", - "Enable support for getting BYOB readers for WHATWG " - "ReadableStreams of type \"bytes\"") || !op.addBoolOption('\0', "disable-weak-refs", "Disable weak references") || !op.addBoolOption('\0', "disable-tosource", "Disable toSource/uneval") || !op.addBoolOption('\0', "disable-property-error-message-fix", diff --git a/js/xpconnect/src/XPCJSContext.cpp b/js/xpconnect/src/XPCJSContext.cpp index faec78494e6f..bb0e2936e1d4 100644 --- a/js/xpconnect/src/XPCJSContext.cpp +++ b/js/xpconnect/src/XPCJSContext.cpp @@ -797,8 +797,6 @@ void xpc::SetPrefableRealmOptions(JS::RealmOptions& options) { .setCoopAndCoepEnabled( StaticPrefs::browser_tabs_remote_useCrossOriginOpenerPolicy() && StaticPrefs::browser_tabs_remote_useCrossOriginEmbedderPolicy()) - .setWritableStreamsEnabled( - StaticPrefs::javascript_options_writable_streams()) .setPropertyErrorMessageFixEnabled(sPropertyErrorMessageFixEnabled) .setWeakRefsEnabled(GetWeakRefsEnabled()) .setIteratorHelpersEnabled(sIteratorHelpersEnabled) diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml index 9b827e14208c..dbc23f34dfef 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml @@ -6756,22 +6756,6 @@ mirror: always # LoadStartupJSPrefs do_not_use_directly: true -# Streams API. This only applies to JS Streams -- name: javascript.options.streams - type: RelaxedAtomicBool - value: true - mirror: always - -# Writable Streams API. (The pref above must also be set to expose this.) -# -# Writable streams are still EXTRAORDINARILY BETA and it is well-known that -# things are likely pretty broken if you poke much at all, so if you flip this -# preference, don't report bugs against it just yet. -- name: javascript.options.writable_streams - type: RelaxedAtomicBool - value: false - mirror: always - - name: javascript.options.main_thread_stack_quota_cap type: uint32_t #if defined(MOZ_ASAN) diff --git a/testing/web-platform/meta/fetch/api/abort/__dir__.ini b/testing/web-platform/meta/fetch/api/abort/__dir__.ini index 12fa96f08bfb..b9f5886878e1 100644 --- a/testing/web-platform/meta/fetch/api/abort/__dir__.ini +++ b/testing/web-platform/meta/fetch/api/abort/__dir__.ini @@ -1,3 +1,2 @@ -prefs: [javascript.options.streams:true] lsan-disabled: true leak-threshold: [default:51200] diff --git a/testing/web-platform/meta/fetch/api/basic/__dir__.ini b/testing/web-platform/meta/fetch/api/basic/__dir__.ini index ae26c15a3b95..d1ce8a0ed7cf 100644 --- a/testing/web-platform/meta/fetch/api/basic/__dir__.ini +++ b/testing/web-platform/meta/fetch/api/basic/__dir__.ini @@ -1,3 +1,2 @@ -prefs: [javascript.options.streams:true] lsan-disabled: true leak-threshold: [default:3020800] diff --git a/testing/web-platform/meta/fetch/api/response/__dir__.ini b/testing/web-platform/meta/fetch/api/response/__dir__.ini index 23fe89a2b56d..83d49dd735bf 100644 --- a/testing/web-platform/meta/fetch/api/response/__dir__.ini +++ b/testing/web-platform/meta/fetch/api/response/__dir__.ini @@ -1,2 +1 @@ -prefs: [javascript.options.streams:true] lsan-allowed: [Alloc, NS_NewCStringInputStream, PR_NewMonitor, maybe_pod_malloc, mozilla::NonBlockingAsyncInputStream::AsyncWait, mozilla::NonBlockingAsyncInputStream::Create, mozilla::dom::BodyStream::Create, mozilla::dom::WorkerPrivate::WorkerPrivate, unknown stack] diff --git a/testing/web-platform/meta/service-workers/__dir__.ini b/testing/web-platform/meta/service-workers/__dir__.ini index 5eeb391f9f5b..51084011f38e 100644 --- a/testing/web-platform/meta/service-workers/__dir__.ini +++ b/testing/web-platform/meta/service-workers/__dir__.ini @@ -1,3 +1,3 @@ -prefs: [javascript.options.streams:true, dom.serviceWorkers.mitigations.bypass_on_fault:false] +prefs: [dom.serviceWorkers.mitigations.bypass_on_fault:false] lsan-allowed: [Alloc, MakeUnique, Malloc, mozilla::detail::UniqueSelector, mozilla::dom::ClientManager::CreateSourceInternal, mozilla::dom::ClientManager::GetOrCreateForCurrentThread, mozilla::dom::Performance::CreateForWorker, mozilla::dom::PerformanceStorageWorker::AddEntryOnWorker, mozilla::dom::ServiceWorkerGlobalScope::GetClients, mozilla::dom::ServiceWorkerRegistration::CreateForWorker, mozilla::dom::WorkerLocation::Create, mozilla::dom::WorkerNavigator::Create, mozilla::dom::WorkerPrivate::GetOrCreateGlobalScope, mozilla::dom::cache::CacheStorage::CreateOnWorker, nsDynamicAtom::Create] leak-threshold: [tab:51200] diff --git a/testing/web-platform/meta/streams/__dir__.ini b/testing/web-platform/meta/streams/__dir__.ini index af09f6a1e38b..e87d16e53aac 100644 --- a/testing/web-platform/meta/streams/__dir__.ini +++ b/testing/web-platform/meta/streams/__dir__.ini @@ -1 +1 @@ -prefs: [javascript.options.streams:true, dom.streams.transform_streams.enabled:true, dom.streams.pipeTo.enabled:true] +prefs: [dom.streams.transform_streams.enabled:true, dom.streams.pipeTo.enabled:true] diff --git a/testing/web-platform/meta/workers/semantics/interface-objects/__dir__.ini b/testing/web-platform/meta/workers/semantics/interface-objects/__dir__.ini deleted file mode 100644 index a794c9d11167..000000000000 --- a/testing/web-platform/meta/workers/semantics/interface-objects/__dir__.ini +++ /dev/null @@ -1 +0,0 @@ -prefs: [javascript.options.streams:true] diff --git a/testing/web-platform/meta/xhr/__dir__.ini b/testing/web-platform/meta/xhr/__dir__.ini index 7c48791468ff..01a9ba8632de 100644 --- a/testing/web-platform/meta/xhr/__dir__.ini +++ b/testing/web-platform/meta/xhr/__dir__.ini @@ -1,3 +1,3 @@ -prefs: [javascript.options.streams:true, dom.xhr.standard_content_type_normalization:true] +prefs: [dom.xhr.standard_content_type_normalization:true] lsan-allowed: [Alloc, mozilla::net::AddStaticElement, mozilla::net::nsServerSocket::CreateClientTransport] leak-threshold: [default:51200]