There will be two steps to this implementiation: 1. implement the Blink layer to match the spec that recently landed 2. update the backend to take into account encrypted media I will take care of #1, chcunningham@ will do #2.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8bc2e0de111915687cd99980d1a9d9057b41b00d commit 8bc2e0de111915687cd99980d1a9d9057b41b00d Author: Mounir Lamouri <mlamouri@chromium.org> Date: Fri Nov 23 22:47:22 2018 Media Capabilities: split decoding and encoding callbacks in preparation for future changes. Encrypted media will require a different callback as there is a new attribute in the returned type so a WebMediaCapabilitiesDecodingInfo will be introduced. This change allows to cut a lot of boilerplate from the incoming CL. Bug: 907909 Change-Id: I61f6296c4a35678b8d4054d3df703b74471b1afb Reviewed-on: https://chromium-review.googlesource.com/c/1348258 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Cr-Commit-Position: refs/heads/master@{#610682} [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/content/renderer/media_recorder/media_recorder_handler.cc [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/content/renderer/media_recorder/media_recorder_handler.h [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/media/blink/webmediacapabilitiesclient_impl.cc [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/media/blink/webmediacapabilitiesclient_impl.h [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/media/blink/webmediacapabilitiesclient_impl_unittest.cc [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/public/BUILD.gn [add] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/public/platform/modules/media_capabilities/web_media_capabilities_callbacks.h [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/public/platform/modules/media_capabilities/web_media_capabilities_client.h [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/public/platform/modules/media_capabilities/web_media_capabilities_info.h [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/public/platform/web_media_recorder_handler.h [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/renderer/modules/media_capabilities/BUILD.gn [modify] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/renderer/modules/media_capabilities/media_capabilities.cc [rename] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/renderer/modules/media_capabilities/media_capabilities_decoding_info_callbacks.cc [rename] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/renderer/modules/media_capabilities/media_capabilities_decoding_info_callbacks.h [copy] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/renderer/modules/media_capabilities/media_capabilities_encoding_info_callbacks.cc [copy] https://crrev.com/8bc2e0de111915687cd99980d1a9d9057b41b00d/third_party/blink/renderer/modules/media_capabilities/media_capabilities_encoding_info_callbacks.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/81709d3c9f39fd5330849ce086407382d066e848 commit 81709d3c9f39fd5330849ce086407382d066e848 Author: Mounir Lamouri <mlamouri@chromium.org> Date: Tue Nov 27 23:26:16 2018 EncryptedMedia: remove key_system parameter in MediaKeySystemAccess ctor. The parameter isn't needed because the other object already carries the key system information. This CL extends the interface so the Blink object can get the key system from the implementation through it. This is needed to reduce the boilerplate in the Media Capabilities Encrypted Media implementation. Bug: 907909 Change-Id: If59a6fc0ef47292696b5538a70b7fd22fbf024ca Reviewed-on: https://chromium-review.googlesource.com/c/1348731 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Xiaohan Wang <xhwang@chromium.org> Cr-Commit-Position: refs/heads/master@{#611407} [modify] https://crrev.com/81709d3c9f39fd5330849ce086407382d066e848/media/blink/webcontentdecryptionmoduleaccess_impl.cc [modify] https://crrev.com/81709d3c9f39fd5330849ce086407382d066e848/media/blink/webcontentdecryptionmoduleaccess_impl.h [modify] https://crrev.com/81709d3c9f39fd5330849ce086407382d066e848/third_party/blink/public/platform/web_content_decryption_module_access.h [modify] https://crrev.com/81709d3c9f39fd5330849ce086407382d066e848/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.cc [modify] https://crrev.com/81709d3c9f39fd5330849ce086407382d066e848/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.h [modify] https://crrev.com/81709d3c9f39fd5330849ce086407382d066e848/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c16a3ea0952e0b05b86305bf636fe0eee5c06717 commit c16a3ea0952e0b05b86305bf636fe0eee5c06717 Author: Mounir Lamouri <mlamouri@chromium.org> Date: Wed Nov 28 21:21:49 2018 Media Capabilities: implement Blink shell of encrypted media support. This is adding the interface changes, the code checking for corectedness, does type conversion and checks for the edge cases mentioned in spec. This is also adding WPT. Bug: 907909 Change-Id: Ieebe5b25202a403e50a09576ac283690c0f0ba55 Reviewed-on: https://chromium-review.googlesource.com/c/1348972 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Chrome Cunningham <chcunningham@chromium.org> Reviewed-by: Philip Jägenstedt <foolip@chromium.org> Cr-Commit-Position: refs/heads/master@{#611871} [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/public/BUILD.gn [add] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/public/platform/modules/media_capabilities/web_media_capabilities_key_system_configuration.h [add] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/public/platform/modules/media_capabilities/web_media_decoding_configuration.h [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/encryptedmedia/encrypted_media_utils.cc [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/encryptedmedia/encrypted_media_utils.h [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/encryptedmedia/media_key_system_access.cc [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/encryptedmedia/navigator_request_media_key_system_access.cc [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/media_capabilities/DEPS [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/media_capabilities/media_capabilities.cc [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/media_capabilities/media_capabilities.idl [add] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/media_capabilities/media_capabilities_decoding_info.idl [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/media_capabilities/media_capabilities_decoding_info_callbacks.cc [add] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/media_capabilities/media_capabilities_key_system_configuration.idl [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/media_capabilities/media_decoding_configuration.idl [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/modules/modules_idl_files.gni [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/renderer/platform/runtime_enabled_features.json5 [modify] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/web_tests/external/wpt/media-capabilities/decodingInfo.html [add] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/web_tests/external/wpt/media-capabilities/decodingInfoEncryptedMedia.http.html [add] https://crrev.com/c16a3ea0952e0b05b86305bf636fe0eee5c06717/third_party/blink/web_tests/external/wpt/media-capabilities/decodingInfoEncryptedMedia.https.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/744c08f1790ac17cc71626399feff7c90d846ea5 commit 744c08f1790ac17cc71626399feff7c90d846ea5 Author: Mounir Lamouri <mlamouri@chromium.org> Date: Wed Nov 28 23:03:10 2018 Media Capabilities: implement response side of Encrypted Media. This is adding an DecodingInfo class that carries key system access information back and create a MediaKeySystemAccess. This implementation in //media/blink is a stub that is meant to only pass WPT tests at the moment. Bug: 907909 Change-Id: I3bac0087ca3051defb8b47d10fffdb6052814ae9 Reviewed-on: https://chromium-review.googlesource.com/c/1348733 Commit-Queue: Mounir Lamouri <mlamouri@chromium.org> Reviewed-by: Chrome Cunningham <chcunningham@chromium.org> Cr-Commit-Position: refs/heads/master@{#611917} [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/media/blink/webmediacapabilitiesclient_impl.cc [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/media/blink/webmediacapabilitiesclient_impl.h [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/media/blink/webmediacapabilitiesclient_impl_unittest.cc [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/third_party/blink/public/BUILD.gn [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/third_party/blink/public/platform/modules/media_capabilities/web_media_capabilities_callbacks.h [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/third_party/blink/public/platform/modules/media_capabilities/web_media_capabilities_client.h [add] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/third_party/blink/public/platform/modules/media_capabilities/web_media_capabilities_decoding_info.h [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/third_party/blink/public/platform/modules/media_capabilities/web_media_configuration.h [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/third_party/blink/public/platform/modules/media_capabilities/web_media_decoding_configuration.h [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/third_party/blink/renderer/modules/media_capabilities/media_capabilities_decoding_info_callbacks.cc [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/third_party/blink/renderer/modules/media_capabilities/media_capabilities_decoding_info_callbacks.h [modify] https://crrev.com/744c08f1790ac17cc71626399feff7c90d846ea5/third_party/blink/web_tests/external/wpt/media-capabilities/decodingInfoEncryptedMedia.https.html
Comment 1 by bugdroid1@chromium.org
, Nov 23