Changeset 255133 in webkit
- Timestamp:
- Jan 26, 2020 2:47:06 PM (4 years ago)
- Location:
- trunk/Source
- Files:
-
- 1 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r255131 r255133 1 2020-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 1 14 2020-01-26 Said Abou-Hallawa <said@apple.com> 2 15 -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r255131 r255133 1135 1135 41B28B3D1F860EF300FB52AC /* LibWebRTCProviderCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 41B28B361F860BD000FB52AC /* LibWebRTCProviderCocoa.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1136 1136 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, ); }; }; 1137 1138 41BF204922BA7BE80004F812 /* RealtimeVideoSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 41BF204022B947160004F812 /* RealtimeVideoSource.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1138 1139 41C760B10EDE03D300C1655F /* ScriptState.h in Headers */ = {isa = PBXBuildFile; fileRef = 41C760B00EDE03D300C1655F /* ScriptState.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 7516 7517 41B459DA1F4CADB90000F6FD /* ReadableStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ReadableStream.h; sourceTree = "<group>"; }; 7517 7518 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>"; }; 7518 7520 41B9137623584D0E0025BFA3 /* MockAudioDestinationCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MockAudioDestinationCocoa.h; sourceTree = "<group>"; }; 7519 7521 41B9137823584D0F0025BFA3 /* MockAudioDestinationCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MockAudioDestinationCocoa.cpp; sourceTree = "<group>"; }; … … 16243 16245 0754A5EB215EADF3002D3A99 /* RealtimeMediaSourceFactory.cpp */, 16244 16246 0754A5E8215EA3B7002D3A99 /* RealtimeMediaSourceFactory.h */, 16247 41B8776023DE1042003638B8 /* RealtimeMediaSourceIdentifier.h */, 16245 16248 4A4F656E1AA997F100E38CDD /* RealtimeMediaSourceSettings.cpp */, 16246 16249 4A4F656F1AA997F100E38CDD /* RealtimeMediaSourceSettings.h */, … … 30907 30910 A86629D309DA2B48009633A6 /* JSInputEvent.h in Headers */, 30908 30911 9175CE5E21E281ED00DF2C28 /* JSInspectorAuditAccessibilityObject.h in Headers */, 30912 41B8776223DE1045003638B8 /* RealtimeMediaSourceIdentifier.h in Headers */, 30909 30913 9175CE5C21E281ED00DF2C28 /* JSInspectorAuditDOMObject.h in Headers */, 30910 30914 9109E9C8222CABCA00BB6265 /* JSInspectorAuditResourcesObject.h in Headers */, -
trunk/Source/WebKit/ChangeLog
r255132 r255133 1 2020-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 1 46 2020-01-26 Darin Adler <darin@apple.com> 2 47 -
trunk/Source/WebKit/Scripts/webkit/messages.py
r255127 r255133 212 212 'WebCore::PointerID', 213 213 'WebCore::ProcessIdentifier', 214 'WebCore::RealtimeMediaSourceIdentifier', 214 215 'WebCore::ServiceWorkerIdentifier', 215 216 'WebCore::ServiceWorkerJobIdentifier', -
trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp
r254051 r255133 49 49 WTF_MAKE_FAST_ALLOCATED; 50 50 public: 51 SourceProxy( uint64_tid, Ref<IPC::Connection>&& connection, Ref<RealtimeMediaSource>&& source)51 SourceProxy(RealtimeMediaSourceIdentifier id, Ref<IPC::Connection>&& connection, Ref<RealtimeMediaSource>&& source) 52 52 : m_id(id) 53 53 , m_connection(WTFMove(connection)) … … 147 147 } 148 148 149 uint64_tm_id;149 RealtimeMediaSourceIdentifier m_id; 150 150 Ref<IPC::Connection> m_connection; 151 151 Ref<RealtimeMediaSource> m_source; … … 167 167 } 168 168 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 169 void UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints(RealtimeMediaSourceIdentifier id, const CaptureDevice& device, String&& hashSalt, const MediaConstraints& constraints, CompletionHandler<void(bool succeeded, String invalidConstraints, WebCore::RealtimeMediaSourceSettings&&)>&& completionHandler) 170 { 173 171 CaptureSourceOrError sourceOrError; 174 172 switch (device.type()) { … … 203 201 } 204 202 205 void UserMediaCaptureManagerProxy::startProducingData(uint64_t id) 206 { 207 MESSAGE_CHECK_CONTEXTID(id); 203 void UserMediaCaptureManagerProxy::startProducingData(RealtimeMediaSourceIdentifier id) 204 { 208 205 if (auto* proxy = m_proxies.get(id)) 209 206 proxy->start(); 210 207 } 211 208 212 void UserMediaCaptureManagerProxy::stopProducingData(uint64_t id) 213 { 214 MESSAGE_CHECK_CONTEXTID(id); 209 void UserMediaCaptureManagerProxy::stopProducingData(RealtimeMediaSourceIdentifier id) 210 { 215 211 if (auto* proxy = m_proxies.get(id)) 216 212 proxy->stop(); 217 213 } 218 214 219 void UserMediaCaptureManagerProxy::end(uint64_t id) 220 { 221 MESSAGE_CHECK_CONTEXTID(id); 215 void UserMediaCaptureManagerProxy::end(RealtimeMediaSourceIdentifier id) 216 { 222 217 m_proxies.remove(id); 223 218 } 224 219 225 void UserMediaCaptureManagerProxy::capabilities(uint64_t id, CompletionHandler<void(WebCore::RealtimeMediaSourceCapabilities&&)>&& completionHandler) 226 { 227 MESSAGE_CHECK_CONTEXTID(id); 220 void UserMediaCaptureManagerProxy::capabilities(RealtimeMediaSourceIdentifier id, CompletionHandler<void(WebCore::RealtimeMediaSourceCapabilities&&)>&& completionHandler) 221 { 228 222 WebCore::RealtimeMediaSourceCapabilities capabilities; 229 223 if (auto* proxy = m_proxies.get(id)) … … 232 226 } 233 227 234 void UserMediaCaptureManagerProxy::setMuted(uint64_t id, bool muted) 235 { 236 MESSAGE_CHECK_CONTEXTID(id); 228 void UserMediaCaptureManagerProxy::setMuted(RealtimeMediaSourceIdentifier id, bool muted) 229 { 237 230 if (auto* proxy = m_proxies.get(id)) 238 231 proxy->source().setMuted(muted); 239 232 } 240 233 241 void UserMediaCaptureManagerProxy::applyConstraints(uint64_t id, const WebCore::MediaConstraints& constraints) 242 { 243 MESSAGE_CHECK_CONTEXTID(id); 234 void UserMediaCaptureManagerProxy::applyConstraints(RealtimeMediaSourceIdentifier id, const WebCore::MediaConstraints& constraints) 235 { 244 236 auto* proxy = m_proxies.get(id); 245 237 if (!proxy) … … 254 246 } 255 247 256 void UserMediaCaptureManagerProxy::clone( uint64_t clonedID, uint64_tnewSourceID)248 void UserMediaCaptureManagerProxy::clone(RealtimeMediaSourceIdentifier clonedID, RealtimeMediaSourceIdentifier newSourceID) 257 249 { 258 250 ASSERT(m_proxies.contains(clonedID)); … … 262 254 } 263 255 264 void UserMediaCaptureManagerProxy::requestToEnd( uint64_tsourceID)256 void UserMediaCaptureManagerProxy::requestToEnd(RealtimeMediaSourceIdentifier sourceID) 265 257 { 266 258 if (auto* proxy = m_proxies.get(sourceID)) -
trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.h
r253705 r255133 33 33 #include <WebCore/OrientationNotifier.h> 34 34 #include <WebCore/RealtimeMediaSource.h> 35 #include <WebCore/RealtimeMediaSourceIdentifier.h> 35 36 #include <wtf/UniqueRef.h> 36 37 … … 65 66 void didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&) final; 66 67 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_tcloneID);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); 76 77 77 78 class SourceProxy; 78 79 friend class SourceProxy; 79 HashMap< uint64_t, std::unique_ptr<SourceProxy>> m_proxies;80 HashMap<WebCore::RealtimeMediaSourceIdentifier, std::unique_ptr<SourceProxy>> m_proxies; 80 81 UniqueRef<ConnectionProxy> m_connectionProxy; 81 82 WebCore::OrientationNotifier m_orientationNotifier { 0 }; -
trunk/Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in
r253275 r255133 25 25 26 26 messages -> UserMediaCaptureManagerProxy NotRefCounted { 27 CreateMediaSourceForCaptureDeviceWithConstraints( uint64_tid, WebCore::CaptureDevice device, String hashSalt, struct WebCore::MediaConstraints constraints) -> (bool success, String invalidConstraints, WebCore::RealtimeMediaSourceSettings settings) Synchronous28 StartProducingData( uint64_tid)29 StopProducingData( uint64_tid)30 End( uint64_tid)31 Capabilities( uint64_tid) -> (WebCore::RealtimeMediaSourceCapabilities capabilities) Synchronous32 SetMuted( uint64_tid, bool muted)33 ApplyConstraints( uint64_tid, struct WebCore::MediaConstraints constraints)34 Clone( uint64_t clonedID, uint64_tcloneID)35 RequestToEnd( uint64_tsourceID)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) 36 36 } 37 37 -
trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.cpp
r254130 r255133 50 50 using namespace WebCore; 51 51 52 static uint64_t nextSessionID()53 {54 static uint64_t nextID = 0;55 return ++nextID;56 }57 58 52 class UserMediaCaptureManager::Source : public RealtimeMediaSource { 59 53 public: 60 Source(String&& sourceID, Type type, CaptureDevice::DeviceType deviceType, String&& name, String&& hashSalt, uint64_tid, UserMediaCaptureManager& manager)54 Source(String&& sourceID, Type type, CaptureDevice::DeviceType deviceType, String&& name, String&& hashSalt, RealtimeMediaSourceIdentifier id, UserMediaCaptureManager& manager) 61 55 : RealtimeMediaSource(type, WTFMove(name), WTFMove(sourceID), WTFMove(hashSalt)) 62 56 , m_id(id) … … 117 111 } 118 112 119 uint64_tsourceID() const113 RealtimeMediaSourceIdentifier sourceID() const 120 114 { 121 115 return m_id; … … 234 228 void stopBeingObserved(); 235 229 236 uint64_tm_id;230 RealtimeMediaSourceIdentifier m_id; 237 231 UserMediaCaptureManager& m_manager; 238 232 mutable Optional<RealtimeMediaSourceCapabilities> m_capabilities; … … 293 287 return { }; 294 288 295 uint64_t id = nextSessionID();289 auto id = RealtimeMediaSourceIdentifier::generate(); 296 290 RealtimeMediaSourceSettings settings; 297 291 String errorMessage; … … 310 304 311 305 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)); 313 307 if (shouldCaptureInGPUProcess) 314 308 source->setShouldCaptureInGPUProcess(shouldCaptureInGPUProcess); … … 318 312 } 319 313 320 void UserMediaCaptureManager::sourceStopped( uint64_tid)314 void UserMediaCaptureManager::sourceStopped(RealtimeMediaSourceIdentifier id) 321 315 { 322 316 if (auto source = m_sources.get(id)) { … … 326 320 } 327 321 328 void UserMediaCaptureManager::captureFailed( uint64_tid)322 void UserMediaCaptureManager::captureFailed(RealtimeMediaSourceIdentifier id) 329 323 { 330 324 if (auto source = m_sources.get(id)) { … … 334 328 } 335 329 336 void UserMediaCaptureManager::sourceMutedChanged( uint64_tid, bool muted)330 void UserMediaCaptureManager::sourceMutedChanged(RealtimeMediaSourceIdentifier id, bool muted) 337 331 { 338 332 if (auto source = m_sources.get(id)) … … 340 334 } 341 335 342 void UserMediaCaptureManager::sourceSettingsChanged( uint64_tid, const RealtimeMediaSourceSettings& settings)336 void UserMediaCaptureManager::sourceSettingsChanged(RealtimeMediaSourceIdentifier id, const RealtimeMediaSourceSettings& settings) 343 337 { 344 338 if (auto source = m_sources.get(id)) … … 346 340 } 347 341 348 void UserMediaCaptureManager::storageChanged( uint64_tid, const SharedMemory::Handle& handle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames)342 void UserMediaCaptureManager::storageChanged(RealtimeMediaSourceIdentifier id, const SharedMemory::Handle& handle, const WebCore::CAAudioStreamDescription& description, uint64_t numberOfFrames) 349 343 { 350 344 if (auto source = m_sources.get(id)) … … 352 346 } 353 347 354 void UserMediaCaptureManager::ringBufferFrameBoundsChanged( uint64_tid, uint64_t startFrame, uint64_t endFrame)348 void UserMediaCaptureManager::ringBufferFrameBoundsChanged(RealtimeMediaSourceIdentifier id, uint64_t startFrame, uint64_t endFrame) 355 349 { 356 350 if (auto source = m_sources.get(id)) … … 358 352 } 359 353 360 void UserMediaCaptureManager::audioSamplesAvailable( uint64_tid, MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)354 void UserMediaCaptureManager::audioSamplesAvailable(RealtimeMediaSourceIdentifier id, MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame) 361 355 { 362 356 if (auto source = m_sources.get(id)) { … … 367 361 368 362 #if HAVE(IOSURFACE) 369 void UserMediaCaptureManager::remoteVideoSampleAvailable( uint64_tid, RemoteVideoSample&& sample)363 void UserMediaCaptureManager::remoteVideoSampleAvailable(RealtimeMediaSourceIdentifier id, RemoteVideoSample&& sample) 370 364 { 371 365 if (auto source = m_sources.get(id)) … … 373 367 } 374 368 #else 375 NO_RETURN_DUE_TO_ASSERT void UserMediaCaptureManager::remoteVideoSampleAvailable( uint64_t, RemoteVideoSample&&)369 NO_RETURN_DUE_TO_ASSERT void UserMediaCaptureManager::remoteVideoSampleAvailable(RealtimeMediaSourceIdentifier, RemoteVideoSample&&) 376 370 { 377 371 ASSERT_NOT_REACHED(); … … 415 409 } 416 410 417 void UserMediaCaptureManager::sourceEnded( uint64_tid)411 void UserMediaCaptureManager::sourceEnded(RealtimeMediaSourceIdentifier id) 418 412 { 419 413 m_sources.remove(id); … … 426 420 } 427 421 428 void UserMediaCaptureManager::applyConstraintsSucceeded( uint64_tid, const WebCore::RealtimeMediaSourceSettings& settings)422 void UserMediaCaptureManager::applyConstraintsSucceeded(RealtimeMediaSourceIdentifier id, const WebCore::RealtimeMediaSourceSettings& settings) 429 423 { 430 424 if (auto source = m_sources.get(id)) … … 432 426 } 433 427 434 void UserMediaCaptureManager::applyConstraintsFailed( uint64_tid, String&& failedConstraint, String&& message)428 void UserMediaCaptureManager::applyConstraintsFailed(RealtimeMediaSourceIdentifier id, String&& failedConstraint, String&& message) 435 429 { 436 430 if (auto source = m_sources.get(id)) … … 453 447 Ref<RealtimeMediaSource> UserMediaCaptureManager::cloneVideoSource(Source& source) 454 448 { 455 uint64_t id = nextSessionID();449 auto id = RealtimeMediaSourceIdentifier::generate(); 456 450 if (!m_process.send(Messages::UserMediaCaptureManagerProxy::Clone { source.sourceID(), id }, 0)) 457 451 return makeRef(source); 458 452 459 453 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)); 461 455 cloneSource->setSettings(WTFMove(settings)); 462 456 m_sources.add(id, cloneSource.copyRef()); -
trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.h
r254130 r255133 34 34 #include <WebCore/RealtimeMediaSource.h> 35 35 #include <WebCore/RealtimeMediaSourceFactory.h> 36 #include <WebCore/RealtimeMediaSourceIdentifier.h> 36 37 #include <wtf/HashMap.h> 37 38 … … 119 120 120 121 // 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&&); 137 133 138 134 class Source; 139 135 friend class Source; 140 136 141 void requestToEnd(uint64_t sourceID);142 137 Ref<WebCore::RealtimeMediaSource> cloneSource(Source&); 143 138 Ref<WebCore::RealtimeMediaSource> cloneVideoSource(Source&); 144 139 145 HashMap< uint64_t, RefPtr<Source>> m_sources;140 HashMap<WebCore::RealtimeMediaSourceIdentifier, Ref<Source>> m_sources; 146 141 WebProcess& m_process; 147 142 NoOpCaptureDeviceManager m_noOpCaptureDeviceManager; -
trunk/Source/WebKit/WebProcess/cocoa/UserMediaCaptureManager.messages.in
r252655 r255133 25 25 26 26 messages -> UserMediaCaptureManager NotRefCounted { 27 CaptureFailed( uint64_tid)28 SourceStopped( uint64_tid)29 SourceMutedChanged( uint64_tid, bool muted)30 SourceSettingsChanged( uint64_tid, WebCore::RealtimeMediaSourceSettings settings)31 StorageChanged( uint64_tid, WebKit::SharedMemory::Handle storageHandle, WebCore::CAAudioStreamDescription description, uint64_t numberOfFrames)32 AudioSamplesAvailable( uint64_tid, MediaTime time, uint64_t numberOfFrames, uint64_t startFrame, uint64_t endFrame)33 ApplyConstraintsSucceeded( uint64_tid, WebCore::RealtimeMediaSourceSettings settings)34 ApplyConstraintsFailed( uint64_tid, String failedConstraint, String message)35 RemoteVideoSampleAvailable( uint64_tid, 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) 36 36 } 37 37
Note: See TracChangeset
for help on using the changeset viewer.