Changeset 207827 in webkit


Ignore:
Timestamp:
Oct 25, 2016 10:34:07 AM (7 years ago)
Author:
eric.carlson@apple.com
Message:

[MediaStream] Add "has capture device" bit to media state flags
https://bugs.webkit.org/show_bug.cgi?id=163952

Reviewed by Jer Noble.

Source/WebCore:

No new tests, updated fast/mediastream/MediaStream-page-muted.html and media/muted-video-is-playing-audio.html.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::mediaState): Set HasMediaCaptureDevice, only set HasActiveMediaCaptureDevice when

actually producing data.

  • page/MediaProducer.h: Add HasMediaCaptureDevice bit.
  • testing/Internals.cpp:

(WebCore::Internals::pageMediaState): Return a string representing MediaStateFlags.
(WebCore::Internals::isPagePlayingAudio): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/mediastream/MediaStream-page-muted-expected.txt:
  • fast/mediastream/MediaStream-page-muted.html:
  • media/muted-video-is-playing-audio-expected.txt:
  • media/muted-video-is-playing-audio.html:
Location:
trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r207821 r207827  
     12016-10-25  Eric Carlson  <eric.carlson@apple.com>
     2
     3        [MediaStream] Add "has capture device" bit to media state flags
     4        https://bugs.webkit.org/show_bug.cgi?id=163952
     5
     6        Reviewed by Jer Noble.
     7
     8        * fast/mediastream/MediaStream-page-muted-expected.txt:
     9        * fast/mediastream/MediaStream-page-muted.html:
     10        * media/muted-video-is-playing-audio-expected.txt:
     11        * media/muted-video-is-playing-audio.html:
     12
    1132016-10-25  Brady Eidson  <beidson@apple.com>
    214
  • trunk/LayoutTests/fast/mediastream/MediaStream-page-muted-expected.txt

    r207764 r207827  
    88PASS mediaStream is an instance of Object
    99PASS mediaStream.getTracks().length is 2
     10PASS window.internals.pageMediaState().includes('HasActiveMediaCaptureDevice') became true
    1011
    1112*** Muting capture devices
    1213EVENT: mute
    13 PASS event.target.muted is true
     14PASS muteChangedEvent.target.muted is true
     15PASS window.internals.pageMediaState().includes('HasMediaCaptureDevice') is true
     16EVENT: mute
     17PASS muteChangedEvent.target.muted is true
     18PASS window.internals.pageMediaState().includes('HasMediaCaptureDevice') is true
    1419
    15 EVENT: mute
    16 PASS event.target.muted is true
    17 
     20PASS window.internals.pageMediaState().includes('HasActiveMediaCaptureDevice') became false
    1821
    1922*** Unmuting capture devices
    2023EVENT: unmute
    21 PASS event.target.muted is false
     24PASS muteChangedEvent.target.muted is false
     25PASS window.internals.pageMediaState().includes('HasMediaCaptureDevice') is true
     26EVENT: unmute
     27PASS muteChangedEvent.target.muted is false
     28PASS window.internals.pageMediaState().includes('HasMediaCaptureDevice') is true
    2229
    23 EVENT: unmute
    24 PASS event.target.muted is false
    25 
     30PASS window.internals.pageMediaState().includes('HasActiveMediaCaptureDevice') became true
    2631PASS successfullyParsed is true
    2732
  • trunk/LayoutTests/fast/mediastream/MediaStream-page-muted.html

    r207764 r207827  
    66            let mediaStream;
    77            let eventCount = 0;
     8            let muteChangedEvent;
     9
     10            function nextStep()
     11            {
     12                if (muteChangedEvent.type == "unmute") {
     13                    finishJSTest();
     14                    return;
     15                }
     16
     17                debug("<br>*** Unmuting capture devices");
     18                eventCount = 0;
     19                internals.setPageMuted("");
     20            }
    821
    922            function muteChanged(ev)
    1023            {
    11                 event = ev;
    12                 debug(`EVENT: ${ev.type}`);
    13                 shouldBe('event.target.muted', (ev.type == "mute").toString());
    14                 debug("");
     24                muteChangedEvent = ev;
     25                debug(`EVENT: ${muteChangedEvent.type}`);
     26                shouldBe('muteChangedEvent.target.muted', (muteChangedEvent.type == "mute").toString());
     27                shouldBe("window.internals.pageMediaState().includes('HasMediaCaptureDevice')", "true");
    1528
    1629                if (++eventCount == 2) {
    17                     eventCount = 0;
    18 
    19                     if (ev.type == "unmute") {
    20                         finishJSTest();
    21                         return;
    22                     }
    23 
    24                     if (window.internals) {
    25                         debug("<br>*** Unmuting capture devices");
    26                         internals.setPageMuted("");
    27                     }
     30                    debug("");
     31                    let shouldBeActive = muteChangedEvent.type == "mute" ? "false" : "true";
     32                    shouldBecomeEqual("window.internals.pageMediaState().includes('HasActiveMediaCaptureDevice')", shouldBeActive, nextStep);
    2833                }
     34            }
     35           
     36            function muteCaptureDevices()
     37            {
     38                debug("<br>*** Muting capture devices");
     39                internals.setPageMuted("capturedevices");
    2940            }
    3041           
     
    4455                        }
    4556
    46                         if (window.internals) {
    47                             debug("<br>*** Muting capture devices");
    48                             internals.setPageMuted("capturedevices");
    49                         }
     57                        shouldBecomeEqual("window.internals.pageMediaState().includes('HasActiveMediaCaptureDevice')", "true", muteCaptureDevices);
    5058                    })
    5159                    .catch((err) => {
  • trunk/LayoutTests/media/muted-video-is-playing-audio-expected.txt

    r178655 r207827  
    44
    55
    6 PASS window.internals.isPagePlayingAudio() became true
    7 PASS window.internals.isPagePlayingAudio() became false
    8 PASS window.internals.isPagePlayingAudio() became true
     6PASS window.internals.pageMediaState().includes('IsPlayingAudio') became true
     7PASS window.internals.pageMediaState().includes('IsPlayingAudio') became false
     8PASS window.internals.pageMediaState().includes('IsPlayingAudio') became true
    99PASS successfullyParsed is true
    1010
  • trunk/LayoutTests/media/muted-video-is-playing-audio.html

    r178655 r207827  
    1616            {
    1717                run("video.muted = false");
    18                 shouldBecomeEqual("window.internals.isPagePlayingAudio()", "true", finishJSTest);
     18                shouldBecomeEqual("window.internals.pageMediaState().includes('IsPlayingAudio')", "true", finishJSTest);
    1919            }
    2020
     
    2222            {
    2323                run("video.muted = true");
    24                 shouldBecomeEqual("window.internals.isPagePlayingAudio()", "false", testUnmutingVideo);
     24                shouldBecomeEqual("window.internals.pageMediaState().includes('IsPlayingAudio')", "false", testUnmutingVideo);
    2525            }
    2626
    27             shouldBecomeEqual("window.internals.isPagePlayingAudio()", "true", testMutingVideo);
     27            shouldBecomeEqual("window.internals.pageMediaState().includes('IsPlayingAudio')", "true", testMutingVideo);
    2828        </script>
    2929        <script src="../resources/js-test-post.js"></script>
  • trunk/Source/WebCore/ChangeLog

    r207821 r207827  
     12016-10-25  Eric Carlson  <eric.carlson@apple.com>
     2
     3        [MediaStream] Add "has capture device" bit to media state flags
     4        https://bugs.webkit.org/show_bug.cgi?id=163952
     5
     6        Reviewed by Jer Noble.
     7
     8        No new tests, updated fast/mediastream/MediaStream-page-muted.html and media/muted-video-is-playing-audio.html.
     9
     10        * Modules/mediastream/MediaStream.cpp:
     11        (WebCore::MediaStream::mediaState): Set HasMediaCaptureDevice, only set HasActiveMediaCaptureDevice when
     12          actually producing data.
     13
     14        * page/MediaProducer.h: Add HasMediaCaptureDevice bit.
     15
     16        * testing/Internals.cpp:
     17        (WebCore::Internals::pageMediaState): Return a string representing MediaStateFlags.
     18        (WebCore::Internals::isPagePlayingAudio): Deleted.
     19        * testing/Internals.h:
     20        * testing/Internals.idl:
     21
    1222016-10-25  Brady Eidson  <beidson@apple.com>
    223
  • trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp

    r207764 r207827  
    275275        return state;
    276276
    277     if (m_externallyMuted || m_private->isProducingData())
     277    state |= HasMediaCaptureDevice;
     278    if (m_private->isProducingData())
    278279        state |= HasActiveMediaCaptureDevice;
    279280
  • trunk/Source/WebCore/page/MediaProducer.h

    r207764 r207827  
    4545        HasAudioOrVideo = 1 << 10,
    4646        HasActiveMediaCaptureDevice = 1 << 11,
     47        HasMediaCaptureDevice = 1 << 12,
    4748    };
    4849    typedef unsigned MediaStateFlags;
  • trunk/Source/WebCore/testing/Internals.cpp

    r207764 r207827  
    29672967}
    29682968
    2969 bool Internals::isPagePlayingAudio()
     2969String Internals::pageMediaState()
    29702970{
    29712971    Document* document = contextDocument();
    29722972    if (!document || !document->page())
    2973         return false;
    2974 
    2975     return !!(document->page()->mediaState() & MediaProducer::IsPlayingAudio);
     2973        return emptyString();
     2974
     2975    WebCore::MediaProducer::MediaStateFlags state = document->page()->mediaState();
     2976    StringBuilder string;
     2977    if (state & MediaProducer::IsPlayingAudio)
     2978        string.append("IsPlayingAudio,");
     2979    if (state & MediaProducer::IsPlayingVideo)
     2980        string.append("IsPlayingVideo,");
     2981    if (state & MediaProducer::IsPlayingToExternalDevice)
     2982        string.append("IsPlayingToExternalDevice,");
     2983    if (state & MediaProducer::RequiresPlaybackTargetMonitoring)
     2984        string.append("RequiresPlaybackTargetMonitoring,");
     2985    if (state & MediaProducer::ExternalDeviceAutoPlayCandidate)
     2986        string.append("ExternalDeviceAutoPlayCandidate,");
     2987    if (state & MediaProducer::DidPlayToEnd)
     2988        string.append("DidPlayToEnd,");
     2989    if (state & MediaProducer::IsSourceElementPlaying)
     2990        string.append("IsSourceElementPlaying,");
     2991
     2992    if (state & MediaProducer::IsNextTrackControlEnabled)
     2993        string.append("IsNextTrackControlEnabled,");
     2994    if (state & MediaProducer::IsPreviousTrackControlEnabled)
     2995        string.append("IsPreviousTrackControlEnabled,");
     2996
     2997    if (state & MediaProducer::HasPlaybackTargetAvailabilityListener)
     2998        string.append("HasPlaybackTargetAvailabilityListener,");
     2999    if (state & MediaProducer::HasAudioOrVideo)
     3000        string.append("HasAudioOrVideo,");
     3001    if (state & MediaProducer::HasActiveMediaCaptureDevice)
     3002        string.append("HasActiveMediaCaptureDevice,");
     3003    if (state & MediaProducer::HasMediaCaptureDevice)
     3004        string.append("HasMediaCaptureDevice,");
     3005
     3006    if (string.isEmpty())
     3007        string.append("IsNotPlaying");
     3008    else
     3009        string.resize(string.length() - 1);
     3010
     3011    return string.toString();
    29763012}
    29773013
  • trunk/Source/WebCore/testing/Internals.h

    r207764 r207827  
    442442
    443443    void setPageMuted(const String&);
    444     bool isPagePlayingAudio();
     444    String pageMediaState();
    445445
    446446    void setPageDefersLoading(bool);
  • trunk/Source/WebCore/testing/Internals.idl

    r207764 r207827  
    419419
    420420    void setPageMuted(DOMString mutedState);
    421     boolean isPagePlayingAudio();
     421    DOMString pageMediaState();
    422422
    423423    void setPageDefersLoading(boolean defersLoading);
Note: See TracChangeset for help on using the changeset viewer.