Title: [252890] trunk
Revision
252890
Author
[email protected]
Date
2019-11-26 10:16:04 -0800 (Tue, 26 Nov 2019)

Log Message

Update capturing document media state when entering b/f cache
https://bugs.webkit.org/show_bug.cgi?id=204589

Reviewed by Chris Dumez.

Source/WebCore:

Remove enqueuing the task in configureTrackRendering.
This allows stopTrack to trigger the track rendering configuration and document media state computation.
Covered by updated test.

* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::configureTrackRendering):
(WebCore::MediaStreamTrack::suspend):
(WebCore::MediaStreamTrack::stop): Deleted.
* Modules/mediastream/MediaStreamTrack.h:

LayoutTests:

* http/tests/navigation/page-cache-mediastream-expected.txt:
* http/tests/navigation/page-cache-mediastream.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (252889 => 252890)


--- trunk/LayoutTests/ChangeLog	2019-11-26 17:57:53 UTC (rev 252889)
+++ trunk/LayoutTests/ChangeLog	2019-11-26 18:16:04 UTC (rev 252890)
@@ -1,5 +1,15 @@
 2019-11-26  youenn fablet  <[email protected]>
 
+        Update capturing document media state when entering b/f cache
+        https://bugs.webkit.org/show_bug.cgi?id=204589
+
+        Reviewed by Chris Dumez.
+
+        * http/tests/navigation/page-cache-mediastream-expected.txt:
+        * http/tests/navigation/page-cache-mediastream.html:
+
+2019-11-26  youenn fablet  <[email protected]>
+
         Allow b/f cache in case of connected peer connections
         https://bugs.webkit.org/show_bug.cgi?id=204583
 

Modified: trunk/LayoutTests/http/tests/navigation/page-cache-mediastream-expected.txt (252889 => 252890)


--- trunk/LayoutTests/http/tests/navigation/page-cache-mediastream-expected.txt	2019-11-26 17:57:53 UTC (rev 252889)
+++ trunk/LayoutTests/http/tests/navigation/page-cache-mediastream-expected.txt	2019-11-26 18:16:04 UTC (rev 252890)
@@ -7,6 +7,7 @@
 pagehide - entering cache
 pageshow - from cache
 PASS Page did enter and was restored from the page cache
+page media state is 'IsNotPlaying'
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/LayoutTests/http/tests/navigation/page-cache-mediastream.html (252889 => 252890)


--- trunk/LayoutTests/http/tests/navigation/page-cache-mediastream.html	2019-11-26 17:57:53 UTC (rev 252889)
+++ trunk/LayoutTests/http/tests/navigation/page-cache-mediastream.html	2019-11-26 18:16:04 UTC (rev 252890)
@@ -17,6 +17,9 @@
         testPassed("Page did enter and was restored from the page cache");
         restoredFromPageCache = true;
 
+        if (window.internals)
+            debug("page media state is '" + internals.pageMediaState() + "'");
+
         if (!canvasStream.active)
             testFailed("Canvas stream is not active");
 

Modified: trunk/Source/WebCore/ChangeLog (252889 => 252890)


--- trunk/Source/WebCore/ChangeLog	2019-11-26 17:57:53 UTC (rev 252889)
+++ trunk/Source/WebCore/ChangeLog	2019-11-26 18:16:04 UTC (rev 252890)
@@ -1,5 +1,23 @@
 2019-11-26  youenn fablet  <[email protected]>
 
+        Update capturing document media state when entering b/f cache
+        https://bugs.webkit.org/show_bug.cgi?id=204589
+
+        Reviewed by Chris Dumez.
+
+        Remove enqueuing the task in configureTrackRendering.
+        This allows stopTrack to trigger the track rendering configuration and document media state computation.
+        Covered by updated test.
+
+        * Modules/mediastream/MediaStreamTrack.cpp:
+        (WebCore::MediaStreamTrack::MediaStreamTrack):
+        (WebCore::MediaStreamTrack::configureTrackRendering):
+        (WebCore::MediaStreamTrack::suspend):
+        (WebCore::MediaStreamTrack::stop): Deleted.
+        * Modules/mediastream/MediaStreamTrack.h:
+
+2019-11-26  youenn fablet  <[email protected]>
+
         Allow b/f cache in case of connected peer connections
         https://bugs.webkit.org/show_bug.cgi?id=204583
 

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (252889 => 252890)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2019-11-26 17:57:53 UTC (rev 252889)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2019-11-26 18:16:04 UTC (rev 252890)
@@ -70,7 +70,6 @@
 MediaStreamTrack::MediaStreamTrack(ScriptExecutionContext& context, Ref<MediaStreamTrackPrivate>&& privateTrack)
     : ActiveDOMObject(&context)
     , m_private(WTFMove(privateTrack))
-    , m_taskQueue(context)
     , m_isCaptureTrack(m_private->isCaptureTrack())
     , m_mediaSession(PlatformMediaSession::create(*this))
 {
@@ -535,24 +534,16 @@
 
 void MediaStreamTrack::configureTrackRendering()
 {
-    m_taskQueue.enqueueTask([this] {
-        if (m_mediaSession && m_private->type() == RealtimeMediaSource::Type::Audio)
-            m_mediaSession->canProduceAudioChanged();
+    if (m_mediaSession && m_private->type() == RealtimeMediaSource::Type::Audio)
+        m_mediaSession->canProduceAudioChanged();
 
-        if (auto document = this->document())
-            document->updateIsPlayingMedia();
-    });
+    if (auto document = this->document())
+        document->updateIsPlayingMedia();
 
     // 4.3.1
     // ... media from the source only flows when a MediaStreamTrack object is both unmuted and enabled
 }
 
-void MediaStreamTrack::stop()
-{
-    stopTrack();
-    m_taskQueue.close();
-}
-
 const char* MediaStreamTrack::activeDOMObjectName() const
 {
     return "MediaStreamTrack";

Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (252889 => 252890)


--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h	2019-11-26 17:57:53 UTC (rev 252889)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h	2019-11-26 18:16:04 UTC (rev 252890)
@@ -175,7 +175,7 @@
     Document* document() const;
 
     // ActiveDOMObject API.
-    void stop() final;
+    void stop() final { stopTrack(); }
     const char* activeDOMObjectName() const override;
     void suspend(ReasonForSuspension) final;
 
@@ -216,7 +216,6 @@
 
     MediaTrackConstraints m_constraints;
     std::unique_ptr<DOMPromiseDeferred<void>> m_promise;
-    GenericTaskQueue<ScriptExecutionContext> m_taskQueue;
     GenericTaskQueue<Timer> m_eventTaskQueue;
 
     bool m_ended { false };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to