Changeset 252890 in webkit


Ignore:
Timestamp:
Nov 26, 2019 10:16:04 AM (4 years ago)
Author:
youenn@apple.com
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:
Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r252889 r252890  
     12019-11-26  youenn fablet  <youenn@apple.com>
     2
     3        Update capturing document media state when entering b/f cache
     4        https://bugs.webkit.org/show_bug.cgi?id=204589
     5
     6        Reviewed by Chris Dumez.
     7
     8        * http/tests/navigation/page-cache-mediastream-expected.txt:
     9        * http/tests/navigation/page-cache-mediastream.html:
     10
    1112019-11-26  youenn fablet  <youenn@apple.com>
    212
  • trunk/LayoutTests/http/tests/navigation/page-cache-mediastream-expected.txt

    r252337 r252890  
    88pageshow - from cache
    99PASS Page did enter and was restored from the page cache
     10page media state is 'IsNotPlaying'
    1011PASS successfullyParsed is true
    1112
  • trunk/LayoutTests/http/tests/navigation/page-cache-mediastream.html

    r252337 r252890  
    1717        testPassed("Page did enter and was restored from the page cache");
    1818        restoredFromPageCache = true;
     19
     20        if (window.internals)
     21            debug("page media state is '" + internals.pageMediaState() + "'");
    1922
    2023        if (!canvasStream.active)
  • trunk/Source/WebCore/ChangeLog

    r252889 r252890  
     12019-11-26  youenn fablet  <youenn@apple.com>
     2
     3        Update capturing document media state when entering b/f cache
     4        https://bugs.webkit.org/show_bug.cgi?id=204589
     5
     6        Reviewed by Chris Dumez.
     7
     8        Remove enqueuing the task in configureTrackRendering.
     9        This allows stopTrack to trigger the track rendering configuration and document media state computation.
     10        Covered by updated test.
     11
     12        * Modules/mediastream/MediaStreamTrack.cpp:
     13        (WebCore::MediaStreamTrack::MediaStreamTrack):
     14        (WebCore::MediaStreamTrack::configureTrackRendering):
     15        (WebCore::MediaStreamTrack::suspend):
     16        (WebCore::MediaStreamTrack::stop): Deleted.
     17        * Modules/mediastream/MediaStreamTrack.h:
     18
    1192019-11-26  youenn fablet  <youenn@apple.com>
    220
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp

    r252681 r252890  
    7171    : ActiveDOMObject(&context)
    7272    , m_private(WTFMove(privateTrack))
    73     , m_taskQueue(context)
    7473    , m_isCaptureTrack(m_private->isCaptureTrack())
    7574    , m_mediaSession(PlatformMediaSession::create(*this))
     
    536535void MediaStreamTrack::configureTrackRendering()
    537536{
    538     m_taskQueue.enqueueTask([this] {
    539         if (m_mediaSession && m_private->type() == RealtimeMediaSource::Type::Audio)
    540             m_mediaSession->canProduceAudioChanged();
    541 
    542         if (auto document = this->document())
    543             document->updateIsPlayingMedia();
    544     });
     537    if (m_mediaSession && m_private->type() == RealtimeMediaSource::Type::Audio)
     538        m_mediaSession->canProduceAudioChanged();
     539
     540    if (auto document = this->document())
     541        document->updateIsPlayingMedia();
    545542
    546543    // 4.3.1
    547544    // ... media from the source only flows when a MediaStreamTrack object is both unmuted and enabled
    548 }
    549 
    550 void MediaStreamTrack::stop()
    551 {
    552     stopTrack();
    553     m_taskQueue.close();
    554545}
    555546
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h

    r252545 r252890  
    176176
    177177    // ActiveDOMObject API.
    178     void stop() final;
     178    void stop() final { stopTrack(); }
    179179    const char* activeDOMObjectName() const override;
    180180    void suspend(ReasonForSuspension) final;
     
    217217    MediaTrackConstraints m_constraints;
    218218    std::unique_ptr<DOMPromiseDeferred<void>> m_promise;
    219     GenericTaskQueue<ScriptExecutionContext> m_taskQueue;
    220219    GenericTaskQueue<Timer> m_eventTaskQueue;
    221220
Note: See TracChangeset for help on using the changeset viewer.