Enable the unprefixed version of the Encrypted Media Extensions API by default and deprecate the prefixed APIs.
The webkit-prefixed APIs have been enabled by default since M26. The unprefixed API implementation is based on the current version of the spec, which has changed significantly from the unprefixed implementation. The prefixed APIs will be marked deprecated at the same time and removed within a few releases once content providers have switched.
Link to “Intent to Implement” blink-dev discussion
Is this feature supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?
Yes. The Android implementation is missing some minor features due to limitations of Android’s MediaDrm API.
This demo supports both the prefixed and unprefixed APIs. To ensure it uses the unprefixed APIs, enable “Disable prefixed Encrypted Media Extensions” and “Enable Encrypted Media Extensions” in chrome://flags.
EME has support from browser vendors and content providers, and the prefixed EME APIs have been shipping in Chrome for three years. Both existing and potential users of this API are looking forward to the new functionality and compatibility that the unprefixed APIs provide.
Firefox is implementing the latest version of the spec, which should be consistent with Chrome’s unprefixed implementation. IE and Safari currently ship prefixed APIs based on a newer versions of the spec than Chrome’s prefixed implementation but incompatible with the current spec.
Shipping the unprefixed APIs and deprecating the prefixed implementation significantly increases compatibility and reduces author overhead. Chrome’s prefixed implementation is very different from the current spec and other prefixed implementations. Authors wishing to support Chromium, must implement to these obsolete APIs. Enabling the unprefixed implementation will allow them to write reusable code that should also support other browsers as they add support for the latest version of the spec.
For Blink/Chromium, deprecating the old APIs also allows us to simplify and refactor the code, which must currently support two very different APIs.
The spec is still undergoing changes. The team will track these changes and provide a smooth transition for authors as changes are implemented in Blink/Chromium.
The supported key systems are the same as with the prefixed APIs: Chromium supports the Clear Key ("org.w3.clearkey") key system in content/. Content embedders may add additional key systems. Widevine ("com.widevine.alpha") is supported on all six platforms. It is enabled in Chromium on Android (including WebView), which provides a platform-based implementation. On other platforms, it may be enabled by the vendor, as is the case for Google Chrome.
OWP launch tracking bug?
Link to entry on the feature dashboard
EME has support from browser vendors and content providers, and the prefixed EME APIs have been shipping in Chrome for three years
That makes sense. :)I would say that the compatibility risk is pretty high at the moment, as two vendors currently ship incompatible (and prefixed) implementations.Are you aware of any (concrete or otherwise) plans by Internet Explorer or Safari to update their implementation to conform to the latest specification?
I do not see any WebKit bugs for updating the implementation, so it does not seem to be something they currently plan to do.Furthermore, they recently (October, 2014) enabled the API on Windows (for iTunes? Who knows...), That is, their existing API, it seems.That means (at least) three different and incompatible implementations will exist simultaneously once this is shipped. Not cool.Can you maybe try and coordinate this with the two other vendors? Or get any comment from them?I added Jacob Rossi and Brent Fulgham to the thread, perhaps they can get us some answers...
I agree with Rick’s comments that release plans shouldn’t be a major factor for Intent to Ship [tm] but rather comfort level with the latest spec is the more important bit.
I’ve CC’d Jerry Smith who owns our EME implementation. Talking with him, I think we’re pretty comfortable with the latest draft. As for shipping plans, we do intend to update/unprefix our implementation but we don’t have any specific timetable for that work at the moment.
Go for it!