Open Bug 1055093 Opened 11 years ago Updated 2 years ago

Make transitions in the Speech Recognition state machine synchronous

Categories

(Core :: DOM: Core & HTML, defect, P5)

defect

Tracking

()

People

(Reporter: ggp, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [webspeechapi])

Every call to a speech recognition method (such as start) causes an async change in the recognition object's state [1]. This can pose problems on its own, since script that calls one of these methods should probably see the change in state immediately: for example, it is possible to call start() multiple times without raising an InvalidStateError, which deviates from the spec. Combined with the fact that we also use the event loop to buffer audio samples [2], async state transitions have caused most of our intermittent bugs, to the point where we've had to do one sync transition amidst all the others [3] (this is just a flag, but it's equivalent to having a STATE_ABORTED transition). Having only one sync transition has also caused its own share of testing pains, though (see bug 1052775). I think making our state transitions synchronous would go a great way towards making speech code more robust and less prone to intermittent issues, so we should investigate that. 1- http://dxr.mozilla.org/mozilla-central/source/content/media/webspeech/recognition/SpeechRecognition.cpp#720 2- http://dxr.mozilla.org/mozilla-central/source/content/media/webspeech/recognition/SpeechRecognition.cpp#878 3- http://dxr.mozilla.org/mozilla-central/source/content/media/webspeech/recognition/SpeechRecognition.cpp#738
Blocks: 967606
Whiteboard: [webspeechapi]
Assignee: nobody → anatal
Priority: -- → P5
Component: DOM → DOM: Core & HTML
Severity: normal → S3

The bug assignee is inactive on Bugzilla, so the assignee is being reset.

Assignee: anatal → nobody
You need to log in before you can comment on or make changes to this bug.