[webkit-changes] [WebKit/WebKit] ce9671: [EME] Keep MediaKeySystemAccess alive in createMed...

Xabier Rodríguez noreply at github.com
Tue Nov 8 02:58:04 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ce9671b4d61efff2bce123ee2ec64018d9dc86fb
      https://github.com/WebKit/WebKit/commit/ce9671b4d61efff2bce123ee2ec64018d9dc86fb
  Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
  Date:   2022-11-08 (Tue, 08 Nov 2022)

  Changed paths:
    M Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.cpp
    M Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.h
    M Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.idl
    M Source/WebCore/Modules/encryptedmedia/NavigatorEME.cpp

  Log Message:
  -----------
  [EME] Keep MediaKeySystemAccess alive in createMediaKeys() async task
https://bugs.webkit.org/show_bug.cgi?id=247490

Reviewed by Philippe Normand.

Put MediaKeySystemAccess under ActiveDOMObject interface
and make sure that GC won't destroy an object before
it executes its async task and createMediaKeys() func is completed.

Sometimes it happens that GC destroys MediaKeySystemAccess object
in the middle of createMediaKeys() func, before promise is completed
and JS MediaKeys are never created.

This fixes YT Cert Test: EME, WidevineH264MultiMediaKeySessions

Patch based on one by Andrzej Surdej <Andrzej_Surdej at comcast.com> coming from
https://github.com/WebPlatformForEmbedded/WPEWebKit/pull/922 .

* Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.cpp:
(WebCore::MediaKeySystemAccess::create):
(WebCore::MediaKeySystemAccess::MediaKeySystemAccess):
(WebCore::MediaKeySystemAccess::createMediaKeys):
* Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.h:
* Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.idl:
* Source/WebCore/Modules/encryptedmedia/NavigatorEME.cpp:
(WebCore::NavigatorEME::requestMediaKeySystemAccess):
(WebCore::tryNextSupportedConfiguration):

Canonical link: https://commits.webkit.org/256442@main




More information about the webkit-changes mailing list