Changeset 155992 in webkit


Ignore:
Timestamp:
Sep 17, 2013 1:36:26 PM (11 years ago)
Author:
eric.carlson@apple.com
Message:

MediaStream API: Changing the device enumeration to be async
https://bugs.webkit.org/show_bug.cgi?id=120883

Reviewed by Darin Adler.

Source/WebCore:

Parts merged from https://chromium.googlesource.com/chromium/blink/+/40a96080a1531e50de4eb84571c7dc9fb321ece5
and https://chromium.googlesource.com/chromium/blink/+/ff783a23bb1add588971a8187048a305cf485121
by Tommy Widenflycht.

Test: fast/mediastream/MediaStreamTrack-getSources.html

  • CMakeLists.txt: Added new files.
  • DerivedSources.make: Ditto.
  • GNUmakefile.list.am: Ditto.
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::kind): ASCIILiteral -> NeverDestroyed<AtomicString>.
(WebCore::MediaStreamTrack::readyState): Ditto.
(WebCore::MediaStreamTrack::getSources): New.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:
  • Modules/mediastream/MediaStreamTrackSourcesCallback.h: Added.
  • Modules/mediastream/MediaStreamTrackSourcesCallback.idl: Added.
  • Modules/mediastream/MediaStreamTrackSourcesRequest.cpp: Added.
  • Modules/mediastream/MediaStreamTrackSourcesRequest.h: Added.
  • Modules/mediastream/SourceInfo.cpp: Added.
  • Modules/mediastream/SourceInfo.h: Added.
  • Modules/mediastream/SourceInfo.idl: Added.
  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • bindings/js/JSDOMBinding.h: Add toJS templates for Vector<T> and Vector<RefPtr<T>>.
  • platform/mediastream/MediaStreamCenter.h: Add prototype for getMediaStreamTrackSources.
  • platform/mediastream/MediaStreamTrackSourcesRequestClient.h: Added.
  • platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:

(WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Added.

  • platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
  • platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:

(WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Added

  • platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
  • platform/mediastream/mac/MediaStreamCenterMac.cpp:

(WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Added.

  • platform/mediastream/mac/MediaStreamCenterMac.h:

LayoutTests:

  • fast/mediastream/MediaStreamTrack-getSources-expected.txt: Added.
  • fast/mediastream/MediaStreamTrack-getSources.html: Added.
Location:
trunk
Files:
10 added
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r155991 r155992  
     12013-09-17  Eric Carlson  <eric.carlson@apple.com>
     2
     3        MediaStream API: Changing the device enumeration to be async
     4        https://bugs.webkit.org/show_bug.cgi?id=120883
     5
     6        Reviewed by Darin Adler.
     7
     8        * fast/mediastream/MediaStreamTrack-getSources-expected.txt: Added.
     9        * fast/mediastream/MediaStreamTrack-getSources.html: Added.
     10
    1112013-09-17  Commit Queue  <commit-queue@webkit.org>
    212
  • trunk/Source/WebCore/CMakeLists.txt

    r155938 r155992  
    216216    Modules/mediastream/MediaStreamTrack.idl
    217217    Modules/mediastream/MediaStreamTrackEvent.idl
     218    Modules/mediastream/MediaStreamTrackSourcesCallback.idl
    218219    Modules/mediastream/NavigatorMediaStream.idl
    219220    Modules/mediastream/NavigatorUserMediaError.idl
     
    233234    Modules/mediastream/RTCStatsReport.idl
    234235    Modules/mediastream/RTCStatsResponse.idl
     236    Modules/mediastream/SourceInfo.idl
    235237
    236238    Modules/navigatorcontentutils/NavigatorContentUtils.idl
     
    839841    Modules/mediastream/MediaStreamTrack.cpp
    840842    Modules/mediastream/MediaStreamTrackEvent.cpp
     843    Modules/mediastream/MediaStreamTrackSourcesRequest.cpp
    841844    Modules/mediastream/NavigatorMediaStream.cpp
    842845    Modules/mediastream/RTCDTMFSender.cpp
     
    853856    Modules/mediastream/RTCStatsResponse.cpp
    854857    Modules/mediastream/RTCVoidRequestImpl.cpp
     858    Modules/mediastream/SourceInfo.cpp
    855859    Modules/mediastream/UserMediaController.cpp
    856860    Modules/mediastream/UserMediaRequest.cpp
  • trunk/Source/WebCore/ChangeLog

    r155989 r155992  
     12013-09-17  Eric Carlson  <eric.carlson@apple.com>
     2
     3        MediaStream API: Changing the device enumeration to be async
     4        https://bugs.webkit.org/show_bug.cgi?id=120883
     5
     6        Reviewed by Darin Adler.
     7
     8        Parts merged from https://chromium.googlesource.com/chromium/blink/+/40a96080a1531e50de4eb84571c7dc9fb321ece5
     9        and https://chromium.googlesource.com/chromium/blink/+/ff783a23bb1add588971a8187048a305cf485121
     10        by Tommy Widenflycht.
     11
     12        Test: fast/mediastream/MediaStreamTrack-getSources.html
     13
     14        * CMakeLists.txt: Added new files.
     15        * DerivedSources.make: Ditto.
     16        * GNUmakefile.list.am: Ditto.
     17
     18        * Modules/mediastream/MediaStreamTrack.cpp:
     19        (WebCore::MediaStreamTrack::kind): ASCIILiteral -> NeverDestroyed<AtomicString>.
     20        (WebCore::MediaStreamTrack::readyState): Ditto.
     21        (WebCore::MediaStreamTrack::getSources): New.
     22        * Modules/mediastream/MediaStreamTrack.h:
     23        * Modules/mediastream/MediaStreamTrack.idl:
     24
     25        * Modules/mediastream/MediaStreamTrackSourcesCallback.h: Added.
     26        * Modules/mediastream/MediaStreamTrackSourcesCallback.idl: Added.
     27        * Modules/mediastream/MediaStreamTrackSourcesRequest.cpp: Added.
     28        * Modules/mediastream/MediaStreamTrackSourcesRequest.h: Added.
     29
     30        * Modules/mediastream/SourceInfo.cpp: Added.
     31        * Modules/mediastream/SourceInfo.h: Added.
     32        * Modules/mediastream/SourceInfo.idl: Added.
     33
     34        * WebCore.xcodeproj/project.pbxproj: Add new files.
     35
     36        * bindings/js/JSDOMBinding.h: Add toJS templates for Vector<T> and Vector<RefPtr<T>>.
     37
     38        * platform/mediastream/MediaStreamCenter.h: Add prototype for getMediaStreamTrackSources.
     39
     40        * platform/mediastream/MediaStreamTrackSourcesRequestClient.h: Added.
     41
     42        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
     43        (WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Added.
     44        * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
     45
     46        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
     47        (WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Added
     48        * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
     49
     50        * platform/mediastream/mac/MediaStreamCenterMac.cpp:
     51        (WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Added.
     52        * platform/mediastream/mac/MediaStreamCenterMac.h:
     53
    1542013-09-17  Commit Queue  <commit-queue@webkit.org>
    255
  • trunk/Source/WebCore/DerivedSources.make

    r155801 r155992  
    121121    $(WebCore)/Modules/mediastream/MediaStreamTrack.idl \
    122122    $(WebCore)/Modules/mediastream/MediaStreamTrackEvent.idl \
     123    $(WebCore)/Modules/mediastream/MediaStreamTrackSourcesCallback.idl \
    123124    $(WebCore)/Modules/mediastream/NavigatorMediaStream.idl \
    124125    $(WebCore)/Modules/mediastream/NavigatorUserMediaError.idl \
     
    138139    $(WebCore)/Modules/mediastream/RTCStatsReport.idl \
    139140    $(WebCore)/Modules/mediastream/RTCStatsResponse.idl \
     141    $(WebCore)/Modules/mediastream/SourceInfo.idl \
    140142    $(WebCore)/Modules/notifications/DOMWindowNotifications.idl \
    141143    $(WebCore)/Modules/notifications/Notification.idl \
  • trunk/Source/WebCore/GNUmakefile.list.am

    r155938 r155992  
    513513        DerivedSources/WebCore/JSMediaStreamTrackEvent.cpp \
    514514        DerivedSources/WebCore/JSMediaStreamTrackEvent.h \
     515        DerivedSources/WebCore/JSMediaStreamTrackSourcesCallback.cpp \
     516        DerivedSources/WebCore/JSMediaStreamTrackSourcesCallback.h \
    515517        DerivedSources/WebCore/JSMediaQueryList.cpp \
    516518        DerivedSources/WebCore/JSMediaQueryList.h \
     
    667669        DerivedSources/WebCore/JSSourceBufferList.cpp \
    668670        DerivedSources/WebCore/JSSourceBufferList.h \
     671        DerivedSources/WebCore/JSSourceInfo.cpp \
     672        DerivedSources/WebCore/JSSourceInfo.h \
    669673        DerivedSources/WebCore/JSSpeechInputEvent.cpp \
    670674        DerivedSources/WebCore/JSSpeechInputEvent.h \
     
    12431247        $(WebCore)/Modules/mediastream/MediaStreamTrack.idl \
    12441248        $(WebCore)/Modules/mediastream/MediaStreamTrackEvent.idl \
     1249        $(WebCore)/Modules/mediastream/MediaStreamTrackSourcesCallback.idl \
    12451250        $(WebCore)/Modules/mediastream/NavigatorMediaStream.idl \
    12461251        $(WebCore)/Modules/mediastream/NavigatorUserMediaError.idl \
     
    12601265        $(WebCore)/Modules/mediastream/RTCStatsReport.idl \
    12611266        $(WebCore)/Modules/mediastream/RTCStatsResponse.idl \
     1267        $(WebCore)/Modules/mediastream/SourceInfo.idl \
    12621268        $(WebCore)/Modules/navigatorcontentutils/NavigatorContentUtils.idl \
    12631269        $(WebCore)/Modules/notifications/DOMWindowNotifications.idl \
     
    19551961        Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.cpp \
    19561962        Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.h \
     1963        Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesCallback.h \
     1964        Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.cpp \
     1965        Source/WebCore/Modules/mediastream/MediaStreamTrackSourcesRequest.h \
    19571966        Source/WebCore/Modules/mediastream/NavigatorMediaStream.cpp \
    19581967        Source/WebCore/Modules/mediastream/NavigatorMediaStream.h \
     
    19891998        Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.cpp \
    19901999        Source/WebCore/Modules/mediastream/RTCVoidRequestImpl.h \
     2000        Source/WebCore/Modules/mediastream/SourceInfo.cpp \
     2001        Source/WebCore/Modules/mediastream/SourceInfo.h \
    19912002        Source/WebCore/Modules/mediastream/UserMediaClient.h \
    19922003        Source/WebCore/Modules/mediastream/UserMediaController.h \
     
    54535464        Source/WebCore/platform/mediastream/MediaStreamSource.h \
    54545465        Source/WebCore/platform/mediastream/MediaStreamSourcesQueryClient.h \
     5466        Source/WebCore/platform/mediastream/MediaStreamTrackSourcesRequestClient.h \
    54555467        Source/WebCore/platform/mediastream/RTCConfiguration.h \
    54565468        Source/WebCore/platform/mediastream/RTCDTMFSenderHandler.h \
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp

    r155364 r155992  
    3030
    3131#include "Event.h"
     32#include "ExceptionCode.h"
    3233#include "MediaStreamCenter.h"
    3334#include "MediaStreamComponent.h"
     35#include "MediaStreamTrackSourcesCallback.h"
     36#include "MediaStreamTrackSourcesRequest.h"
     37#include <wtf/NeverDestroyed.h>
    3438
    3539namespace WebCore {
     
    4448MediaStreamTrack::MediaStreamTrack(ScriptExecutionContext* context, MediaStreamComponent* component)
    4549    : ActiveDOMObject(context)
     50    , m_component(component)
    4651    , m_stopped(false)
    47     , m_component(component)
    4852{
    4953    m_component->source()->addObserver(this);
     
    5559}
    5660
    57 String MediaStreamTrack::kind() const
     61AtomicString MediaStreamTrack::kind() const
    5862{
    59     DEFINE_STATIC_LOCAL(String, audioKind, (ASCIILiteral("audio")));
    60     DEFINE_STATIC_LOCAL(String, videoKind, (ASCIILiteral("video")));
     63    static NeverDestroyed<AtomicString> audioKind("audio", AtomicString::ConstructFromLiteral);
     64    static NeverDestroyed<AtomicString> videoKind("video", AtomicString::ConstructFromLiteral);
    6165
    6266    switch (m_component->source()->type()) {
     
    6872
    6973    ASSERT_NOT_REACHED();
    70     return audioKind;
     74    return emptyAtom;
    7175}
    7276
     
    99103}
    100104
    101 String MediaStreamTrack::readyState() const
     105AtomicString MediaStreamTrack::readyState() const
    102106{
     107    static NeverDestroyed<AtomicString> ended("ended", AtomicString::ConstructFromLiteral);
     108    static NeverDestroyed<AtomicString> live("live", AtomicString::ConstructFromLiteral);
     109    static NeverDestroyed<AtomicString> muted("muted", AtomicString::ConstructFromLiteral);
     110
    103111    if (m_stopped)
    104         return ASCIILiteral("ended");
     112        return ended;
    105113
    106114    switch (m_component->source()->readyState()) {
    107115    case MediaStreamSource::ReadyStateLive:
    108         return ASCIILiteral("live");
     116        return live;
    109117    case MediaStreamSource::ReadyStateMuted:
    110         return ASCIILiteral("muted");
     118        return muted;
    111119    case MediaStreamSource::ReadyStateEnded:
    112         return ASCIILiteral("ended");
     120        return ended;
    113121    }
    114122
    115123    ASSERT_NOT_REACHED();
    116     return String();
     124    return emptyAtom;
     125}
     126
     127void MediaStreamTrack::getSources(ScriptExecutionContext* context, PassRefPtr<MediaStreamTrackSourcesCallback> callback, ExceptionCode& ec)
     128{
     129    RefPtr<MediaStreamTrackSourcesRequest> request = MediaStreamTrackSourcesRequest::create(context, callback);
     130    if (!MediaStreamCenter::instance().getMediaStreamTrackSources(request.release()))
     131        ec = NOT_SUPPORTED_ERR;
    117132}
    118133
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h

    r155478 r155992  
    4242
    4343class MediaStreamComponent;
     44class MediaStreamTrackSourcesCallback;
    4445
    4546class MediaStreamTrack : public RefCounted<MediaStreamTrack>, public ScriptWrappable, public ActiveDOMObject, public EventTarget, public MediaStreamSource::Observer {
     
    4849    virtual ~MediaStreamTrack();
    4950
    50     String kind() const;
     51    AtomicString kind() const;
    5152    String id() const;
    5253    String label() const;
     
    5758    void didEndTrack();
    5859   
    59     String readyState() const;
     60    AtomicString readyState() const;
     61
     62    static void getSources(ScriptExecutionContext*, PassRefPtr<MediaStreamTrackSourcesCallback>, ExceptionCode&);
    6063
    6164    DEFINE_ATTRIBUTE_EVENT_LISTENER(mute);
     
    8992    virtual void sourceChangedState() OVERRIDE;
    9093
     94    RefPtr<MediaStreamComponent> m_component;
    9195    bool m_stopped;
    92     RefPtr<MediaStreamComponent> m_component;
    9396};
    9497
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl

    r151336 r155992  
    4040    attribute EventListener onended;
    4141
     42    [CallWith=ScriptExecutionContext, RaisesException] static void getSources(MediaStreamTrackSourcesCallback callback);
     43
    4244    // EventTarget interface
    4345    void addEventListener(DOMString type,
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r155938 r155992  
    106106                07277E4B17D018CC0015534D /* JSMediaSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E3F17D018CC0015534D /* JSMediaSource.h */; };
    107107                07277E4C17D018CC0015534D /* JSMediaStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07277E4017D018CC0015534D /* JSMediaStream.cpp */; };
    108                 07277E4D17D018CC0015534D /* JSMediaStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4117D018CC0015534D /* JSMediaStream.h */; };
     108                07277E4D17D018CC0015534D /* JSMediaStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4117D018CC0015534D /* JSMediaStream.h */; settings = {ATTRIBUTES = (Private, ); }; };
    109109                07277E4E17D018CC0015534D /* JSMediaStreamAudioDestinationNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07277E4217D018CC0015534D /* JSMediaStreamAudioDestinationNode.cpp */; };
    110110                07277E4F17D018CC0015534D /* JSMediaStreamAudioDestinationNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4317D018CC0015534D /* JSMediaStreamAudioDestinationNode.h */; };
    111111                07277E5017D018CC0015534D /* JSMediaStreamEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07277E4417D018CC0015534D /* JSMediaStreamEvent.cpp */; };
    112                 07277E5117D018CC0015534D /* JSMediaStreamEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4517D018CC0015534D /* JSMediaStreamEvent.h */; };
     112                07277E5117D018CC0015534D /* JSMediaStreamEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4517D018CC0015534D /* JSMediaStreamEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
    113113                07277E5217D018CC0015534D /* JSMediaStreamTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07277E4617D018CC0015534D /* JSMediaStreamTrack.cpp */; };
    114                 07277E5317D018CC0015534D /* JSMediaStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4717D018CC0015534D /* JSMediaStreamTrack.h */; };
     114                07277E5317D018CC0015534D /* JSMediaStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4717D018CC0015534D /* JSMediaStreamTrack.h */; settings = {ATTRIBUTES = (Private, ); }; };
    115115                07277E5417D018CC0015534D /* JSMediaStreamTrackEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07277E4817D018CC0015534D /* JSMediaStreamTrackEvent.cpp */; };
    116                 07277E5517D018CC0015534D /* JSMediaStreamTrackEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4917D018CC0015534D /* JSMediaStreamTrackEvent.h */; };
     116                07277E5517D018CC0015534D /* JSMediaStreamTrackEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07277E4917D018CC0015534D /* JSMediaStreamTrackEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
    117117                072C8B11131C518600A4FCE9 /* MediaPlayerPrivateAVFoundation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076F0D0912B8192700C26AA4 /* MediaPlayerPrivateAVFoundation.cpp */; };
    118118                072CA86116CB4DC3008AE131 /* CaptionUserPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 072CA86016CB4DC3008AE131 /* CaptionUserPreferences.cpp */; };
     
    133133                0753860214489E9800B78452 /* CachedTextTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0753860014489E9800B78452 /* CachedTextTrack.cpp */; };
    134134                0753860314489E9800B78452 /* CachedTextTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 0753860114489E9800B78452 /* CachedTextTrack.h */; };
     135                076306D017E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306CC17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
     136                076306D217E1478D005A7C4E /* MediaStreamTrackSourcesRequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076306CE17E1478D005A7C4E /* MediaStreamTrackSourcesRequest.cpp */; };
     137                076306D317E1478D005A7C4E /* MediaStreamTrackSourcesRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306CF17E1478D005A7C4E /* MediaStreamTrackSourcesRequest.h */; settings = {ATTRIBUTES = (Private, ); }; };
     138                076306D717E149CF005A7C4E /* SourceInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076306D417E149CF005A7C4E /* SourceInfo.cpp */; };
     139                076306D817E149D0005A7C4E /* SourceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306D517E149CF005A7C4E /* SourceInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
     140                076306DC17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076306DA17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp */; };
     141                076306DD17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306DB17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
     142                076306E017E16089005A7C4E /* JSSourceInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076306DE17E16089005A7C4E /* JSSourceInfo.cpp */; };
     143                076306E117E16089005A7C4E /* JSSourceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306DF17E16089005A7C4E /* JSSourceInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
     144                076306E317E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */; };
     145                076306E717E251EC005A7C4E /* JSMediaStreamTrackSourcesCallbackCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 076306E617E251EC005A7C4E /* JSMediaStreamTrackSourcesCallbackCustom.h */; };
    135146                076970861463AD8700F502CF /* TextTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 076970841463AD8700F502CF /* TextTrackList.cpp */; };
    136147                076970871463AD8700F502CF /* TextTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = 076970851463AD8700F502CF /* TextTrackList.h */; };
     
    65556566                0753860014489E9800B78452 /* CachedTextTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CachedTextTrack.cpp; sourceTree = "<group>"; };
    65566567                0753860114489E9800B78452 /* CachedTextTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CachedTextTrack.h; sourceTree = "<group>"; };
     6568                076306CC17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrackSourcesCallback.h; sourceTree = "<group>"; };
     6569                076306CD17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStreamTrackSourcesCallback.idl; sourceTree = "<group>"; };
     6570                076306CE17E1478D005A7C4E /* MediaStreamTrackSourcesRequest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamTrackSourcesRequest.cpp; sourceTree = "<group>"; };
     6571                076306CF17E1478D005A7C4E /* MediaStreamTrackSourcesRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrackSourcesRequest.h; sourceTree = "<group>"; };
     6572                076306D417E149CF005A7C4E /* SourceInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SourceInfo.cpp; sourceTree = "<group>"; };
     6573                076306D517E149CF005A7C4E /* SourceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SourceInfo.h; sourceTree = "<group>"; };
     6574                076306D617E149CF005A7C4E /* SourceInfo.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SourceInfo.idl; sourceTree = "<group>"; };
     6575                076306DA17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaStreamTrackSourcesCallback.cpp; sourceTree = "<group>"; };
     6576                076306DB17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaStreamTrackSourcesCallback.h; sourceTree = "<group>"; };
     6577                076306DE17E16089005A7C4E /* JSSourceInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSourceInfo.cpp; sourceTree = "<group>"; };
     6578                076306DF17E16089005A7C4E /* JSSourceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSourceInfo.h; sourceTree = "<group>"; };
     6579                076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrackSourcesRequestClient.h; sourceTree = "<group>"; };
     6580                076306E617E251EC005A7C4E /* JSMediaStreamTrackSourcesCallbackCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMediaStreamTrackSourcesCallbackCustom.h; sourceTree = "<group>"; };
    65576581                076970841463AD8700F502CF /* TextTrackList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextTrackList.cpp; sourceTree = "<group>"; };
    65586582                076970851463AD8700F502CF /* TextTrackList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextTrackList.h; sourceTree = "<group>"; };
     
    1323913263                                07221B5817CEC32700848E51 /* MediaStreamTrackEvent.h */,
    1324013264                                07221B5917CEC32700848E51 /* MediaStreamTrackEvent.idl */,
     13265                                076306CC17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h */,
     13266                                076306CD17E1478D005A7C4E /* MediaStreamTrackSourcesCallback.idl */,
     13267                                076306CE17E1478D005A7C4E /* MediaStreamTrackSourcesRequest.cpp */,
     13268                                076306CF17E1478D005A7C4E /* MediaStreamTrackSourcesRequest.h */,
    1324113269                                07221B5A17CEC32700848E51 /* NavigatorMediaStream.cpp */,
    1324213270                                07221B5B17CEC32700848E51 /* NavigatorMediaStream.h */,
     
    1329013318                                07221B8B17CEC32700848E51 /* RTCVoidRequestImpl.cpp */,
    1329113319                                07221B8C17CEC32700848E51 /* RTCVoidRequestImpl.h */,
     13320                                076306D417E149CF005A7C4E /* SourceInfo.cpp */,
     13321                                076306D517E149CF005A7C4E /* SourceInfo.h */,
     13322                                076306D617E149CF005A7C4E /* SourceInfo.idl */,
    1329213323                                07221B8D17CEC32700848E51 /* UserMediaClient.h */,
    1329313324                                07221B8E17CEC32700848E51 /* UserMediaController.cpp */,
     
    1331413345                                07221B9F17CF0AD400848E51 /* MediaStreamSource.h */,
    1331513346                                07221BA017CF0AD400848E51 /* MediaStreamSourcesQueryClient.h */,
     13347                                076306E217E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h */,
    1331613348                                07221BA117CF0AD400848E51 /* RTCConfiguration.h */,
    1331713349                                07221BA217CF0AD400848E51 /* RTCDataChannelHandler.h */,
     
    1336613398                                07277E4417D018CC0015534D /* JSMediaStreamEvent.cpp */,
    1336713399                                07277E4517D018CC0015534D /* JSMediaStreamEvent.h */,
     13400                                076306DA17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp */,
     13401                                076306DB17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h */,
    1336813402                                07277E4617D018CC0015534D /* JSMediaStreamTrack.cpp */,
    1336913403                                07277E4717D018CC0015534D /* JSMediaStreamTrack.h */,
     
    1340413438                                07969DA917D14151007FF842 /* JSRTCStatsResponse.cpp */,
    1340513439                                07969DAA17D14151007FF842 /* JSRTCStatsResponse.h */,
     13440                                076306DE17E16089005A7C4E /* JSSourceInfo.cpp */,
     13441                                076306DF17E16089005A7C4E /* JSSourceInfo.h */,
    1340613442                        );
    1340713443                        name = MediaStream;
     
    2224322279                                FD31609712B026F700C1A359 /* FFTFrame.h in Headers */,
    2224422280                                976D6C81122B8A3D001FD1F7 /* File.h in Headers */,
     22281                                076306E317E22A43005A7C4E /* MediaStreamTrackSourcesRequestClient.h in Headers */,
    2224522282                                893C47A71238908B002B3D86 /* FileCallback.h in Headers */,
    2224622283                                066C772B0AB603B700238CC4 /* FileChooser.h in Headers */,
     
    2249622533                                978AD67514130A8D00C7CAE3 /* HTMLSpanElement.h in Headers */,
    2249722534                                A871DC230A15205700B12A68 /* HTMLStyleElement.h in Headers */,
     22535                                076306DD17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.h in Headers */,
    2249822536                                D3D4E973130C7CFE007BA540 /* HTMLSummaryElement.h in Headers */,
    2249922537                                A871DB2B0A150BD600B12A68 /* HTMLTableCaptionElement.h in Headers */,
     
    2283122869                                BCCBAD410C18C14200CE890F /* JSHTMLCollection.h in Headers */,
    2283222870                                4A1E719114E101E400626F9D /* JSHTMLContentElement.h in Headers */,
     22871                                076306D017E1478D005A7C4E /* MediaStreamTrackSourcesCallback.h in Headers */,
    2283322872                                F5C041E70FFCA96D00839D4A /* JSHTMLDataListElement.h in Headers */,
    2283422873                                D359D8BF129CA55C0006E5D2 /* JSHTMLDetailsElement.h in Headers */,
     
    2302323062                                B2FA3D4F0AB75A6F000E5AC4 /* JSSVGAnimatedString.h in Headers */,
    2302423063                                B2FA3D510AB75A6F000E5AC4 /* JSSVGAnimatedTransformList.h in Headers */,
     23064                                076306E117E16089005A7C4E /* JSSourceInfo.h in Headers */,
    2302523065                                B2FA3D530AB75A6F000E5AC4 /* JSSVGAnimateElement.h in Headers */,
    2302623066                                4496E39E1398136C003EE32A /* JSSVGAnimateMotionElement.h in Headers */,
     
    2302923069                                B2FA3D590AB75A6F000E5AC4 /* JSSVGCircleElement.h in Headers */,
    2303023070                                B2FA3D5B0AB75A6F000E5AC4 /* JSSVGClipPathElement.h in Headers */,
     23071                                076306D817E149D0005A7C4E /* SourceInfo.h in Headers */,
    2303123072                                B2FA3D5D0AB75A6F000E5AC4 /* JSSVGColor.h in Headers */,
    2303223073                                B2FA3D5F0AB75A6F000E5AC4 /* JSSVGComponentTransferFunctionElement.h in Headers */,
     
    2440524446                                E1A3162D134BC32D007C9A4F /* WebNSAttributedStringExtras.h in Headers */,
    2440624447                                1CAF34810A6C405200ABE06E /* WebScriptObject.h in Headers */,
     24448                                076306D317E1478D005A7C4E /* MediaStreamTrackSourcesRequest.h in Headers */,
    2440724449                                1A569D1B0D7E2B82007C3983 /* WebScriptObject.h in Headers */,
    2440824450                                1CAF34830A6C405200ABE06E /* WebScriptObjectPrivate.h in Headers */,
     
    2524325285                                A781C6A713828B5D0012A62A /* DocumentMarker.cpp in Sources */,
    2524425286                                CE057FA51220731100A476D5 /* DocumentMarkerController.cpp in Sources */,
     25287                                076306DC17E15FB0005A7C4E /* JSMediaStreamTrackSourcesCallback.cpp in Sources */,
    2524525288                                14947FFD12F80CD200A0F631 /* DocumentOrderedMap.cpp in Sources */,
    2524625289                                A8C2280E11D4A59700D5A7D3 /* DocumentParser.cpp in Sources */,
     25290                                076306D217E1478D005A7C4E /* MediaStreamTrackSourcesRequest.cpp in Sources */,
    2524725291                                4A4F48A916B0DFC000EDBB29 /* DocumentRuleSets.cpp in Sources */,
    2524825292                                AD6E71AC1668899D00320C13 /* DocumentSharedObjectPool.cpp in Sources */,
     
    2613626180                                7A74ECBD101839DA00BF939E /* JSInspectorFrontendHostCustom.cpp in Sources */,
    2613726181                                1C5FAED10DCFD90100D58F78 /* JSJavaScriptCallFrame.cpp in Sources */,
     26182                                076306E017E16089005A7C4E /* JSSourceInfo.cpp in Sources */,
    2613826183                                07969DB717D14151007FF842 /* JSRTCIceCandidateEvent.cpp in Sources */,
    2613926184                                1C5FAEE70DCFDA6800D58F78 /* JSJavaScriptCallFrameCustom.cpp in Sources */,
     
    2623926284                                B59DD69E11902A42007E9684 /* JSSQLTransactionCallback.cpp in Sources */,
    2624026285                                1AD2316E0CD269E700C1F194 /* JSSQLTransactionCustom.cpp in Sources */,
     26286                                076306D717E149CF005A7C4E /* SourceInfo.cpp in Sources */,
    2624126287                                B59DD6A211902A52007E9684 /* JSSQLTransactionErrorCallback.cpp in Sources */,
    2624226288                                B58CEB6E1191361C002A6790 /* JSSQLTransactionSync.cpp in Sources */,
  • trunk/Source/WebCore/bindings/js/JSDOMBinding.h

    r155604 r155992  
    366366    }
    367367
     368    template <typename T>
     369    inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Vector<T> vector)
     370    {
     371        JSC::JSArray* array = constructEmptyArray(exec, 0, vector.size());
     372       
     373        for (size_t i = 0; i < vector.size(); ++i)
     374            array->putDirectIndex(exec, i, toJS(exec, globalObject, vector[i]));
     375       
     376        return array;
     377    }
     378
     379    template <typename T>
     380    inline JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, Vector<RefPtr<T>> vector)
     381    {
     382        JSC::JSArray* array = constructEmptyArray(exec, 0, vector.size());
     383       
     384        for (size_t i = 0; i < vector.size(); ++i)
     385            array->putDirectIndex(exec, i, toJS(exec, globalObject, vector[i].get()));
     386       
     387        return array;
     388    }
     389   
    368390    template <class T>
    369391    struct JSValueTraits {
  • trunk/Source/WebCore/platform/mediastream/MediaStreamCenter.h

    r155362 r155992  
    4343class MediaStreamDescriptor;
    4444class MediaStreamSourcesQueryClient;
     45class MediaStreamTrackSourcesRequestClient;
    4546
    4647class MediaStreamCenter {
     
    5354
    5455    // Calls from the DOM objects to notify the platform
     56    virtual bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) = 0;
    5557    virtual void didSetMediaStreamTrackEnabled(MediaStreamDescriptor*, MediaStreamComponent*) = 0;
    5658    virtual bool didAddMediaStreamTrack(MediaStreamDescriptor*, MediaStreamComponent*) = 0;
  • trunk/Source/WebCore/platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp

    r134084 r155992  
    6363}
    6464
     65bool MediaStreamCenterMac::getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>)
     66{
     67    return false;
     68}
     69
    6570void MediaStreamCenterBlackBerry::didSetMediaStreamTrackEnabled(MediaStreamDescriptor*, MediaStreamComponent*)
    6671{
  • trunk/Source/WebCore/platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h

    r134084 r155992  
    5353    // MediaStreamCenter
    5454    virtual void queryMediaStreamSources(PassRefPtr<MediaStreamSourcesQueryClient>) OVERRIDE;
     55    virtual bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) OVERRIDE;
    5556    virtual void didSetMediaStreamTrackEnabled(MediaStreamDescriptor*, MediaStreamComponent*) OVERRIDE;
    5657    virtual bool didAddMediaStreamTrack(MediaStreamDescriptor*, MediaStreamComponent*) OVERRIDE;
  • trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp

    r134084 r155992  
    6363}
    6464
     65bool MediaStreamCenterMac::getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>)
     66{
     67    return false;
     68}
     69
    6570void MediaStreamCenterGStreamer::didSetMediaStreamTrackEnabled(MediaStreamDescriptor*, MediaStreamComponent*)
    6671{
  • trunk/Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h

    r134084 r155992  
    5353    // MediaStreamCenter
    5454    virtual void queryMediaStreamSources(PassRefPtr<MediaStreamSourcesQueryClient>) OVERRIDE;
     55    virtual bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) OVERRIDE;
    5556    virtual void didSetMediaStreamTrackEnabled(MediaStreamDescriptor*, MediaStreamComponent*) OVERRIDE;
    5657    virtual bool didAddMediaStreamTrack(MediaStreamDescriptor*, MediaStreamComponent*) OVERRIDE;
  • trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.cpp

    r155057 r155992  
    3737#include "MediaStreamDescriptor.h"
    3838#include "MediaStreamSourcesQueryClient.h"
     39#include "MediaStreamTrackSourcesRequestClient.h"
    3940#include "NotImplemented.h"
    4041#include <wtf/MainThread.h>
     
    6061{
    6162    notImplemented();
     63}
     64
     65bool MediaStreamCenterMac::getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>)
     66{
     67    notImplemented();
     68    return false;
    6269}
    6370
  • trunk/Source/WebCore/platform/mediastream/mac/MediaStreamCenterMac.h

    r155057 r155992  
    5252    // MediaStreamCenter
    5353    virtual void queryMediaStreamSources(PassRefPtr<MediaStreamSourcesQueryClient>) OVERRIDE;
     54   
     55    virtual bool getMediaStreamTrackSources(PassRefPtr<MediaStreamTrackSourcesRequestClient>) OVERRIDE;
    5456    virtual void didSetMediaStreamTrackEnabled(MediaStreamDescriptor*, MediaStreamComponent*) OVERRIDE;
    5557    virtual bool didAddMediaStreamTrack(MediaStreamDescriptor*, MediaStreamComponent*) OVERRIDE;
Note: See TracChangeset for help on using the changeset viewer.