Closed Bug 1898344 Opened 2 months ago Closed 1 month ago

Support MediaCapabilitiesKeySystemConfiguration

Categories

(Core :: Audio/Video: Playback, task, P1)

task

Tracking

()

RESOLVED FIXED
129 Branch
Tracking Status
relnote-firefox --- ?
firefox129 --- fixed

People

(Reporter: alwu, Assigned: alwu, NeedInfo)

References

(Blocks 1 open bug, )

Details

(Keywords: dev-doc-needed)

Attachments

(10 files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

Currently Firefox hasn't implemented MediaCapabilitiesKeySystemConfiguration in MediaDecodingConfiguration. Chromium has supported that but WebKit hasn't supported that yet.

This bug will add the implementation for MediaCapabilitiesKeySystemConfiguration and then allows website to request a MediaCapabilitiesDecodingInfo via decodingInfo() method.

Severity: -- → N/A
Type: defect → task
Priority: P2 → P3
Priority: P3 → P1
Depends on: 1898588

We also need to implement MediaCapabilitiesDecodingInfo.

Media Capabilities has been enabled long enough and has been a standard
feature, it's no need to guard it by the preference anymore.

Depends on D212321

Depends on D212323

Attachment #9405099 - Attachment description: WIP: Bug 1898344 - part1 : implement MediaCapabilitiesKeySystemConfiguration and KeySystemTrackConfiguration. → Bug 1898344 - part1 : implement MediaCapabilitiesKeySystemConfiguration and KeySystemTrackConfiguration.
Attachment #9405100 - Attachment description: WIP: Bug 1898344 - part2 : split the creation of MediaCapabilitiesInfo into another function and reject the promise properly when error occurs. → Bug 1898344 - part2 : split the creation of MediaCapabilitiesInfo into another function and reject the promise properly when error occurs.
Attachment #9405101 - Attachment description: WIP: Bug 1898344 - part3 : remove the pref 'media.media-capabilities.enable'. → Bug 1898344 - part3 : remove the pref 'media.media-capabilities.enable'.
Attachment #9405102 - Attachment description: WIP: Bug 1898344 - part4 : make MediaCapabilitiesInfo a dictionary to match the spec. → Bug 1898344 - part4 : make MediaCapabilitiesInfo a dictionary to match the spec.
Attachment #9405103 - Attachment description: WIP: Bug 1898344 - part5 : implement MediaCapabilitiesDecodingInfo. → Bug 1898344 - part5 : implement MediaCapabilitiesDecodingInfo.
Attachment #9405104 - Attachment description: WIP: Bug 1898344 - part6 : use request's methods to resolve/reject promise. → Bug 1898344 - part6 : use request's methods to resolve/reject promise.
Attachment #9405105 - Attachment description: WIP: Bug 1898344 - part7 : implement a method to return a new media key system access via MozPromise. → Bug 1898344 - part7 : implement a method to return a new media key system access via MozPromise.
Attachment #9405106 - Attachment description: WIP: Bug 1898344 - part8 : create a media key system access for supported MediaCapabilitiesKeySystemConfiguration. → Bug 1898344 - part8 : create a media key system access for supported MediaCapabilitiesKeySystemConfiguration.

Depends on D212327

These prefs are removed:

  • media.media-capabilities.enabled
Blocks: old-prefs
Keywords: dev-doc-needed
Pushed by alwu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c130ec4b7353
part1 : implement MediaCapabilitiesKeySystemConfiguration and KeySystemTrackConfiguration. r=media-playback-reviewers,webidl,smaug,padenot
https://hg.mozilla.org/integration/autoland/rev/9e435366c2b7
part2 : split the creation of MediaCapabilitiesInfo into another function and reject the promise properly when error occurs. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/c2f20930bfed
part3 : remove the pref 'media.media-capabilities.enable'. r=media-playback-reviewers,webidl,saschanaz,padenot
https://hg.mozilla.org/integration/autoland/rev/7c59df042312
part4 : make MediaCapabilitiesInfo a dictionary to match the spec. r=media-playback-reviewers,webidl,smaug,padenot
https://hg.mozilla.org/integration/autoland/rev/391230484cf6
part5 : implement MediaCapabilitiesDecodingInfo. r=media-playback-reviewers,webidl,smaug,padenot
https://hg.mozilla.org/integration/autoland/rev/c83e42f9270b
part6 : use request's methods to resolve/reject promise. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/30097a228b33
part7 : implement a method to return a new media key system access via MozPromise. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/990f497dd1ac
part8 : create a media key system access for supported MediaCapabilitiesKeySystemConfiguration. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/7aa44b36fdf3
part9 : enable wpt tests. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/4269549304d0
part10 : ensure the type of the decoding config is the same as the type of key system config. r=media-playback-reviewers,padenot

Backed out for causing reftest crashes on crashtests/1608286.html and mochitest failures on test_interfaces.html and test_serviceworker_interfaces.html

[task 2024-06-10T18:52:43.749Z] 18:52:43     INFO - REFTEST TEST-START | dom/media/test/crashtests/1608286.html
[task 2024-06-10T18:52:43.750Z] 18:52:43     INFO - REFTEST TEST-LOAD | file:///D:/task_171804370111686/build/tests/reftest/tests/dom/media/test/crashtests/1608286.html | 768 / 4037 (19%)
[task 2024-06-10T18:52:43.790Z] 18:52:43     INFO - [Parent 1976, Main Thread] WARNING: NS_ENSURE_TRUE(she && she->mInfo->mSharedState.Get()) failed: file /builds/worker/checkouts/gecko/docshell/shistory/SessionHistoryEntry.cpp:1159
[task 2024-06-10T18:52:44.042Z] 18:52:44     INFO - [Parent 1976, IPC I/O Parent] WARNING: Call to Send() failed: file /builds/worker/checkouts/gecko/ipc/glue/NodeChannel.cpp:199
[task 2024-06-10T18:52:44.042Z] 18:52:44     INFO - [Parent 1976, IPC I/O Parent] WARNING: [1.1]: Dropping message '<null>'; no connection to unknown peer 5D5795066035C96A.466C94BEE58A226E: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:365
[task 2024-06-10T18:52:44.044Z] 18:52:44     INFO - [Parent 1976, IPC I/O Parent] WARNING: [1.1]: Rejecting introduction request from 'C329E33867EBD65C.F6D545CD58E64EDA' for unknown peer '5D5795066035C96A.466C94BEE58A226E': file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:700
[task 2024-06-10T18:52:44.045Z] 18:52:44     INFO - [Parent 1976, Main Thread] WARNING: IPC Connection Error: [Parent][PContentParent] Send(msgname=PContent::Reply_DiscardBrowsingContext) Channel error: cannot send/recv: file /builds/worker/checkouts/gecko/ipc/glue/MessageChannel.cpp:1943
[task 2024-06-10T18:52:44.046Z] 18:52:44     INFO - [Parent 1976, IPC I/O Parent] WARNING: [1.1]: Rejecting introduction request from 'A5C17C53E4FBF87.42C908B9DDCCCD92' for unknown peer '5D5795066035C96A.466C94BEE58A226E': file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:700
[task 2024-06-10T18:52:44.047Z] 18:52:44     INFO - [RDD 2540, IPC I/O Child] WARNING: [C329E33867EBD65C.F6D545CD58E64EDA]: Could not be introduced to peer 5D5795066035C96A.466C94BEE58A226E: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:629
[task 2024-06-10T18:52:44.047Z] 18:52:44     INFO - [Utility 8784, IPC I/O Child] WARNING: [A5C17C53E4FBF87.42C908B9DDCCCD92]: Could not be introduced to peer 5D5795066035C96A.466C94BEE58A226E: file /builds/worker/checkouts/gecko/ipc/glue/NodeController.cpp:629
[task 2024-06-10T18:52:44.049Z] 18:52:44     INFO - [Parent 1976, ProcessHangMon] WARNING: IPC message 'PProcessHangMonitor::Msg_RequestContentJSInterrupt' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:551
[task 2024-06-10T18:52:44.050Z] 18:52:44     INFO - [Parent 1976, Main Thread] WARNING: IPC message 'PBrowser::Msg_UpdateNativeWindowHandle' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:551
[task 2024-06-10T18:52:44.051Z] 18:52:44     INFO - [Parent 1976, Main Thread] WARNING: IPC message 'PBrowser::Msg_Destroy' discarded: actor cannot send: file /builds/worker/checkouts/gecko/ipc/glue/ProtocolUtils.cpp:551
[task 2024-06-10T18:52:44.051Z] 18:52:44     INFO - [Parent 1976, Main Thread] WARNING: No build ID mismatch: file /builds/worker/checkouts/gecko/dom/base/nsFrameLoader.cpp:3743
[task 2024-06-10T18:52:44.052Z] 18:52:44    ERROR - A content process crashed and MOZ_CRASHREPORTER_SHUTDOWN is set, shutting down
[task 2024-06-10T18:52:44.611Z] 18:52:44     INFO - 1718045564610	Marionette	TRACE	Received observer notification quit-application
[task 2024-06-10T18:52:44.612Z] 18:52:44     INFO - 1718045564611	Marionette	INFO	Stopped listening on port 2828
[task 2024-06-10T18:52:44.613Z] 18:52:44     INFO - 1718045564612	Marionette	DEBUG	Marionette stopped listening
[task 2024-06-10T18:52:44.652Z] 18:52:44     INFO - [GPU 2356, Compositor] WARNING: Possibly dropping task posted to updater thread: file /builds/worker/checkouts/gecko/gfx/layers/apz/src/APZUpdater.cpp:395
[task 2024-06-10T18:52:44.663Z] 18:52:44     INFO - [Parent 1976, Main Thread] WARNING: NS_ENSURE_TRUE(windowGlobalParent) failed: file /builds/worker/checkouts/gecko/toolkit/components/antitracking/bouncetrackingprotection/BounceTrackingState.cpp:433
[task 2024-06-10T18:52:44.666Z] 18:52:44     INFO - [GPU 2356, Compositor] WARNING: Possibly dropping task posted to updater thread: file /builds/worker/checkouts/gecko/gfx/layers/apz/src/APZUpdater.cpp:395
[task 2024-06-10T18:52:44.673Z] 18:52:44     INFO - [GPU 2356, Compositor] WARNING: Possibly dropping task posted to updater thread: file /builds/worker/checkouts/gecko/gfx/layers/apz/src/APZUpdater.cpp:395
[task 2024-06-10T18:52:44.686Z] 18:52:44     INFO - [GPU 2356, Compositor] WARNING: Possibly dropping task posted to updater thread: file /builds/worker/checkouts/gecko/gfx/layers/apz/src/APZUpdater.cpp:395
[task 2024-06-10T18:52:44.745Z] 18:52:44     INFO - [Parent 1976, Socket Thread] WARNING: cannot post event if not initialized: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpConnectionMgr.cpp:240
[task 2024-06-10T18:52:44.753Z] 18:52:44     INFO - [Parent 1976, Socket Thread] WARNING: cannot post event if not initialized: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpConnectionMgr.cpp:240
[task 2024-06-10T18:52:44.753Z] 18:52:44     INFO - [Parent 1976, Socket Thread] WARNING: cannot post event if not initialized: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpConnectionMgr.cpp:240
[task 2024-06-10T18:52:44.754Z] 18:52:44     INFO - [Parent 1976, Socket Thread] WARNING: cannot post event if not initialized: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpConnectionMgr.cpp:240
[task 2024-06-10T18:52:44.755Z] 18:52:44     INFO - [Parent 1976, Socket Thread] WARNING: cannot post event if not initialized: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpConnectionMgr.cpp:240
[task 2024-06-10T18:52:44.755Z] 18:52:44     INFO - !!! error running onStopped callback: TypeError: callback is not a function
[task 2024-06-10T18:52:44.756Z] 18:52:44     INFO - [Parent 1976, Socket Thread] WARNING: cannot post event if not initialized: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpConnectionMgr.cpp:240
[task 2024-06-10T18:52:44.756Z] 18:52:44     INFO - [Parent 1976, Socket Thread] WARNING: cannot post event if not initialized: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpConnectionMgr.cpp:240
[task 2024-06-10T18:52:44.757Z] 18:52:44     INFO - [Parent 1976, Socket Thread] WARNING: cannot post event if not initialized: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpConnectionMgr.cpp:240
[task 2024-06-10T18:52:44.974Z] 18:52:44     INFO - [Parent 1976, Main Thread] WARNING: BlockShutdown: Init failed: 'NS_FAILED(rv)', file /builds/worker/checkouts/gecko/toolkit/components/antitracking/bouncetrackingprotection/BounceTrackingProtectionStorage.cpp:304
[task 2024-06-10T18:52:45.058Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: quota manager shutdown step: '0.000000s: startCrashBrowserTimer', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.058Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: quota manager shutdown step: '0.000000s: initiateShutdownWorkThreads', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.058Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: idb: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.058Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: cache: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.058Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: sdb: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.058Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: fs: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.063Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: ls: '0.000000s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.064Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: quota manager shutdown step: '0.000000s: startKillActorsTimer', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.064Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: idb: '0.000000s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.065Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: idb: '0.000000s: gLiveDatabaseHashtable entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.065Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: idb: '0.015000s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.066Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: idb: '0.015000s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.067Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: idb: '0.015000s: gLiveDatabaseHashtable entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.068Z] 18:52:45     INFO - [Parent 1976, QuotaManager IO] WARNING: quota manager shutdown step: '0.015000s: ShutdownStorageOp::DoDirectoryWork -> ShutdownStorageInternal.', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.069Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: quota manager shutdown step: '0.031000s: stopKillActorsTimer', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.069Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: quota manager shutdown step: '0.031000s: shutdownAndJoinWorkThreads', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
[task 2024-06-10T18:52:45.070Z] 18:52:45     INFO - [Parent 1976, IPDL Background] WARNING: idb: '0.031000s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:2231
<...>
[task 2024-06-10T18:52:45.939Z] 18:52:45     INFO - [Parent 1976, Main Thread] WARNING: NS_ENSURE_TRUE(!!svc) failed: file /builds/worker/checkouts/gecko/dom/file/uri/BlobURLProtocolHandler.cpp:507
[task 2024-06-10T18:52:45.939Z] 18:52:45     INFO - [Parent 1976, Main Thread] WARNING: NS_ENSURE_SUCCESS_VOID(rv) failed with result 0x8000FFFF (NS_ERROR_UNEXPECTED): file /builds/worker/checkouts/gecko/dom/file/uri/BlobURLProtocolHandler.cpp:407
[task 2024-06-10T18:52:45.940Z] 18:52:45     INFO - [Parent 1976, Main Thread] WARNING: NS_ENSURE_TRUE(!!svc) failed: file /builds/worker/checkouts/gecko/dom/file/uri/BlobURLProtocolHandler.cpp:507
[task 2024-06-10T18:52:46.060Z] 18:52:46     INFO - REFTEST INFO | Copy/paste: D:/task_171804370111686/fetches\minidump-stackwalk\minidump-stackwalk.exe --symbols-url=https://symbols.mozilla.org/ --cyborg=C:\Users\task_171804370111686\AppData\Local\Temp\tmpmcw5ks0n\32d9f110-eeaf-4208-bdb4-f31bbbd87617.trace C:\Users\task_171804370111686\AppData\Local\Temp\tmpannzkehw.mozrunner\minidumps\32d9f110-eeaf-4208-bdb4-f31bbbd87617.dmp D:\task_171804370111686\build\symbols
[task 2024-06-10T18:52:57.301Z] 18:52:57     INFO - REFTEST INFO | Saved minidump as D:\task_171804370111686\build\blobber_upload_dir\32d9f110-eeaf-4208-bdb4-f31bbbd87617.dmp
[task 2024-06-10T18:52:57.317Z] 18:52:57     INFO - REFTEST INFO | Saved app info as D:\task_171804370111686\build\blobber_upload_dir\32d9f110-eeaf-4208-bdb4-f31bbbd87617.extra
[task 2024-06-10T18:52:57.692Z] 18:52:57     INFO - REFTEST PROCESS-CRASH | application crashed [@ JS::Heap<JSObject *>::exposeToActiveJS] | dom/media/test/crashtests/1608286.html 
[task 2024-06-10T18:52:57.692Z] 18:52:57     INFO - Process type: content
[task 2024-06-10T18:52:57.702Z] 18:52:57     INFO - Process pid: 6296
[task 2024-06-10T18:52:57.702Z] 18:52:57     INFO - Crash dump filename: C:\Users\task_171804370111686\AppData\Local\Temp\tmpannzkehw.mozrunner\minidumps\32d9f110-eeaf-4208-bdb4-f31bbbd87617.dmp
[task 2024-06-10T18:52:57.702Z] 18:52:57     INFO - Operating system: Windows NT
[task 2024-06-10T18:52:57.702Z] 18:52:57     INFO -                   10.0.22621
[task 2024-06-10T18:52:57.702Z] 18:52:57     INFO - CPU: x86
[task 2024-06-10T18:52:57.702Z] 18:52:57     INFO -      GenuineIntel family 6 model 106 stepping 6
[task 2024-06-10T18:52:57.702Z] 18:52:57     INFO -      8 CPUs
[task 2024-06-10T18:52:57.702Z] 18:52:57     INFO - 
[task 2024-06-10T18:52:57.702Z] 18:52:57     INFO - Crash reason:  EXCEPTION_ACCESS_VIOLATION_READ
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO - Crash address: 0x00000014
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO - Process uptime: 16 seconds
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO - 
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO - Thread 0 MainThread (crashed)
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -  0  xul.dll!JS::Heap<JSObject *>::exposeToActiveJS() const [RootingAPI.h:4269549304d061879885d910f13e6bbb334feff3 : 348]
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -     Found by: inlining
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -  1  xul.dll!JS::Heap<JSObject *>::get() const [RootingAPI.h:4269549304d061879885d910f13e6bbb334feff3 : 351]
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -     Found by: inlining
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -  2  xul.dll!JS::Heap<JSObject *>::operator JSObject *const &() const [RootingAPI.h:4269549304d061879885d910f13e6bbb334feff3 : 343]
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -     Found by: inlining
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -  3  xul.dll!mozilla::dom::Promise::PromiseObj() const [Promise.h:4269549304d061879885d910f13e6bbb334feff3 : 327]
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -     Found by: inlining
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -  4  xul.dll!mozilla::dom::ToJSValue(JSContext*, mozilla::dom::Promise&, JS::MutableHandle<JS::Value>) [ToJSValue.cpp:4269549304d061879885d910f13e6bbb334feff3 : 64 + 0x0]
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -      eip = 0x67f7f7bd    esp = 0x0083ce70    ebp = 0x0083ce8c    ebx = 0x0083d200
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -      esi = 0x0a4c80b8    edi = 0x00000000    eax = 0x1c2fbe90    ecx = 0x04c435c0
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -      edx = 0x00000000 eflags = 0x00010206
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -     Found by: given as instruction pointer in context
[task 2024-06-10T18:52:57.703Z] 18:52:57     INFO -  5  xul.dll!mozilla::dom::ToJSValue(JSContext*, RefPtr<mozilla::dom::Promise> const&, JS::MutableHandle<JS::Value>) [ToJSValue.h:4269549304d061879885d910f13e6bbb334feff3 : 268]
[task 2024-06-10T18:52:57.704Z] 18:52:57     INFO -     Found by: inlining
[task 2024-06-10T18:52:57.704Z] 18:52:57     INFO -  6  xul.dll!mozilla::dom::Navigator_Binding::requestMediaKeySystemAccess(JSContext*, JS::Handle<JSObject *>, void*, JSJitMethodCallArgs const&) [NavigatorBinding.cpp: : 2088]
[task 2024-06-10T18:52:57.704Z] 18:52:57     INFO -     Found by: inlining
[task 2024-06-10T18:52:57.704Z] 18:52:57     INFO -  7  xul.dll!mozilla::dom::Navigator_Binding::requestMediaKeySystemAccess_promiseWrapper(JSContext*, JS::Handle<JSObject *>, void*, JSJitMethodCallArgs const&) [NavigatorBinding.cpp: : 2097 + 0xd4]
[task 2024-06-10T18:52:57.704Z] 18:52:57     INFO -      eip = 0x67413d9d    esp = 0x0083ce94    ebp = 0x0083d2b8    ebx = 0x0083d200
[task 2024-06-10T18:52:57.704Z] 18:52:57     INFO -      esi = 0x00000000    edi = 0x0083d2d8
[task 2024-06-10T18:52:57.704Z] 18:52:57     INFO -     Found by: call frame info
[task 2024-06-10T18:52:57.718Z] 18:52:57     INFO - 78  kernel32.dll!BaseThreadInitThunk + 0x18
[task 2024-06-10T18:52:57.718Z] 18:52:57     INFO -      eip = 0x76a97ba9    esp = 0x0083f790    ebp = 0x0083f798    ebx = 0x00485000
[task 2024-06-10T18:52:57.718Z] 18:52:57     INFO -      esi = 0x04c23410    edi = 0x04c24030
[task 2024-06-10T18:52:57.718Z] 18:52:57     INFO -     Found by: call frame info
[task 2024-06-10T18:52:57.718Z] 18:52:57     INFO - 79  ntdll.dll!__RtlUserThreadStart + 0x2a
[task 2024-06-10T18:52:57.718Z] 18:52:57     INFO -      eip = 0x779abe3b    esp = 0x0083f7a0    ebp = 0x0083f7f0    ebx = 0x00485000
[task 2024-06-10T18:52:57.718Z] 18:52:57     INFO -      esi = 0x04c23410    edi = 0x04c24030
[task 2024-06-10T18:52:57.718Z] 18:52:57     INFO -     Found by: call frame info
[task 2024-06-10T18:52:57.719Z] 18:52:57     INFO - 80  ntdll.dll!_RtlUserThreadStart + 0x1a
[task 2024-06-10T18:52:57.719Z] 18:52:57     INFO -      eip = 0x779abdbf    esp = 0x0083f7f8    ebp = 0x0083f800    ebx = 0x00485000
[task 2024-06-10T18:52:57.719Z] 18:52:57     INFO -      esi = 0x04c23410    edi = 0x04c24030
[task 2024-06-10T18:52:57.719Z] 18:52:57     INFO -     Found by: call frame info
[task 2024-06-10T18:52:57.719Z] 18:52:57     INFO - 
[task 2024-06-10T18:52:57.719Z] 18:52:57     INFO - Thread 1 IPC I/O Child
Flags: needinfo?(alwu)
Flags: needinfo?(alwu)
Pushed by alwu@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9b67ea28d52c
part1 : implement MediaCapabilitiesKeySystemConfiguration and KeySystemTrackConfiguration. r=media-playback-reviewers,webidl,smaug,padenot
https://hg.mozilla.org/integration/autoland/rev/e1eeb9e2fd5a
part2 : split the creation of MediaCapabilitiesInfo into another function and reject the promise properly when error occurs. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/c24cc984dd99
part3 : remove the pref 'media.media-capabilities.enable'. r=media-playback-reviewers,webidl,saschanaz,padenot
https://hg.mozilla.org/integration/autoland/rev/1b862ff20c1c
part4 : make MediaCapabilitiesInfo a dictionary to match the spec. r=media-playback-reviewers,webidl,smaug,padenot
https://hg.mozilla.org/integration/autoland/rev/13d2d84bb7d6
part5 : implement MediaCapabilitiesDecodingInfo. r=media-playback-reviewers,webidl,smaug,padenot
https://hg.mozilla.org/integration/autoland/rev/635ebc6011e1
part6 : use request's methods to resolve/reject promise. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/4529b9ce9e7d
part7 : implement a method to return a new media key system access via MozPromise. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/753750b05d9f
part8 : create a media key system access for supported MediaCapabilitiesKeySystemConfiguration. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/417d30196aa3
part9 : enable wpt tests. r=media-playback-reviewers,padenot
https://hg.mozilla.org/integration/autoland/rev/61461f1a7f18
part10 : ensure the type of the decoding config is the same as the type of key system config. r=media-playback-reviewers,padenot
Blocks: 1689560
Blocks: 1902120

:alwu could you consider nominating this for a release note? (Process info)
We could include it in the nightly release notes.

Flags: needinfo?(alwu)

Release Note Request (optional, but appreciated)
[Why is this notable]: Adding new feature for web developers
[Affects Firefox for Android]: Yes
[Suggested wording]: Support querying encryption key system config in mediaCapabilities.decodingInfo() API
[Links (documentation, blog post, etc)]:
Spec https://w3c.github.io/media-capabilities/#mediacapabilitieskeysystemconfiguration
Explainer : https://github.com/w3c/media-capabilities/blob/main/explainer.md#encryption

relnote-firefox: --- → ?
Flags: needinfo?(alwu)

Thanks, added to the Fx129 nightly release notes, please allow 30 minutes for the site to update.
Keeping the relnote-firefox flag as ? to keep it on the radar for inclusion in the final Fx129 release notes

FF129 MDN docs work can be tracked in https://github.com/mdn/content/issues/34696

My understanding is that this updates MediaCapabilities.decodingInfo() with an additional property added to the configuration argument object keySystemConfiguration that defines config for encrypted media, and which can be used in a secure context in the window thread only. It also causes the returned object to have a new property that contains the original configuration passed in and also a new property keySystemAccess (a MediaKeySystemAccess that can be used for decoding the media.
About right?

The question I have is whether anyone else has implemented this? It looks like Chrome might have a precursor version in Chrome 80 based on:

But not clear if they are updating to match the new spec. What about Safari?

Flags: needinfo?(alwu)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: