DescriptionIntroduce AudioIPCFactory.
AudioIPCFactory is introduced to manage RendererAudioOutputStreamFactory
pointers, which is needed for various reasons.
* When processing an authorization request, it is not safe to use other
threads than the IO thread, as they may be blocked waiting for the
response. Thus, AudioIPCFactory is introduced to hold a mapping
(frame id->remote factory) on the IO thread. This also means we have
to create/destruct the RendererAudioOutputStreamFactoryPtr with the
RenderFrameImpl instead of the preferrable way of doing it lazily.
This should be revisited if we stop blocking while waiting for
authorization (crbug.com/668275).
* For running browser tests with this, the browser-side glue code is
needed. I have verified that the browser tests pass. As the pepper
code doesn't seem well covered by tests, I also manually verified
that flash sound output works.
* There's a class diagram at https://docs.google.com/drawings/d/1U1e-0gH3WVSV9Td9ZCEcPDBMC7WWWeh58sRYAdXbrn8/edit?usp=sharing
BUG=425368
Review-Url: https://codereview.chromium.org/2890753003
Cr-Commit-Position: refs/heads/master@{#476612}
Committed: https://chromium.googlesource.com/chromium/src/+/017ba8c602a378a6f508cf642ef81ed46eea5dbe
Patch Set 1 : tests #Patch Set 2 : tmp #Patch Set 3 : Rollback to PS1, fix includes. #
Total comments: 12
Patch Set 4 : Dale's comments. #Messages
Total messages: 44 (36 generated)
|