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