Closed Bug 1839670 Opened 1 year ago Closed 1 year ago

Remove the requirement that runnables dispatched to workers need to be nsIDiscardableRunnable

Categories

(Core :: DOM: Workers, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
116 Branch
Tracking Status
firefox116 --- fixed

People

(Reporter: asuth, Assigned: asuth)

References

Details

Attachments

(1 file)

In bug 1800659 we removed our use of cancellation, but we retained the DEBUG assertions that require our runnables to be discardable. (Bug 1119956 changed our semantics/requirements.)

We can probably also remove the WorkerRunnable wrapping that remains in the method there, but that should likely be a separate bug to minimize potential regressions.

In bug 1800659 we removed our use of cancellation, but we retained the
DEBUG assertions that require our runnables to be discardable. This
patch removes the DEBUG assertions.

However, note that at this time we continue to retain:

  • Support in ExternalRunnableWrapper::Cancel to QI the wrapped runnable
    to nsIDiscardableRunnable and we will call its OnDiscard method if it
    QIs.
  • The limited cancellation support where WorkerRunnable::Run checks
    WorkerPrivate::CancelBeforeWorkerScopeConstructed which will be
    flipped if the worker transition to Canceling without ever having
    created a global.
  • The limited cancellation support where
    WorkerPrivate::ClearPreStartRunnables explicitly invokes Cancel on
    all of the WorkerRunnables in WorkerPrivate::mPreStartRunnables.
    Note that the runnables will all explicitly be WorkerRunnable
    instances in that case. Runnables can only get in that queue via
    WorkerPrivate::Dispatch or WorkerPrivate::EventTarget::Dispatch
    (where WorkerPrivate::EventTarget is explicitly only ever used by
    syncloops created by WorkerPrivate::CreateNewSyncLoop and it always
    wraps all of its runnables.)
Pushed by bugmail@asutherland.org:
https://hg.mozilla.org/integration/autoland/rev/e9232e3706ab
Remove the requirement that runnables dispatched to workers need to be nsIDiscardableRunnable. r=dom-worker-reviewers,smaug
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 116 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: