As it turns out, this patch is a little complicated, mainly because it involves RenderViews talking to the RenderProcessHost.
I have a design doc here - https://docs.google.com/document/d/125IipVCwKSDOaJAOyATmM5Lue2dMo0fshLoj4-8JfOg/edit
Basically, the design involves:
1. On the renderer side (in the RenderView), SpeechRecognitionDispatcher holds a SpeechRecognitionRequestClient, which holds an array of SpeechRecognitionRequest objects (each with a Binding)
2. On the browser side (in the RenderProcessHost), SpeechRecognitionDispatcherHost also holds an array of SpeechRecognitionRequestClient objects, each with a Binding
3. In the Start() message (Browser -> Renderer), send the SpeechRecognitionRequestClient object! Now the Browser can send messages on this directly
Hopefully that makes sense. I've attached a diagram I made. Since my team is moving to ChromeOS, after the patch to convert the Renderer -> Browser messages lands (https://chromium-review.googlesource.com/790035), I'll unassign myself as owner of this bug :)
Comment 1 by cm.san...@samsung.com
, Nov 6 2017