From MozillaWiki
Jump to: navigation, search


From Henri Sivonen's "What is EME?":

Encrypted Media Extensions (EME) is a JavaScript API for playing DRMed video content in HTML. A DRM component called a Content Decryption Module (CDM) decrypts, decodes, and displays the video. A JavaScript program coordinates the process using the EME API to pass messages between the CDM and a server that provides decryption keys and content.


Hollywood studios require companies that license movies for streaming use DRM between the streaming company and the end user. On the Web, this has traditionally been done by using the Microsoft PlayReady DRM component inside the Silverlight plug-in or the Adobe Access DRM component inside the Flash Player. As the Web platform gains more capabilities, general purpose plug-ins like Silverlight or Flash can be phased out.


  • Anthony Jones <ajones>, Gecko Media engineering manager
  • Henri Sivonen <hsivonen>, EME standardization
  • Chris Pearce <cpearce>, engineer: EME
  • Edwin Flores <eflores>, engineer: EME
  • Bob Owen <bowen>, engineer: Windows CDM sandboxing
  • Georg Fritzsche <gfritzsche>, engineer: CDM plugin UX
  • Matt Noorenberghe <MattN>, engineer: EME UI
  • Sevaan Franks <sfranks>, UX designer
  • Chris AtLee <catlee>, release engineer
  • Chris Peterson <cpeterson>, program manager
  • Joe Cheng <jcheng>, Firefox OS product manager
  • Marco Chen <mchen>, Firefox OS Connected Devices engineering manager
  • CJ Ku <cku>, Firefox OS Multimedia Platform engineering manager


Platform Support

Which streaming services use which DRM on which platforms?

Service Windows Vista–10 Windows XP Mac OS X Linux
Amazon Video Widevine CDM Silverlight Widevine CDM Widevine CDM?

(Widevine CDM on Chrome)

Netflix Widevine CDM Silverlight Widevine CDM Widevine CDM
YouTube Widevine CDM Flash Access Widevine CDM Widevine CDM?

(Widevine CDM on Chrome)


Deliver EME for Firefox on Windows Vista and later.
ID Summary Whiteboard Keywords Assigned to Status
925570 Tracking: Process sandboxing work feature, meta NEW
1011491 [tracking] Tighten Windows GMP sandbox policies meta Bob Owen (:bobowen) ASSIGNED
1016711 [EME] Clean up MediaKeyError ASSIGNED
1021232 [META] EME Sandbox for Linux meta Jed Davis [:jld] (⏰UTC-6) NEW
1021235 EME Sandbox for Mac NEW
1038337 GMP plugins do a DISPATCH_SYNC to the GMP thread from xpcom-shutdown Randell Jesup [:jesup] NEW
1038527 Reduce resource consumption <video> elements in Desktop Firefox NEW
1050521 Make GMPService init async NEW
1054621 Create "malicious" media plugins to test GMP sandboxing sb+ NEW
1066857 Security Review: EME plugins NEW
1071421 [EME] Provide seeded platform RNG to EME plugins NEW
1072719 Provide way for GMPs to specify what profiles/levels they support NEW
1074017 [EME] Better debug facilities for GMP developers NEW
1086668 Implement blocklist handling for OpenH264 / GMP NEW
1111897 [EME] promise rejection should log JS line number to WebConsole NEW
1112895 Design and implement EME equivalent of "Privacy -> Show Cookies" UI to enumerate and remove origins' EME/DRM license information NEW
1134066 [EME] MediaKeySystemOptions changed NEW
1136491 [EME] Query for GMP updates if content requests a newer CDM version NEW
1141888 GMPParent::AbortAsyncShutdown doesn't really stop GMPChild from sending AsyncShutdownComplete NEW
1142899 [EME] Enable EME on B2G NEW
1146459 Document the Encrypted Media Extensions (EME) API on MDN NEW
1148179 [EME] Tests to provide keys before track data Gerald Squelart [:gerald] NEW
1149732 GMPInstallManager does a main thread IO [qf:p1] main-thread-io NEW
1150375 GMP storage entries get created for origins using the Clear Key CDM NEW
1151693 [EME] Tests to verify loaded data Gerald Squelart [:gerald] NEW
1152170 [EME] test_eme_persistent_sessions should handle multi-stream cases Gerald Squelart [:gerald] NEW
1152952 Support throttled CDM updates Chris Peterson [:cpeterson] NEW
1153032 [EME] Make tests more predictable Gerald Squelart [:gerald] NEW
1162217 Intermittent test_eme_persistent_sessions.html | video-only with 2 keys, CORS-1 got error event; [object Event] - expected PASS intermittent-failure NEW
1163880 Implement gmp-clearkey decoder for Mac Gerald Squelart [:gerald] NEW
1164925 31.1% win7 main normal file io bytes regression on inbound (v.40) from revision b3d61b6150fd [talos_regression] perf, regression NEW
1169497 [EME] Diagnostic assert when disabling EME while playing EME content [PTO until 26 April] Chris Pearce (:cpearce) NEW
1173632 [EME] CDM host abort in mozilla::gmp::PGMPVideoDecoderChild::Write(mozilla::gmp::PGMPVideoDecoderChild*, IPC::Message*, bool) crash NEW
1173650 Restore edts in bipbop A/V sync test videos Gerald Squelart [:gerald] NEW
1174018 [EME][GMP] Too many video elements in EME tests cause timeouts Gerald Squelart [:gerald] NEW
1175776 GMPChild should expect exactly one RecvBeginAsyncShutdown if it is async-shutdown-capable Gerald Squelart [:gerald] NEW
1184703 [Netflix] error F7053-1807: not called back (within 8 second timeout) NEW
1187128 [EME][GMP] Child should stop processing messages once an unrecoverable error has happened NEW
1187200 [EME] EME Tests sometimes show cryptic [object Event] errors NEW
1187903 Intermittent test_eme_playback.html,test_eme_stream_capture_blocked_case2.html,test_eme_stream_capture_blocked_case3.html | Test timed out [tests disabled on Windows][leave open] intermittent-failure NEW
1188725 [EME] EME playback test should wait for loadeddata before playing Gerald Squelart [:gerald] NEW
1191200 Implement EncryptedAudioSink for EME HW CDM rendering data path Kilik Kuo [:kikuo] NEW
1264461 [EME] Nuke GMP storage when profile copied between machines NEW
1282885 Intermittent dom/media/test/test_eme_persistent_sessions.html | video-only with 2 keys, CORS-1 rejected, reason=InvalidStateError: Promise still outstanding at MediaKeys shutdown intermittent-failure NEW
1297033 Include URLs in GMP crash reports NEW
1306535 [EME] "waitingforkey" not fired if MediaKeys not set on HTMLMediaElement NEW
1322517 [EME] Remove support for EME on insecure contexts [PTO until 26 April] Chris Pearce (:cpearce) NEW
1355252 [EME] Consider configurations passed to navigator.requestMediaKeySystemAccess() without both audioCapabilities and videoCapabilities as unsupported Alfredo Yang (:alfredo) NEW

48 Total; 48 Open (100%); 0 Resolved (0%); 0 Verified (0%);