Closed Bug 1604941 Opened 4 years ago Closed 4 years ago

AudioContextOperation promises can be left hanging

Categories

(Core :: WebRTC: Audio/Video, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla73
Tracking Status
firefox73 --- fixed

People

(Reporter: pehrsons, Assigned: pehrsons)

References

Details

Attachments

(2 files)

If we take this path we might never complete a "Resume" AudioContextOperation promise, yet we have an invariant that they all are handled.

This is because the invariant stems from when AudioContextOperations were landed in bug 1094764, whereas the conditional path was added as a crash fix later in bug 1277037, and the dtor assert was missed.

In bug 1586370 I'm moving the promise handling to MozPromise, and this makes the situation worse because they can't be left hanging, even in non-debug (it's a diagnostic assert really). This is good because it highlights a real issue -- the conditional path from bug 1277037.

I think this conditional path can be removed. With bug 1586370 even if the audio stream failed to start, we'll be running the audio driver through a fallback, so in that sense the AudioContext is running, like the application asked for. The user won't hear anything but that's because of some audio related issue, which if fixed will resolve itself when the fallback driver later starts the audio stream.

Depends on D56086

Pushed by pehrsons@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/7dbe17b0a53a
Add crashtest. r=padenot
https://hg.mozilla.org/integration/autoland/rev/0f904ae3e006
Don't leave AudioContextOperation::Resume hanging. r=padenot
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla73
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: