media: Support unprefixed EME API on Android.
Detailed changes:
1. Supports latest MediaKeys API in ProxyMediaKeys, RendererCdmManager, IPC,
BrowserCdmManager, BrowserCdm and MediaDrmBridge (C++ and Java), including:
- Support new API: CreateSessionAndGenerateRequest, CloseSession, etc.
- Support new events: SessionKeysChange and SessionExpirationUpdate.
- Remove old events: SessionCreated and SessionReady.
- Remove old integer session ID.
- Fully support promises.
2. BrowserCdm inherits MediaKeys. As a result, MediaDrmBridge is also a
MediaKeys. This will make it easy to use MediaDrmBridge in other places, e.g.
in MojoCdmService.
3. MediaDrmBridge Java class refactored to accomodate these changes.
Notes:
1. MeidaDrm doesn't support key status. A dummy key ID is used to report key
status change.
2. MediaDrm doesn't support expiration time.
3. Persistent session is not supported; ProxyMediaKeys rejects LoadSession() and
RemoveSession() right away.
4. Promises are converted to promise ID in ProxyMediaKeys and MediaDrmBridge so
that we can pass it over IPC and JNI.
BUG=442584
TEST=Prefixed API test pages work. Need to test unprefixed API.
Review URL: https://codereview.chromium.org/850183002
Cr-Commit-Position: refs/heads/master@{#312348}
20 files changed