Title: [278481] trunk/Source/WebCore
Revision
278481
Author
[email protected]
Date
2021-06-04 12:11:56 -0700 (Fri, 04 Jun 2021)

Log Message

Port MediaKeySystemAccess & MediaCapabilities to the HTML event loop
https://bugs.webkit.org/show_bug.cgi?id=226646

Reviewed by Eric Carlson.

Port MediaKeySystemAccess & MediaCapabilities to the HTML event loop instead of using
a global Timer. Most of the media code has been ported to the HTML event loop already.

* Modules/encryptedmedia/MediaKeySystemAccess.cpp:
(WebCore::MediaKeySystemAccess::createMediaKeys):
* Modules/encryptedmedia/MediaKeySystemAccess.h:
* Modules/mediacapabilities/MediaCapabilities.cpp:
(WebCore::MediaCapabilities::decodingInfo):
(WebCore::MediaCapabilities::encodingInfo):
* Modules/mediacapabilities/MediaCapabilities.h:
* Modules/mediacapabilities/MediaCapabilities.idl:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (278480 => 278481)


--- trunk/Source/WebCore/ChangeLog	2021-06-04 19:03:13 UTC (rev 278480)
+++ trunk/Source/WebCore/ChangeLog	2021-06-04 19:11:56 UTC (rev 278481)
@@ -1,5 +1,24 @@
 2021-06-04  Chris Dumez  <[email protected]>
 
+        Port MediaKeySystemAccess & MediaCapabilities to the HTML event loop
+        https://bugs.webkit.org/show_bug.cgi?id=226646
+
+        Reviewed by Eric Carlson.
+
+        Port MediaKeySystemAccess & MediaCapabilities to the HTML event loop instead of using
+        a global Timer. Most of the media code has been ported to the HTML event loop already.
+
+        * Modules/encryptedmedia/MediaKeySystemAccess.cpp:
+        (WebCore::MediaKeySystemAccess::createMediaKeys):
+        * Modules/encryptedmedia/MediaKeySystemAccess.h:
+        * Modules/mediacapabilities/MediaCapabilities.cpp:
+        (WebCore::MediaCapabilities::decodingInfo):
+        (WebCore::MediaCapabilities::encodingInfo):
+        * Modules/mediacapabilities/MediaCapabilities.h:
+        * Modules/mediacapabilities/MediaCapabilities.idl:
+
+2021-06-04  Chris Dumez  <[email protected]>
+
         DOMFileSystem::listDirectory() fails to protect |this| when going to the background thread
         https://bugs.webkit.org/show_bug.cgi?id=226652
 

Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.cpp (278480 => 278481)


--- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.cpp	2021-06-04 19:03:13 UTC (rev 278480)
+++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.cpp	2021-06-04 19:11:56 UTC (rev 278481)
@@ -63,7 +63,7 @@
     // When this method is invoked, the user agent must run the following steps:
     // 1. Let promise be a new promise.
     // 2. Run the following steps in parallel:
-    m_taskQueue.enqueueTask([this, weakDocument = makeWeakPtr(document), promise = WTFMove(promise)] () mutable {
+    document.eventLoop().queueTask(TaskSource::MediaElement, [this, weakDocument = makeWeakPtr(document), promise = WTFMove(promise)] () mutable {
         // 2.1. Let configuration be the value of this object's configuration value.
         // 2.2. Let use distinctive identifier be true if the value of configuration's distinctiveIdentifier member is "required" and false otherwise.
         bool useDistinctiveIdentifier = m_configuration->distinctiveIdentifier == MediaKeysRequirement::Required;

Modified: trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.h (278480 => 278481)


--- trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.h	2021-06-04 19:03:13 UTC (rev 278480)
+++ trunk/Source/WebCore/Modules/encryptedmedia/MediaKeySystemAccess.h	2021-06-04 19:11:56 UTC (rev 278481)
@@ -30,7 +30,6 @@
 
 #if ENABLE(ENCRYPTED_MEDIA)
 
-#include "GenericTaskQueue.h"
 #include "MediaKeySystemConfiguration.h"
 #include <wtf/RefCounted.h>
 #include <wtf/text/WTFString.h>
@@ -57,7 +56,6 @@
     String m_keySystem;
     std::unique_ptr<MediaKeySystemConfiguration> m_configuration;
     Ref<CDM> m_implementation;
-    MainThreadTaskQueue m_taskQueue;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.cpp (278480 => 278481)


--- trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.cpp	2021-06-04 19:03:13 UTC (rev 278480)
+++ trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.cpp	2021-06-04 19:11:56 UTC (rev 278481)
@@ -194,7 +194,7 @@
     // 4. Let p be a new promise.
     // 5. In parallel, run the create a MediaCapabilitiesInfo algorithm with configuration and resolve p with its result.
     // 6. Return p.
-    m_taskQueue.enqueueTask([configuration = WTFMove(configuration), promise = WTFMove(promise), logger = WTFMove(logger), identifier = WTFMove(identifier)] () mutable {
+    document.eventLoop().queueTask(TaskSource::MediaElement, [configuration = WTFMove(configuration), promise = WTFMove(promise), logger = WTFMove(logger), identifier = WTFMove(identifier)] () mutable {
 
         // 2.2.3 If configuration is of type MediaDecodingConfiguration, run the following substeps:
         MediaEngineConfigurationFactory::DecodingConfigurationCallback callback = [promise = WTFMove(promise), logger = WTFMove(logger), identifier = WTFMove(identifier)] (auto info) mutable {
@@ -219,7 +219,7 @@
     });
 }
 
-void MediaCapabilities::encodingInfo(MediaEncodingConfiguration&& configuration, Ref<DeferredPromise>&& promise)
+void MediaCapabilities::encodingInfo(Document& document, MediaEncodingConfiguration&& configuration, Ref<DeferredPromise>&& promise)
 {
     // 2.4 Media Capabilities Interface
     // https://wicg.github.io/media-capabilities/#media-capabilities-interface
@@ -235,7 +235,7 @@
     // 4. Let p be a new promise.
     // 5. In parallel, run the create a MediaCapabilitiesInfo algorithm with configuration and resolve p with its result.
     // 6. Return p.
-    m_taskQueue.enqueueTask([configuration = WTFMove(configuration), promise = WTFMove(promise)] () mutable {
+    document.eventLoop().queueTask(TaskSource::MediaElement, [configuration = WTFMove(configuration), promise = WTFMove(promise)] () mutable {
 
         // 2.2.4. If configuration is of type MediaEncodingConfiguration, run the following substeps:
         MediaEngineConfigurationFactory::EncodingConfigurationCallback callback = [promise = WTFMove(promise)] (auto info) mutable {

Modified: trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.h (278480 => 278481)


--- trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.h	2021-06-04 19:03:13 UTC (rev 278480)
+++ trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.h	2021-06-04 19:11:56 UTC (rev 278481)
@@ -25,7 +25,6 @@
 
 #pragma once
 
-#include "GenericTaskQueue.h"
 #include <wtf/RefCounted.h>
 
 namespace WebCore {
@@ -38,10 +37,7 @@
 class MediaCapabilities : public RefCounted<MediaCapabilities> {
 public:
     void decodingInfo(Document&, MediaDecodingConfiguration&&, Ref<DeferredPromise>&&);
-    void encodingInfo(MediaEncodingConfiguration&&, Ref<DeferredPromise>&&);
-
-private:
-    MainThreadTaskQueue m_taskQueue;
+    void encodingInfo(Document&, MediaEncodingConfiguration&&, Ref<DeferredPromise>&&);
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.idl (278480 => 278481)


--- trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.idl	2021-06-04 19:03:13 UTC (rev 278480)
+++ trunk/Source/WebCore/Modules/mediacapabilities/MediaCapabilities.idl	2021-06-04 19:11:56 UTC (rev 278481)
@@ -30,5 +30,5 @@
     Exposed=Window
 ] interface MediaCapabilities {
     [CustomEnabled, CallWith=Document] Promise<MediaCapabilitiesDecodingInfo> decodingInfo(MediaDecodingConfiguration configuration);
-    [CustomEnabled] Promise<MediaCapabilitiesEncodingInfo> encodingInfo(MediaEncodingConfiguration configuration);
+    [CustomEnabled, CallWith=Document] Promise<MediaCapabilitiesEncodingInfo> encodingInfo(MediaEncodingConfiguration configuration);
 };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to