Commit Graph

725 Commits

Author SHA1 Message Date
Mirko Brodesser
d7c0264eed Bug 1909467: replace some includes of "nsIContentSecurityPolicy" with forward declarations or other includes and move some function definitions to the corresponding .cpp files. r=tschuster,necko-reviewers,kershaw
Differential Revision: https://phabricator.services.mozilla.com/D217570
2024-08-15 12:37:35 +00:00
Emilio Cobos Álvarez
77c40caac6 Bug 1910698 - Remove nsIScriptError.sourceLine. r=smaug,devtools-reviewers,webdriver-reviewers,necko-reviewers,nchevobbe,kershaw,jdescottes,credential-management-reviewers,dimi
Afaict the source lines are not exposed anywhere in the UI.

Differential Revision: https://phabricator.services.mozilla.com/D218115
2024-08-01 17:12:48 +00:00
Olli Pettay
d4b1fee6dc Bug 1907794, trace certainly black event listeners, r=mccr8,dom-worker-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D217125
2024-07-24 15:24:17 +00:00
Kagami Sascha Rosylight
4573d3fb90 Bug 1908947 - Add WorkerPrivate::GetTopLevelWorker() r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D217139
2024-07-23 13:46:45 +00:00
aiunusov
1fb2fba720 Bug 1817981 - Add possibility to mark worker private being in background, r=smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D209334
2024-06-27 12:39:47 +00:00
Sandor Molnar
923ece4be1 Backed out 5 changesets (bug 1672493) for causing serviceworker related perma failures. CLOSED TREE
Backed out changeset a38e64bdda2c (bug 1672493)
Backed out changeset b4e568bfb9c7 (bug 1672493)
Backed out changeset 4f1ee5c1e441 (bug 1672493)
Backed out changeset e05276c441ef (bug 1672493)
Backed out changeset e80cf5cf2fe5 (bug 1672493)
2024-06-27 13:02:33 +03:00
Eden Chuang
ba2a3d38c3 Bug 1672493 - P3 Move RemoteWorker::Op and SharedWorkerOp out from RemoteWorkerChild. r=asuth
To reuse the code of RemoteWorker::State and RemoteWorker::Op in RemoteWorkerNonLifeCycleOpControllerChild, this patch isolates these reused codes into a new file RemoteWorkerOp.h. And also extract RemoteWorker::SharedWorkerOp into SharedWorkerOp.h.cpp

Depends on D197563

Differential Revision: https://phabricator.services.mozilla.com/D198005
2024-06-27 09:07:41 +00:00
Eden Chuang
c15c7a9387 Bug 1672493 - P2 Create IPC PRemoteWorkerNonLifeCycleOpController. r=asuth
In this patch, IPC PRemoteWorkerNonLifeCycleOpController is created for non-life cycle operations of SharedWorker/ServiceWorker.

PRemoteWorkerNonLifeCycleOpController is the IPC between the content process worker thread and the parent process background thread.
This IPC helps to build a direct communication instead of go through worker launcher thread and the main thread.

Endpoint<PRemoteWorkerNonLifeCycleOpControllerParent/Child> pairs are created when RemoteWorkerManager::LaunchInternal().
The parent Endpoint is binded a RemoteWorkerNonLifeCycleOpControllerParent immediately and connect to the corresponding RemoteWorkerController.
And the child Endpoint is passed through IPC PRemoteWorkerService::SendPRemoteWorkerConstructor() to the content process, and then binds to a PRemoteWorkerNonLifeCycleOpControllerChild when the Worker gets into "Running" state.

After connection is built, RemoteWorkerController can send non-life cycle related operations by PRemoteWorkerNonLifeCycleOpController and send life cycle related operations by PRemoteWorker.

Depends on D196946

Differential Revision: https://phabricator.services.mozilla.com/D197563
2024-06-27 09:07:40 +00:00
Eden Chuang
3798667074 Bug 1894231 - P11 Remove WorkerThreadRunnable::mWorkerPrivateForPreStartCleaning. r=dom-worker-reviewers,asuth
This patch introduces a boolean WorkerThreadRunnable::mCleanPreStartDispatching to indicate if the WorkerThreadRunnable needs to skip its execution in its Run() because of WorkerPrivate::RunLoopNeverRan().

If any WorkerPrivate initialization fails in [[ https://searchfox.org/mozilla-central/rev/a26e972e97fbec860400d80df625193f4c88d64e/dom/workers/RuntimeService.cpp#2090-2120 | WorkerThreadPrimaryRunnable::Run() ]], corresponding WorkerJSContext might not be created or created then destroyed before entering [[ https://searchfox.org/mozilla-central/rev/a26e972e97fbec860400d80df625193f4c88d64e/dom/workers/RuntimeService.cpp#2085 | WorkerPrivate::RunLoopNeverRan() ]]. This invalidates the WorkerJSContext, and GetCurrentThreadWorkerPrivate() will not work correctly. In this case, any WorkerThreadRunnable should not run in this invalid environment, so we can just skip the execution by returning NS_OK in its Run().

To skip the execution, we need to keep WorkerPrivate::mPreStartRunnables until WorkerPrivate::DoRunLoop() or WorkerPrivate::RunLoopNeverRan() is called. If WorkerPrivate::RunLoopNeverRan() is called, WorkerThreadRunnable::mCleanPreStartDispatching is set as true, such that WorkerThreadRunnable::Run() no need to get a WorkerPrivate for status judgment.

Depends on D213946

Differential Revision: https://phabricator.services.mozilla.com/D213947
2024-06-24 22:20:54 +00:00
Eden Chuang
92a92180ef Bug 1894231 - P2 Remove CheckedUnsafePtr<WorkerPrivate> in AutoSyncLoopHolder and AutoPushEventLoopGlobal. r=dom-worker-reviewers,smaug
Remove CheckedUnsafePtr<WorkerPrivate> in AutoSyncLoopHolder with a StrongWorkerRef.
There is no shutdown callback for AutoSyncLoopHolder::mWorkerRef since Worker's shutdown should be blocked until the created syncLoop is destroyed. Stopping the created syncLoop in the WorkerRef shutdown callback will cause memory leaking which resource releasing should be done during the execution of the syncLoop.

Remove WorkerPrivate* in AutoPushEventLoopGlobal with GetCurrentThreadWorkerPrivate().
AutoPushEventLoopGlobal is an RAII class that runs on the Worker thread. It is supposed to get a valid WorkerPrivate through GetCurrentThreadWorkerPrivate().

Depends on D211843

Differential Revision: https://phabricator.services.mozilla.com/D212556
2024-06-24 22:20:51 +00:00
pstanciu
1dd9e24c1d Backed out changeset 08430749c503 (bug 1817981) for causing mochitest failures on test_worker_in_background.html 2024-06-19 03:11:23 +03:00
aiunusov
ba7f0001ff Bug 1817981 - Add possibility to mark worker private being in background, r=smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D209334
2024-06-18 21:36:01 +00:00
Stanca Serban
4f6cd29ecf Backed out changeset e1c3d0c745df (bug 1817981) for causing mochitests failures in test_worker_in_background.html. 2024-06-18 07:12:30 +03:00
aiunusov
e3b021f035 Bug 1817981 - Add possibility to mark worker private being in background, r=smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D209334
2024-06-17 20:53:36 +00:00
Cristian Tuns
3592169d4b Backed out changeset 072c9a687784 (bug 1817981) for causing mochitest failures in test_worker_in_background.html CLOSED TREE 2024-06-13 23:30:43 -04:00
aiunusov
2d09a12c0b Bug 1817981 - Add possibility to mark worker private being in background, r=smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D209334
2024-06-13 22:43:23 +00:00
Eden Chuang
1cd09d6fa9 Bug 1898108 - Making WorkerPrivate::mDebuggerQueue accesses protected by WorkerPrivate::mMutex. r=dom-worker-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D211213
2024-05-26 15:55:49 +00:00
Alexandre Poirot
23e4c82258 Bug 1896893 - [devtools] Tweak WorkerDebugger.isClosed to better reflect worker destruction. r=dom-worker-reviewers,smaug,asuth
The WorkerPrivate may still be defined, but be in a Dead status, which makes it irrelevant
to send messages to.

Differential Revision: https://phabricator.services.mozilla.com/D210481
2024-05-20 21:42:06 +00:00
Alexandre Poirot
d6657b7af7 Bug 1821250 - Use a timer on debugger control runnable to ensure running them even if worker uses Atomics.wait. r=asuth
Atomics.wait prevent WorkerDebuggerRunnable's from running by blocking the event loop.
While dispatching these runnables, also spawn a short timer which would interrupt the worker
and tentatively try to drain the debugger queue and resume any debugger runnable which may be blocked.

Differential Revision: https://phabricator.services.mozilla.com/D194081
2024-05-13 11:52:08 +00:00
Eden Chuang
a718e4758f Bug 1769913 - P3 Remove WorkerRunnable::mWorkerPrivate. r=dom-worker-reviewers,asuth
WorkerRunnable no longer keeps a raw pointer(mWorkerPrivate) for the associated WorkerPrivate in this patch.
Removing the WorkerRunnable::mWorkerPrivate needs to fix the following problems.

1. Thread assertions in WorkerRunnable::Dispatch()

To fix this problem, the associated WorkerPrivate is as a parameter and passed to WorkerRunnable::Dispatch() for the dispatching thread assertions. This associated WorkerPrivate is also propagated to PreDispatch() and PostDispatch() for the children classes of WorkerRunnable()

2. Get the associated WorkerPrivate in WorkerRunnable::Run() for environment setup(GlobabObject, JSContext setting for the runnable)

- For WorkerThreadRunnable

Since WorkerThreadRunnable is supposed to run on the worker thread, it does not need to keep a raw pointer to WorkerPrivate as its class member. GetCurrentThreadWorkerPrivate() should always get the correct WorkerPrivate for WorkerThreadRunnable.

- For WorkerParentThreadRunnable

WorkerParentRef is introduced to keep a RefPtr<WorkerPrivate> for WorkerParentThreadRunnable instead of using a raw pointer.
Checking the associated WorkerPrivate existence by WorkerParentRef at the beginning of WorkerParentThreadRunnable::Run(). If the Worker has already shut down, WorkerParentThreadRunnable cannot do anything with the associated WorkerPrivate, so WorkerParentThreadRunnable::Run() will return NS_OK directly but with a warning.

The associated WorkerPrivate is also passed into WorkerRun(), PreRun(), and PostRun(), so the majority of implementations of child classes of WorkerRunnable do not need to be changed.

If there are any cases in which the child classes of WorkerThreadRunnable/WorkerParentThreadRunnable want to keep the associated WorkerPrivate, they should use WorkerRefs instead of raw pointers.

Depends on D205679

Differential Revision: https://phabricator.services.mozilla.com/D207039
2024-04-19 09:41:58 +00:00
Eden Chuang
11d8c5840b Bug 1769913 - P2 WorkerParentThreadRunnable for the runnables dispatched to worker's parent thread. r=dom-worker-reviewers,asuth
In this patch, WorkerParentThreadRunnable is extracted from WorkerThreadRunnable for runnable on the parent thread.

WorkerParentControlRunnable and WorkerParentDebuggeeRunnable are also created for control runnable and debuggee runnable on the parent thread.

Instead of using WorkerRunnable::Target to indicate the thread target, inheriting WorkerThreadRunnable or WorkerParentThreadRunnable to point out that this runnable should run on the worker thread or on the parent thread. So WorkerRunnable::Target is removed in this patch.

This patch also move the dispatching logic into WorkerPrivate to simplify WorkerRunnable::DispatchInternal()'s implementation.

Depends on D205178

Differential Revision: https://phabricator.services.mozilla.com/D205679
2024-04-19 09:41:57 +00:00
Paul Zuehlcke
4bf53cad7c Bug 1848406 - Keep track of storage access in web workers. r=bvandersloot,asuth
Differential Revision: https://phabricator.services.mozilla.com/D203640
2024-04-17 20:29:05 +00:00
Norisz Fay
7cdea11ce1 Backed out 15 changesets (bug 1843308, bug 1889444, bug 1888504, bug 1890546, bug 1888500, bug 1848406, bug 1890782) for causing bustage on BounceTrackingProtection.h CLOSED TREE
Backed out changeset 09168636f92e (bug 1890782)
Backed out changeset 45c9c902f35f (bug 1889444)
Backed out changeset 7cd441010547 (bug 1889444)
Backed out changeset 692d3fb54e2c (bug 1890546)
Backed out changeset 4c476414499a (bug 1843308)
Backed out changeset fc70ef415bfe (bug 1888504)
Backed out changeset e400fe8e13ac (bug 1888500)
Backed out changeset 336738f93085 (bug 1888500)
Backed out changeset 40fdfaf3cc32 (bug 1848406)
Backed out changeset 6a3ec1f62811 (bug 1848406)
Backed out changeset 5ea32ea95f62 (bug 1848406)
Backed out changeset df982722bc0a (bug 1848406)
Backed out changeset 6808ec37fa93 (bug 1848406)
Backed out changeset 36b8e78cc27e (bug 1848406)
Backed out changeset d63358e762de (bug 1848406)
2024-04-11 23:07:40 +03:00
Paul Zuehlcke
31d8e00c6d Bug 1848406 - Keep track of storage access in web workers. r=bvandersloot,asuth
Differential Revision: https://phabricator.services.mozilla.com/D203640
2024-04-11 19:03:16 +00:00
Sandor Molnar
e7bdbd80c9 Backed out 12 changesets (bug 1843308, bug 1848406, bug 1888500, bug 1888504, bug 1890546) for causing AddressSanitizer @ xpcom/base/nsISupportsImpl.cpp & bc failures @ toolkit/components/antitracking/bouncetrackingprotection/test/browser/<...> CLOSED TREE
Backed out changeset 4537591cca64 (bug 1890546)
Backed out changeset b29ebdf1439e (bug 1843308)
Backed out changeset 7c22cf88677f (bug 1888504)
Backed out changeset b85173dc6c16 (bug 1888500)
Backed out changeset 02d68d4511c7 (bug 1888500)
Backed out changeset 42ab5bd4b856 (bug 1848406)
Backed out changeset 6ce0fba99d02 (bug 1848406)
Backed out changeset affbf180e519 (bug 1848406)
Backed out changeset 80365ce68377 (bug 1848406)
Backed out changeset d75faab0301f (bug 1848406)
Backed out changeset 940c5fd39d25 (bug 1848406)
Backed out changeset 31016e129e99 (bug 1848406)
2024-04-10 22:10:33 +03:00
Paul Zuehlcke
af020e9e05 Bug 1848406 - Keep track of storage access in web workers. r=bvandersloot,asuth
Differential Revision: https://phabricator.services.mozilla.com/D203640
2024-04-10 14:12:39 +00:00
Benjamin VanderSloot
9379dadba0 Bug 1876575, part 2 - Make Workers use ancestor chain for third-partiness check - r=anti-tracking-reviewers,timhuang,asuth
Differential Revision: https://phabricator.services.mozilla.com/D203289
2024-04-02 18:53:26 +00:00
Cristian Tuns
16ac4d3300 Backed out 6 changesets (bug 1876574, bug 1876575) for causing multiple failures in TestGetPrincipalCookieBehavior5 CLOSED TREE
Backed out changeset f00e9fde550f (bug 1876575)
Backed out changeset ca1c6f8819f7 (bug 1876575)
Backed out changeset d65ac05bd9f8 (bug 1876575)
Backed out changeset 5dcfe3aa8497 (bug 1876575)
Backed out changeset 9ae9252761ac (bug 1876575)
Backed out changeset 704e94d28ad7 (bug 1876574)
2024-04-02 09:58:52 -04:00
Benjamin VanderSloot
aa43c1befe Bug 1876575, part 2 - Make Workers use ancestor chain for third-partiness check - r=anti-tracking-reviewers,timhuang,asuth
Differential Revision: https://phabricator.services.mozilla.com/D203289
2024-04-02 12:50:01 +00:00
Stanca Serban
d963aee96b Backed out 6 changesets (bug 1876574, bug 1876575) for causing multiple failures. CLOSED TREE
Backed out changeset 8c7a9f405031 (bug 1876575)
Backed out changeset 49739f9ec590 (bug 1876575)
Backed out changeset 1c49f0c3b677 (bug 1876575)
Backed out changeset 1ca7a0f27bc0 (bug 1876575)
Backed out changeset bfa9862e3480 (bug 1876575)
Backed out changeset 58576ed7eb22 (bug 1876574)
2024-03-29 20:52:30 +02:00
Benjamin VanderSloot
f8610417dc Bug 1876575, part 2 - Make Workers use ancestor chain for third-partiness check - r=anti-tracking-reviewers,timhuang,asuth
Differential Revision: https://phabricator.services.mozilla.com/D203289
2024-03-29 17:12:14 +00:00
Sandor Molnar
62e4773a7a Backed out 6 changesets (bug 1876575, bug 1876574) for causing build bustages @ toolkit/components/resistfingerprinting/nsRFPService.cpp CLOSED TREE
Backed out changeset 455ce831c73c (bug 1876575)
Backed out changeset 4fa3fbf3a3ae (bug 1876575)
Backed out changeset ac4c41cb3b67 (bug 1876575)
Backed out changeset 15e06d10788e (bug 1876575)
Backed out changeset dcd6bbea816a (bug 1876575)
Backed out changeset cc547125fda9 (bug 1876574)
2024-03-29 16:29:47 +02:00
Benjamin VanderSloot
a0f1d22b4e Bug 1876575, part 2 - Make Workers use ancestor chain for third-partiness check - r=anti-tracking-reviewers,timhuang,asuth
Differential Revision: https://phabricator.services.mozilla.com/D203289
2024-03-29 13:11:27 +00:00
Cristian Tuns
b8e971d10b Backed out 2 changesets (bug 1821250) for causing dt failures in Mutex_posix.cpp CLOSED TREE
Backed out changeset d46945ada9ec (bug 1821250)
Backed out changeset 94145877428a (bug 1821250)
2024-02-14 16:58:46 -05:00
Alexandre Poirot
aa44b4dd66 Bug 1821250 - Use a timer on debugger control runnable to ensure running them even if worker uses Atomics.wait. r=asuth
Atomics.wait prevent WorkerDebuggerRunnable's from running by blocking the event loop.
While dispatching these runnables, also spawn a short timer which would interrupt the worker
and tentatively try to drain the debugger queue and resume any debugger runnable which may be blocked.

Differential Revision: https://phabricator.services.mozilla.com/D194081
2024-02-14 17:18:44 +00:00
Jens Stutte
0b7e5acf96 Bug 1872913 - Ensure mMainThreadDebuggeeEventTarget is not paused during canceling of a worker. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D197908
2024-01-13 08:45:08 +00:00
Eden Chuang
08e3c42781 Bug 1865774 - Add WorkerPrivate::mWorkerLoopIsIdle to indicate the Worker is idle and could be GCed. r=asuth
After this patch, the Worker can be GCed while it is idle for events.

I want to point out the difference from the BusyCount implementation.
Compared to the BusyCount implementation, BusyCount implementation allows the Worker to be GCed during WorkerRunnable execution iff the WorkeRunnable does not modify BusyCount.

Differential Revision: https://phabricator.services.mozilla.com/D194333
2023-11-22 16:18:34 +00:00
Chris H-C
ac6241a7d1 Bug 1852098 - Generate mapping from Use Counter to use counter metrics r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D193249
2023-11-21 17:09:53 +00:00
Eden Chuang
8ca69b858d Bug 1865774 - Allow WorkerThread::HasPendingEvents() can be accessed on the parent thread. r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D194221
2023-11-21 16:30:09 +00:00
Narcis Beleuzu
aeac4d77e1 Backed out 7 changesets (bug 1852098) for bustages on UseCounterMetrics.h . CLOSED TREE
Backed out changeset 3b87419a9eea (bug 1852098)
Backed out changeset d9c7c84c82df (bug 1852098)
Backed out changeset e594c7eebb91 (bug 1852098)
Backed out changeset 15e0b0bd3bfb (bug 1852098)
Backed out changeset 220e9ee63ec3 (bug 1852098)
Backed out changeset 9edef145d1c5 (bug 1852098)
Backed out changeset 920a798dbb8a (bug 1852098)
2023-11-16 01:00:42 +02:00
Chris H-C
f3f17394ac Bug 1852098 - Generate mapping from Use Counter to use counter metrics r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D193249
2023-11-15 21:33:46 +00:00
Stanca Serban
7f8a3ccc5e Backed out 7 changesets (bug 1852098) for causing build bustages in UseCounterMetrics.cpp. CLOSED TREE
Backed out changeset 2caabd4bfe86 (bug 1852098)
Backed out changeset 5c174b0ee1ab (bug 1852098)
Backed out changeset 05ba23510b93 (bug 1852098)
Backed out changeset 256984effaa2 (bug 1852098)
Backed out changeset 8bed08cf2a68 (bug 1852098)
Backed out changeset 16b0698a239d (bug 1852098)
Backed out changeset 6e8d54a51fb7 (bug 1852098)
2023-11-15 23:02:32 +02:00
Chris H-C
2740b7e521 Bug 1852098 - Generate mapping from Use Counter to use counter metrics r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D193249
2023-11-15 17:01:29 +00:00
Jens Stutte
6c1b7f7767 Bug 1823391 - Have a static WorkerScriptLoader::Create and try to shutdown when the workerRef is notified. r=yulia,edenchuang,asuth
This patch does:
- use our common `Create` pattern also here to move some complexity out of the constructor and improve the error handling.
- give each strong worker ref a unique name for better diagnostics.
- add a `TryShutdown` to the life-cycle worker ref, presumably this may help if the worker dies before any DispatchLoadScript(s) has been called.

Differential Revision: https://phabricator.services.mozilla.com/D192936
2023-11-15 07:00:02 +00:00
Eden Chuang
5ca02c8ea0 Bug 1836700 - Remove BusyCount of WorkerPrivate. r=asuth,ipc-reviewers,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D182718
2023-11-13 04:00:40 +00:00
Tim Huang
f992ee3a42 Bug 1824222 - Add OverriddenFingerprintingSettings to worker loadInfo. r=tjr,dom-worker-reviewers,smaug
To allow workers to know the OverriddenFingerprintingSettings,
we populate the value to the worker loadInfo and worker private from
the document.

For service workers, we use the partitionKey in its principal to get
the OverriddenFingerprintingSettings of the given service worker.

Differential Revision: https://phabricator.services.mozilla.com/D185014
2023-10-17 22:02:28 +00:00
Benjamin VanderSloot
3d8d18cfc1 Bug 1835907, part 5 - Refactor the window's mStorageAccessPermissionGranted variable and its Getters to a more accurate name: mUsingStorageAccess - r=anti-tracking-reviewers,pbz
This probably should have been done earlier, but became obvious with uses of Document::HasStorageAccessPermissionGrated in this stack.

Differential Revision: https://phabricator.services.mozilla.com/D184825
2023-08-15 13:04:05 +00:00
Cosmin Sabou
819840f3b4 Backed out 6 changesets (bug 1835907) for causing multiple failures. CLOSED TREE
Backed out changeset 91ef29afec50 (bug 1835907)
Backed out changeset 989479621780 (bug 1835907)
Backed out changeset 86e3f98ceb31 (bug 1835907)
Backed out changeset 4790e44c234c (bug 1835907)
Backed out changeset bb9f48eec5bf (bug 1835907)
Backed out changeset 74f90708260a (bug 1835907)
2023-08-14 22:18:10 +03:00
Benjamin VanderSloot
dfe479593f Bug 1835907, part 5 - Refactor the window's mStorageAccessPermissionGranted variable and its Getters to a more accurate name: mUsingStorageAccess - r=anti-tracking-reviewers,pbz
This probably should have been done earlier, but became obvious with uses of Document::HasStorageAccessPermissionGrated in this stack.

Differential Revision: https://phabricator.services.mozilla.com/D184825
2023-08-14 18:02:47 +00:00
Jens Stutte
dde2319d94 Bug 1777921 - Assert that StrongWorkerRefs are not lazily released during final GC/CC. r=dom-worker-reviewers,smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D150942
2023-06-12 18:58:50 +00:00