Encrypted Media Extensions updates
Encrypted Media Extensions extends the audio and video elements to enable Digital Rights Management (DRM) protected content without using plug-ins. Since its initial implementation in Internet Explorer 11, the World Wide Web Consortium (W3C) specification has changed significantly. The Microsoft Edge implementation has been updated to reflect these changes.
Removing the -ms- prefix
Microsoft Edge introduces support for non-prefixed Encrypted Media Extensions APIs. The legacy -ms- prefixed APIs are still supported in IE11.
The following table shows the -ms- prefixed and non-prefixed API changes across versions.
IE11 | Microsoft Edge |
---|---|
msMediaKeyMessageEvent | MediaKeyMessageEvent |
msMediaKeys | MediaKeys |
msMediaKeySession | MediaKeySession |
msSetMediaKeys | setMediaKeys |
msKeySystem | keySystem |
Other -ms- prefixed APIs supported in IE11 have been deprecated in Microsoft Edge. See the Other EME updates table below for a list of -ms- prefixed APIs not supported in Microsoft Edge.
Promise-based model
The W3C Encrypted Media Extensions specification has changed from an event-driven model to a new model based on JavaScript Promises. Microsoft Edge introduces support for this new model. The legacy model will still be supported in IE11.
The following table summarizes the Promise-based API changes across versions.
EME API area | IE11 | Microsoft Edge |
---|---|---|
close method (MediaKeySession) | No return type | Return type: Promise<void> |
update method (MediaKeySession) | void update(Uint8Array key); | Promise<void> update(BufferSource response) |
setMediaKeys method (HTMLMediaElement) | No return type | Return type: Promise<void> |
Microsoft Edge also introduces support for new APIs using the promised-based model. See the Other EME updates table below for a list of new APIs in Microsoft Edge.
Other EME updates
The W3C Encrypted Media Extensions specification has changed significantly. Microsoft Edge now supports these new and updated APIs.
The following table summarizes the API changes across versions.
EME API area | IE11 | Microsoft Edge |
---|---|---|
MSMediaKeyError object | Supported | Not supported. Replaced with DOMExceptions |
code property | Supported | Not supported |
systemCode property | Supported | Not supported |
MSMediaKeyNeededEvent object | Supported | Not supported |
mskeyadded event | Supported | Not supported |
mskeyerror event | Supported | Not supported |
mskeymessage event | Supported | Not supported |
onmsneedkey event | Supported | Not supported |
isTypeSupported method | Supported | Not supported |
msKeys property | Supported | Not supported |
destinationURL property | Supported | Not supported |
createSession method | Parameters: type, initData | Parameter: sessionType |
message property | Type: Uint8Array | Type: ArrayBuffer |
MediaKeySystemAccess object | Not supported | Supported |
setServerCertificate method | Not supported | Supported |
requestMediaKeySystemAccess method | Not supported | Supported |
getConfiguration method | Not supported | Supported |
createMediaKeys method | Not supported | Supported |
closed property | Not supported | Supported |
generateRequest method | Not supported | Supported |
load method | Not supported | Supported |
remove | Not supported | Supported |
messageType property | Not supported | Supported |
keystatuseschange event | Not supported | Supported |
message event | Not supported | Supported |
mediaKeys property | Not supported | Supported |
onencrypted event handler | Not supported | Supported |
MediaEncryptedEvent object | Not supported | Supported |
initDataType property | Not supported | Supported |
encrypted event | Not supported | Supported |
waitingforkey event | Not supported | Supported |
expiration property | Not supported | Supported |
MediaKeyStatusMap object | Not supported | Supported |
forEach method | Not supported | Supported |
get method | Not supported | Supported |
has method | Not supported | Supported |