Changeset 255133 in webkit


Ignore:
Timestamp:
Jan 26, 2020 2:47:06 PM (4 years ago)
Author:
youenn@apple.com
Message:

Use ObjectIdentifier for remote RealtimeMediaSource
https://bugs.webkit.org/show_bug.cgi?id=206808
<rdar://problem/58705405>

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/RealtimeMediaSourceIdentifier.h: Added.

Source/WebKit:

Use ObjectIdentifier instead of uint64_t.
This is clearer and prevents receiving identifier of value zero from IPC.
Remove related message checks.

  • Scripts/webkit/messages.py:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::startProducingData):
(WebKit::UserMediaCaptureManagerProxy::stopProducingData):
(WebKit::UserMediaCaptureManagerProxy::end):
(WebKit::UserMediaCaptureManagerProxy::capabilities):
(WebKit::UserMediaCaptureManagerProxy::setMuted):
(WebKit::UserMediaCaptureManagerProxy::applyConstraints):
(WebKit::UserMediaCaptureManagerProxy::clone):
(WebKit::UserMediaCaptureManagerProxy::requestToEnd):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::Source):
(WebKit::UserMediaCaptureManager::Source::sourceID const):
(WebKit::UserMediaCaptureManager::createCaptureSource):
(WebKit::UserMediaCaptureManager::sourceStopped):
(WebKit::UserMediaCaptureManager::captureFailed):
(WebKit::UserMediaCaptureManager::sourceMutedChanged):
(WebKit::UserMediaCaptureManager::sourceSettingsChanged):
(WebKit::UserMediaCaptureManager::storageChanged):
(WebKit::UserMediaCaptureManager::ringBufferFrameBoundsChanged):
(WebKit::UserMediaCaptureManager::audioSamplesAvailable):
(WebKit::UserMediaCaptureManager::remoteVideoSampleAvailable):
(WebKit::UserMediaCaptureManager::sourceEnded):
(WebKit::UserMediaCaptureManager::applyConstraintsSucceeded):
(WebKit::UserMediaCaptureManager::applyConstraintsFailed):
(WebKit::UserMediaCaptureManager::cloneVideoSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.messages.in:
Location:
trunk/Source
Files:
1 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r255131 r255133  
     12020-01-26  youenn fablet  <youenn@apple.com>
     2
     3        Use ObjectIdentifier for remote RealtimeMediaSource
     4        https://bugs.webkit.org/show_bug.cgi?id=206808
     5        <rdar://problem/58705405>
     6
     7        Reviewed by Eric Carlson.
     8
     9        No change of behavior.
     10
     11        * WebCore.xcodeproj/project.pbxproj:
     12        * platform/mediastream/RealtimeMediaSourceIdentifier.h: Added.
     13
    1142020-01-26  Said Abou-Hallawa  <said@apple.com>
    215
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r255131 r255133  
    11351135                41B28B3D1F860EF300FB52AC /* LibWebRTCProviderCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 41B28B361F860BD000FB52AC /* LibWebRTCProviderCocoa.h */; settings = {ATTRIBUTES = (Private, ); }; };
    11361136                41B2A6261EF1BF6D002B9D7A /* WebAudioSourceProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 41B2A6251EF1BF60002B9D7A /* WebAudioSourceProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1137                41B8776223DE1045003638B8 /* RealtimeMediaSourceIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = 41B8776023DE1042003638B8 /* RealtimeMediaSourceIdentifier.h */; settings = {ATTRIBUTES = (Private, ); }; };
    11371138                41BF204922BA7BE80004F812 /* RealtimeVideoSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 41BF204022B947160004F812 /* RealtimeVideoSource.h */; settings = {ATTRIBUTES = (Private, ); }; };
    11381139                41C760B10EDE03D300C1655F /* ScriptState.h in Headers */ = {isa = PBXBuildFile; fileRef = 41C760B00EDE03D300C1655F /* ScriptState.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    75167517                41B459DA1F4CADB90000F6FD /* ReadableStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStream.h; sourceTree = "<group>"; };
    75177518                41B459ED1F55EBC70000F6FD /* ReadableStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ReadableStream.cpp; sourceTree = "<group>"; };
     7519                41B8776023DE1042003638B8 /* RealtimeMediaSourceIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RealtimeMediaSourceIdentifier.h; sourceTree = "<group>"; };
    75187520                41B9137623584D0E0025BFA3 /* MockAudioDestinationCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MockAudioDestinationCocoa.h; sourceTree = "<group>"; };
    75197521                41B9137823584D0F0025BFA3 /* MockAudioDestinationCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MockAudioDestinationCocoa.cpp; sourceTree = "<group>"; };
     
    1624316245                                0754A5EB215EADF3002D3A99 /* RealtimeMediaSourceFactory.cpp */,
    1624416246                                0754A5E8215EA3B7002D3A99 /* RealtimeMediaSourceFactory.h */,
     16247                                41B8776023DE1042003638B8 /* RealtimeMediaSourceIdentifier.h */,
    1624516248                                4A4F656E1AA997F100E38CDD /* RealtimeMediaSourceSettings.cpp */,
    1624616249                                4A4F656F1AA997F100E38CDD /* RealtimeMediaSourceSettings.h */,
     
    3090730910                                A86629D309DA2B48009633A6 /* JSInputEvent.h in Headers */,
    3090830911                                9175CE5E21E281ED00DF2C28 /* JSInspectorAuditAccessibilityObject.h in Headers */,
     30912                                41B8776223DE1045003638B8 /* RealtimeMediaSourceIdentifier.h in Headers */,
    3090930913                                9175CE5C21E281ED00DF2C28 /* JSInspectorAuditDOMObject.h in Headers */,
    3091030914                                9109E9C8222CABCA00BB6265 /* JSInspectorAuditResourcesObject.h in Headers */,
  • trunk/Source/WebKit/ChangeLog

    r255132 r255133  
     12020-01-26  youenn fablet  <youenn@apple.com>
     2
     3        Use ObjectIdentifier for remote RealtimeMediaSource
     4        https://bugs.webkit.org/show_bug.cgi?id=206808
     5        <rdar://problem/58705405>
     6
     7        Reviewed by Eric Carlson.
     8
     9        Use ObjectIdentifier instead of uint64_t.
     10        This is clearer and prevents receiving identifier of value zero from IPC.
     11        Remove related message checks.
     12
     13        * Scripts/webkit/messages.py:
     14        * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
     15        (WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy):
     16        (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
     17        (WebKit::UserMediaCaptureManagerProxy::startProducingData):
     18        (WebKit::UserMediaCaptureManagerProxy::stopProducingData):
     19        (WebKit::UserMediaCaptureManagerProxy::end):
     20        (WebKit::UserMediaCaptureManagerProxy::capabilities):
     21        (WebKit::UserMediaCaptureManagerProxy::setMuted):
     22        (WebKit::UserMediaCaptureManagerProxy::applyConstraints):
     23        (WebKit::UserMediaCaptureManagerProxy::clone):
     24        (WebKit::UserMediaCaptureManagerProxy::requestToEnd):
     25        * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
     26        * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
     27        * WebProcess/cocoa/UserMediaCaptureManager.cpp:
     28        (WebKit::UserMediaCaptureManager::Source::Source):
     29        (WebKit::UserMediaCaptureManager::Source::sourceID const):
     30        (WebKit::UserMediaCaptureManager::createCaptureSource):
     31        (WebKit::UserMediaCaptureManager::sourceStopped):
     32        (WebKit::UserMediaCaptureManager::captureFailed):
     33        (WebKit::UserMediaCaptureManager::sourceMutedChanged):
     34        (WebKit::UserMediaCaptureManager::sourceSettingsChanged):
     35        (WebKit::UserMediaCaptureManager::storageChanged):
     36        (WebKit::UserMediaCaptureManager::ringBufferFrameBoundsChanged):
     37        (WebKit::UserMediaCaptureManager::audioSamplesAvailable):
     38        (WebKit::UserMediaCaptureManager::remoteVideoSampleAvailable):
     39        (WebKit::UserMediaCaptureManager::sourceEnded):
     40        (WebKit::UserMediaCaptureManager::applyConstraintsSucceeded):
     41        (WebKit::UserMediaCaptureManager::applyConstraintsFailed):
     42        (WebKit::UserMediaCaptureManager::cloneVideoSource):
     43        * WebProcess/cocoa/UserMediaCaptureManager.h:
     44        * WebProcess/cocoa/UserMediaCaptureManager.messages.in:
     45
    1462020-01-26  Darin Adler  <darin@apple.com>
    247
  • trunk/Source/WebKit/Scripts/webkit/messages.py

    r255127 r255133  
    212212        'WebCore::PointerID',
    213213        'WebCore::ProcessIdentifier',
     214        'WebCore::RealtimeMediaSourceIdentifier',
    214215        'WebCore::ServiceWorkerIdentifier',
    215216        'WebCore::ServiceWorkerJobIdentifier',
  • trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp

    r254051 r255133  
    4949    WTF_MAKE_FAST_ALLOCATED;
    5050public:
    51     SourceProxy(uint64_t id, Ref<IPC::Connection>&& connection, Ref<RealtimeMediaSource>&& source)
     51    SourceProxy(RealtimeMediaSourceIdentifier id, Ref<IPC::Connection>&& connection, Ref<RealtimeMediaSource>&& source)
    5252        : m_id(id)
    5353        , m_connection(WTFMove(connection))
     
    147147    }
    148148
    149     uint64_t m_id;
     149    RealtimeMediaSourceIdentifier m_id;
    150150    Ref<IPC::Connection> m_connection;
    151151    Ref<RealtimeMediaSource> m_source;
     
    167167}
    168168
    169 void UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const CaptureDevice& device, String&& hashSalt, const MediaConstraints& constraints, CompletionHandler<void(bool succeeded, String invalidConstraints, WebCore::RealtimeMediaSourceSettings&&)>&& completionHandler)
    170 {
    171     MESSAGE_CHECK_CONTEXTID(id);
    172 
     169void UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints(RealtimeMediaSourceIdentifier id, const CaptureDevice& device, String&& hashSalt, const MediaConstraints& constraints, CompletionHandler<void(bool succeeded, String invalidConstraints, WebCore::RealtimeMediaSourceSettings&&)>&& completionHandler)
     170{
    173171    CaptureSourceOrError sourceOrError;
    174172    switch (device.type()) {
     
    203201}
    204202
    205 void UserMediaCaptureManagerProxy::startProducingData(uint64_t id)
    206 {
    207     MESSAGE_CHECK_CONTEXTID(id);
     203void UserMediaCaptureManagerProxy::startProducingData(RealtimeMediaSourceIdentifier id)
     204{
    208205    if (auto* proxy = m_proxies.get(id))
    209206        proxy->start();
    210207}
    211208
    212 void UserMediaCaptureManagerProxy::stopProducingData(uint64_t id)
    213 {
    214     MESSAGE_CHECK_CONTEXTID(id);
     209void UserMediaCaptureManagerProxy::stopProducingData(RealtimeMediaSourceIdentifier id)
     210{
    215211    if (auto* proxy = m_proxies.get(id))
    216212        proxy->stop();
    217213}
    218214
    219 void UserMediaCaptureManagerProxy::end(uint64_t id)
    220 {
    221     MESSAGE_CHECK_CONTEXTID(id);
     215void UserMediaCaptureManagerProxy::end(RealtimeMediaSourceIdentifier id)
     216{
    222217    m_proxies.remove(id);
    223218}
    224219
    225 void UserMediaCaptureManagerProxy::capabilities(uint64_t id, CompletionHandler<void(WebCore::RealtimeMediaSourceCapabilities&&)>&& completionHandler)
    226 {
    227     MESSAGE_CHECK_CONTEXTID(id);
     220void UserMediaCaptureManagerProxy::capabilities(RealtimeMediaSourceIdentifier id, CompletionHandler<void(WebCore::RealtimeMediaSourceCapabilities&&)>&& completionHandler)
     221{
    228222    WebCore::RealtimeMediaSourceCapabilities capabilities;
    229223    if (auto* proxy = m_proxies.get(id))
     
    232226}
    233227
    234 void UserMediaCaptureManagerProxy::setMuted(uint64_t id, bool muted)
    235 {
    236     MESSAGE_CHECK_CONTEXTID(id);
     228void UserMediaCaptureManagerProxy::setMuted(RealtimeMediaSourceIdentifier id, bool muted)
     229{
    237230    if (auto* proxy = m_proxies.get(id))
    238231        proxy->source().setMuted(muted);
    239232}
    240233
    241 void UserMediaCaptureManagerProxy::applyConstraints(uint64_t id, const WebCore::MediaConstraints& constraints)
    242 {
    243     MESSAGE_CHECK_CONTEXTID(id);
     234void UserMediaCaptureManagerProxy::applyConstraints(RealtimeMediaSourceIdentifier id, const WebCore::MediaConstraints& constraints)
     235{
    244236    auto* proxy = m_proxies.get(id);
    245237    if (!proxy)
     
    254246}
    255247
    256 void UserMediaCaptureManagerProxy::clone(uint64_t clonedID, uint64_t newSourceID)
     248void UserMediaCaptureManagerProxy::clone(RealtimeMediaSourceIdentifier clonedID, RealtimeMediaSourceIdentifier newSourceID)
    257249{
    258250    ASSERT(m_proxies.contains(clonedID));
     
    262254}
    263255
    264 void UserMediaCaptureManagerProxy::requestToEnd(uint64_t sourceID)
     256void UserMediaCaptureManagerProxy::requestToEnd(RealtimeMediaSourceIdentifier sourceID)
    265257{
    266258    if (auto* proxy = m_proxies.get(sourceID))
  • trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h

    r253705 r255133  
    3333#include <WebCore/OrientationNotifier.h>
    3434#include <WebCore/RealtimeMediaSource.h>
     35#include <WebCore/RealtimeMediaSourceIdentifier.h>
    3536#include <wtf/UniqueRef.h>
    3637
     
    6566    void didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&) final;
    6667
    67     void createMediaSourceForCaptureDeviceWithConstraints(uint64_t id, const WebCore::CaptureDevice& deviceID, String&&, const WebCore::MediaConstraints&, CompletionHandler<void(bool succeeded, String invalidConstraints, WebCore::RealtimeMediaSourceSettings&&)>&&);
    68     void startProducingData(uint64_t);
    69     void stopProducingData(uint64_t);
    70     void end(uint64_t);
    71     void capabilities(uint64_t, CompletionHandler<void(WebCore::RealtimeMediaSourceCapabilities&&)>&&);
    72     void setMuted(uint64_t, bool);
    73     void applyConstraints(uint64_t, const WebCore::MediaConstraints&);
    74     void clone(uint64_t clonedID, uint64_t cloneID);
    75     void requestToEnd(uint64_t);
     68    void createMediaSourceForCaptureDeviceWithConstraints(WebCore::RealtimeMediaSourceIdentifier, const WebCore::CaptureDevice& deviceID, String&&, const WebCore::MediaConstraints&, CompletionHandler<void(bool succeeded, String invalidConstraints, WebCore::RealtimeMediaSourceSettings&&)>&&);
     69    void startProducingData(WebCore::RealtimeMediaSourceIdentifier);
     70    void stopProducingData(WebCore::RealtimeMediaSourceIdentifier);
     71    void end(WebCore::RealtimeMediaSourceIdentifier);
     72    void capabilities(WebCore::RealtimeMediaSourceIdentifier, CompletionHandler<void(WebCore::RealtimeMediaSourceCapabilities&&)>&&);
     73    void setMuted(WebCore::RealtimeMediaSourceIdentifier, bool);
     74    void applyConstraints(WebCore::RealtimeMediaSourceIdentifier, const WebCore::MediaConstraints&);
     75    void clone(WebCore::RealtimeMediaSourceIdentifier clonedID, WebCore::RealtimeMediaSourceIdentifier cloneID);
     76    void requestToEnd(WebCore::RealtimeMediaSourceIdentifier);
    7677
    7778    class SourceProxy;
    7879    friend class SourceProxy;
    79     HashMap<uint64_t, std::unique_ptr<SourceProxy>> m_proxies;
     80    HashMap<WebCore::RealtimeMediaSourceIdentifier, std::unique_ptr<SourceProxy>> m_proxies;
    8081    UniqueRef<ConnectionProxy> m_connectionProxy;
    8182    WebCore::OrientationNotifier m_orientationNotifier { 0 };
  • trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in

    r253275 r255133  
    2525
    2626messages -> UserMediaCaptureManagerProxy NotRefCounted {
    27     CreateMediaSourceForCaptureDeviceWithConstraints(uint64_t id, WebCore::CaptureDevice device, String hashSalt, struct WebCore::MediaConstraints constraints) -> (bool success, String invalidConstraints, WebCore::RealtimeMediaSourceSettings settings) Synchronous
    28     StartProducingData(uint64_t id)
    29     StopProducingData(uint64_t id)
    30     End(uint64_t id)
    31     Capabilities(uint64_t id) -> (WebCore::RealtimeMediaSourceCapabilities capabilities) Synchronous
    32     SetMuted(uint64_t id, bool muted)
    33     ApplyConstraints(uint64_t id, struct WebCore::MediaConstraints constraints)
    34     Clone(uint64_t clonedID, uint64_t cloneID)
    35     RequestToEnd(uint64_t sourceID)
     27    CreateMediaSourceForCaptureDeviceWithConstraints(WebCore::RealtimeMediaSourceIdentifier id, WebCore::CaptureDevice device, String hashSalt, struct WebCore::MediaConstraints constraints) -> (bool success, String invalidConstraints, WebCore::RealtimeMediaSourceSettings settings) Synchronous
     28    StartProducingData(WebCore::RealtimeMediaSourceIdentifier id)
     29    StopProducingData(WebCore::RealtimeMediaSourceIdentifier id)
     30    End(WebCore::RealtimeMediaSourceIdentifier id)
     31    Capabilities(WebCore::RealtimeMediaSourceIdentifier id) -> (WebCore::RealtimeMediaSourceCapabilities capabilities) Synchronous
     32    SetMuted(WebCore::RealtimeMediaSourceIdentifier id, bool muted)
     33    ApplyConstraints(WebCore::RealtimeMediaSourceIdentifier id, struct WebCore::MediaConstraints constraints)
     34    Clone(WebCore::RealtimeMediaSourceIdentifier clonedID, WebCore::RealtimeMediaSourceIdentifier cloneID)
     35    RequestToEnd(WebCore::RealtimeMediaSourceIdentifier sourceID)
    3636}
    3737
  • trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp

    r254130 r255133  
    5050using namespace WebCore;
    5151
    52 static uint64_t nextSessionID()
    53 {
    54     static uint64_t nextID = 0;
    55     return ++nextID;
    56 }
    57 
    5852class UserMediaCaptureManager::Source : public RealtimeMediaSource {
    5953public:
    60     Source(String&& sourceID, Type type, CaptureDevice::DeviceType deviceType, String&& name, String&& hashSalt, uint64_t id, UserMediaCaptureManager& manager)
     54    Source(String&& sourceID, Type type, CaptureDevice::DeviceType deviceType, String&& name, String&& hashSalt, RealtimeMediaSourceIdentifier id, UserMediaCaptureManager& manager)
    6155        : RealtimeMediaSource(type, WTFMove(name), WTFMove(sourceID), WTFMove(hashSalt))
    6256        , m_id(id)
     
    117111    }
    118112
    119     uint64_t sourceID() const
     113    RealtimeMediaSourceIdentifier sourceID() const
    120114    {
    121115        return m_id;
     
    234228    void stopBeingObserved();
    235229
    236     uint64_t m_id;
     230    RealtimeMediaSourceIdentifier m_id;
    237231    UserMediaCaptureManager& m_manager;
    238232    mutable Optional<RealtimeMediaSourceCapabilities> m_capabilities;
     
    293287        return { };
    294288
    295     uint64_t id = nextSessionID();
     289    auto id = RealtimeMediaSourceIdentifier::generate();
    296290    RealtimeMediaSourceSettings settings;
    297291    String errorMessage;
     
    310304
    311305    auto type = device.type() == CaptureDevice::DeviceType::Microphone ? WebCore::RealtimeMediaSource::Type::Audio : WebCore::RealtimeMediaSource::Type::Video;
    312     auto source = adoptRef(*new Source(String::number(id), type, device.type(), String { settings.label().string() }, WTFMove(hashSalt), id, *this));
     306    auto source = adoptRef(*new Source(String::number(id.toUInt64()), type, device.type(), String { settings.label().string() }, WTFMove(hashSalt), id, *this));
    313307    if (shouldCaptureInGPUProcess)
    314308        source->setShouldCaptureInGPUProcess(shouldCaptureInGPUProcess);
     
    318312}
    319313
    320 void UserMediaCaptureManager::sourceStopped(uint64_t id)
     314void UserMediaCaptureManager::sourceStopped(RealtimeMediaSourceIdentifier id)
    321315{
    322316    if (auto source = m_sources.get(id)) {
     
    326320}
    327321
    328 void UserMediaCaptureManager::captureFailed(uint64_t id)
     322void UserMediaCaptureManager::captureFailed(RealtimeMediaSourceIdentifier id)
    329323{
    330324    if (auto source = m_sources.get(id)) {
     
    334328}
    335329
    336 void UserMediaCaptureManager::sourceMutedChanged(uint64_t id, bool muted)
     330void UserMediaCaptureManager::sourceMutedChanged(RealtimeMediaSourceIdentifier id, bool muted)
    337331{
    338332    if (auto source = m_sources.get(id))
     
    340334}
    341335
    342 void UserMediaCaptureManager::sourceSettingsChanged(uint64_t id, const RealtimeMediaSourceSettings& settings)
     336void UserMediaCaptureManager::sourceSettingsChanged(RealtimeMediaSourceIdentifier id, const RealtimeMediaSourceSettings& settings)
    343337{
    344338    if (auto source = m_sources.get(id))
     
    346340}
    347341
    348 void UserMediaCaptureManager::storageChanged(uint64_t id, const SharedMemory::Handle& handle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)
     342void UserMediaCaptureManager::storageChanged(RealtimeMediaSourceIdentifier id, const SharedMemory::Handle& handle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)
    349343{
    350344    if (auto source = m_sources.get(id))
     
    352346}
    353347
    354 void UserMediaCaptureManager::ringBufferFrameBoundsChanged(uint64_t id, uint64_t startFrame, uint64_t endFrame)
     348void UserMediaCaptureManager::ringBufferFrameBoundsChanged(RealtimeMediaSourceIdentifier id, uint64_t startFrame, uint64_t endFrame)
    355349{
    356350    if (auto source = m_sources.get(id))
     
    358352}
    359353
    360 void UserMediaCaptureManager::audioSamplesAvailable(uint64_t id, MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)
     354void UserMediaCaptureManager::audioSamplesAvailable(RealtimeMediaSourceIdentifier id, MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)
    361355{
    362356    if (auto source = m_sources.get(id)) {
     
    367361
    368362#if HAVE(IOSURFACE)
    369 void UserMediaCaptureManager::remoteVideoSampleAvailable(uint64_t id, RemoteVideoSample&& sample)
     363void UserMediaCaptureManager::remoteVideoSampleAvailable(RealtimeMediaSourceIdentifier id, RemoteVideoSample&& sample)
    370364{
    371365    if (auto source = m_sources.get(id))
     
    373367}
    374368#else
    375 NO_RETURN_DUE_TO_ASSERT void UserMediaCaptureManager::remoteVideoSampleAvailable(uint64_t, RemoteVideoSample&&)
     369NO_RETURN_DUE_TO_ASSERT void UserMediaCaptureManager::remoteVideoSampleAvailable(RealtimeMediaSourceIdentifier, RemoteVideoSample&&)
    376370{
    377371    ASSERT_NOT_REACHED();
     
    415409}
    416410
    417 void UserMediaCaptureManager::sourceEnded(uint64_t id)
     411void UserMediaCaptureManager::sourceEnded(RealtimeMediaSourceIdentifier id)
    418412{
    419413    m_sources.remove(id);
     
    426420}
    427421
    428 void UserMediaCaptureManager::applyConstraintsSucceeded(uint64_t id, const WebCore::RealtimeMediaSourceSettings& settings)
     422void UserMediaCaptureManager::applyConstraintsSucceeded(RealtimeMediaSourceIdentifier id, const WebCore::RealtimeMediaSourceSettings& settings)
    429423{
    430424    if (auto source = m_sources.get(id))
     
    432426}
    433427
    434 void UserMediaCaptureManager::applyConstraintsFailed(uint64_t id, String&& failedConstraint, String&& message)
     428void UserMediaCaptureManager::applyConstraintsFailed(RealtimeMediaSourceIdentifier id, String&& failedConstraint, String&& message)
    435429{
    436430    if (auto source = m_sources.get(id))
     
    453447Ref<RealtimeMediaSource> UserMediaCaptureManager::cloneVideoSource(Source& source)
    454448{
    455     uint64_t id = nextSessionID();
     449    auto id = RealtimeMediaSourceIdentifier::generate();
    456450    if (!m_process.send(Messages::UserMediaCaptureManagerProxy::Clone { source.sourceID(), id }, 0))
    457451        return makeRef(source);
    458452
    459453    auto settings = source.settings();
    460     auto cloneSource = adoptRef(*new Source(String::number(id), source.type(), source.deviceType(), String { settings.label().string() }, source.deviceIDHashSalt(), id, *this));
     454    auto cloneSource = adoptRef(*new Source(String::number(id.toUInt64()), source.type(), source.deviceType(), String { settings.label().string() }, source.deviceIDHashSalt(), id, *this));
    461455    cloneSource->setSettings(WTFMove(settings));
    462456    m_sources.add(id, cloneSource.copyRef());
  • trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h

    r254130 r255133  
    3434#include <WebCore/RealtimeMediaSource.h>
    3535#include <WebCore/RealtimeMediaSourceFactory.h>
     36#include <WebCore/RealtimeMediaSourceIdentifier.h>
    3637#include <wtf/HashMap.h>
    3738
     
    119120
    120121    // Messages::UserMediaCaptureManager
    121     void captureFailed(uint64_t id);
    122     void sourceStopped(uint64_t id);
    123     void sourceEnded(uint64_t id);
    124     void sourceMutedChanged(uint64_t id, bool muted);
    125     void sourceSettingsChanged(uint64_t id, const WebCore::RealtimeMediaSourceSettings&);
    126     void storageChanged(uint64_t id, const SharedMemory::Handle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames);
    127     void ringBufferFrameBoundsChanged(uint64_t id, uint64_t startFrame, uint64_t endFrame);
    128     void audioSamplesAvailable(uint64_t id, MediaTime, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame);
    129     void remoteVideoSampleAvailable(uint64_t id, WebCore::RemoteVideoSample&&);
    130 
    131     void startProducingData(uint64_t);
    132     void stopProducingData(uint64_t);
    133     WebCore::RealtimeMediaSourceCapabilities capabilities(uint64_t);
    134     void applyConstraints(uint64_t, const WebCore::MediaConstraints&);
    135     void applyConstraintsSucceeded(uint64_t, const WebCore::RealtimeMediaSourceSettings&);
    136     void applyConstraintsFailed(uint64_t, String&&, String&&);
     122    void captureFailed(WebCore::RealtimeMediaSourceIdentifier);
     123    void sourceStopped(WebCore::RealtimeMediaSourceIdentifier);
     124    void sourceEnded(WebCore::RealtimeMediaSourceIdentifier);
     125    void sourceMutedChanged(WebCore::RealtimeMediaSourceIdentifier, bool muted);
     126    void sourceSettingsChanged(WebCore::RealtimeMediaSourceIdentifier, const WebCore::RealtimeMediaSourceSettings&);
     127    void storageChanged(WebCore::RealtimeMediaSourceIdentifier, const SharedMemory::Handle&, const WebCore::CAAudioStreamDescription&, uint64_t numberOfFrames);
     128    void ringBufferFrameBoundsChanged(WebCore::RealtimeMediaSourceIdentifier, uint64_t startFrame, uint64_t endFrame);
     129    void audioSamplesAvailable(WebCore::RealtimeMediaSourceIdentifier, MediaTime, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame);
     130    void remoteVideoSampleAvailable(WebCore::RealtimeMediaSourceIdentifier, WebCore::RemoteVideoSample&&);
     131    void applyConstraintsSucceeded(WebCore::RealtimeMediaSourceIdentifier, const WebCore::RealtimeMediaSourceSettings&);
     132    void applyConstraintsFailed(WebCore::RealtimeMediaSourceIdentifier, String&&, String&&);
    137133
    138134    class Source;
    139135    friend class Source;
    140136
    141     void requestToEnd(uint64_t sourceID);
    142137    Ref<WebCore::RealtimeMediaSource> cloneSource(Source&);
    143138    Ref<WebCore::RealtimeMediaSource> cloneVideoSource(Source&);
    144139
    145     HashMap<uint64_t, RefPtr<Source>> m_sources;
     140    HashMap<WebCore::RealtimeMediaSourceIdentifier, Ref<Source>> m_sources;
    146141    WebProcess& m_process;
    147142    NoOpCaptureDeviceManager m_noOpCaptureDeviceManager;
  • trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.messages.in

    r252655 r255133  
    2525
    2626messages -> UserMediaCaptureManager NotRefCounted {
    27     CaptureFailed(uint64_t id)
    28     SourceStopped(uint64_t id)
    29     SourceMutedChanged(uint64_t id, bool muted)
    30     SourceSettingsChanged(uint64_t id, WebCore::RealtimeMediaSourceSettings settings)
    31     StorageChanged(uint64_t id, WebKit::SharedMemory::Handle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)
    32     AudioSamplesAvailable(uint64_t id, MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)
    33     ApplyConstraintsSucceeded(uint64_t id, WebCore::RealtimeMediaSourceSettings settings)
    34     ApplyConstraintsFailed(uint64_t id, String failedConstraint, String message)
    35     RemoteVideoSampleAvailable(uint64_t id, WebCore::RemoteVideoSample sample)
     27    CaptureFailed(WebCore::RealtimeMediaSourceIdentifier id)
     28    SourceStopped(WebCore::RealtimeMediaSourceIdentifier id)
     29    SourceMutedChanged(WebCore::RealtimeMediaSourceIdentifier id, bool muted)
     30    SourceSettingsChanged(WebCore::RealtimeMediaSourceIdentifier id, WebCore::RealtimeMediaSourceSettings settings)
     31    StorageChanged(WebCore::RealtimeMediaSourceIdentifier id, WebKit::SharedMemory::Handle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)
     32    AudioSamplesAvailable(WebCore::RealtimeMediaSourceIdentifier id, MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)
     33    ApplyConstraintsSucceeded(WebCore::RealtimeMediaSourceIdentifier id, WebCore::RealtimeMediaSourceSettings settings)
     34    ApplyConstraintsFailed(WebCore::RealtimeMediaSourceIdentifier id, String failedConstraint, String message)
     35    RemoteVideoSampleAvailable(WebCore::RealtimeMediaSourceIdentifier id, WebCore::RemoteVideoSample sample)
    3636}
    3737
Note: See TracChangeset for help on using the changeset viewer.