15db63e26d
When running `getDisplayMedia` from an `iframe` and then destroying that `iframe`, the destrutcor for ScreenCaptureKitDeviceMac gets run, but it doesn't clean up the observers for the shared macOS picker. In this change we remove the observer on cleanup and fix the associated crash: *** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x12c024123a0> was mutated while being enumerated.' 0 CoreFoundation 0x000000018eda0ec0 __exceptionPreprocess + 176 1 libobjc.A.dylib 0x000000018e886cd8 objc_exception_throw + 88 2 CoreFoundation 0x000000018ee47f80 -[__NSSingleObjectEnumerator init] + 0 3 ScreenCaptureKit 0x000000022971f3e0 -[SCContentSharingPicker contentPickerDidSelectFilter:forStream:] + 436 4 ReplayKit 0x00000001d7b879d8 -[RPScreenRecorder contentPickerDidSelectFilter:forStream:] + 84 5 ReplayKit 0x00000001d7b95ce0 -[RPDaemonProxy contentPickerDidSelectFilter:forStream:] + 224 6 CoreFoundation 0x000000018ed0e8b4 __invoking___ + 148 7 CoreFoundation 0x000000018ed0e72c -[NSInvocation invoke] + 428 8 ReplayKit 0x00000001d7b91678 -[RPDaemonProxy connection:handleInvocation:isReply:] + 316 9 Foundation 0x0000000190899f64 -[NSXPCConnection _decodeAndInvokeMessageWithEvent:reply:flags:] + 1108 10 Foundation 0x000000019089b7d0 message_handler_message + 88 11 Foundation 0x000000018feb0160 message_handler + 152 12 libxpc.dylib 0x000000018e954460 _xpc_connection_call_event_handler + 144 13 libxpc.dylib 0x000000018e952bb4 _xpc_connection_mach_event + 1120 14 libdispatch.dylib 0x000000018ea94718 _dispatch_client_callout4 + 20 15 libdispatch.dylib 0x000000018eab0c00 _dispatch_mach_msg_invoke + 464 16 libdispatch.dylib 0x000000018ea9bae8 _dispatch_lane_serial_drain + 368 17 libdispatch.dylib 0x000000018eab1954 _dispatch_mach_invoke + 456 18 libdispatch.dylib 0x000000018ea9bae8 _dispatch_lane_serial_drain + 368 19 libdispatch.dylib 0x000000018ea9c79c _dispatch_lane_invoke + 432 20 libdispatch.dylib 0x000000018eaa77e8 _dispatch_root_queue_drain_deferred_wlh + 288 21 libdispatch.dylib 0x000000018eaa7034 _dispatch_workloop_worker_thread + 540 22 libsystem_pthread.dylib 0x000000018ec433d8 _pthread_wqthread + 288 23 libsystem_pthread.dylib 0x000000018ec420f0 start_wqthread + 8 |
||
---|---|---|
.. | ||
boringssl | ||
chromium | ||
devtools_frontend | ||
ffmpeg | ||
Mantle | ||
nan | ||
node | ||
perfetto | ||
ReactiveObjC | ||
reclient-configs | ||
squirrel.mac | ||
v8 | ||
webrtc | ||
config.json | ||
README.md |