media: Disallow parallel provisioning in MediaDrmBridge
This CL adds MediaCryptoDeferrer to ensure there will be only one provisioning flow at any time. If NotProvisionedException is thrown when another provisioning flow already started, the MediaCrypto creation process will be deferred and resumed when the previous provisoning process finishes. If creating MediaCrypto doesn't trigger provisioning, it'll not be affected. Note that when we resume the MediaCrypto creation, we may trigger provisioning again, which is also handled in MediaCryptoDeferrer. This could happen when per-origin provisioning is enabled and we have different origin IDs. MediaCryptoDeferrer is only used when mRequiresMediaCrypto is true. Bug: 834965 Change-Id: I4e9ce60acbb6132b8170b9f47bc85ef5fc946f4c Reviewed-on: https://chromium-review.googlesource.com/1071103 Commit-Queue: Xiaohan Wang <xhwang@chromium.org> Reviewed-by:Yuchen Liu <yucliu@chromium.org> Cr-Commit-Position: refs/heads/master@{#561658}
Showing
Please register or sign in to comment