Missing track ended event when closing a GetDisplayMedia shared window
Categories
(Core :: WebRTC: Audio/Video, defect, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox128 | --- | fixed |
People
(Reporter: jan, Assigned: jgrulich)
References
(Blocks 1 open bug)
Details
Attachments
(2 files)
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0
Steps to reproduce:
When sharing a window using GetDisplayMedia the track ended event is missing if you close this window.
Sample:
https://jsfiddle.net/oe75yrmv/1/
In chrome the event is fired properly.
Tested in ff 72/73/74
Actual results:
track ended event is missing
Expected results:
track ended event should be signaled when closing the shared window.
Comment 1•6 years ago
|
||
Filed https://github.com/w3c/mediacapture-screen-share/issues/136.
Leaving it as defect for now since Chrome does this.
Comment 2•5 years ago
|
||
Reproduced issue at Nightly 78. Neither closing captured screen or window nor executing stop() results in ended event being fired.
When stop() is executed ended attribute is set to true.
If the captured screen or window is simply closed track.readyState value is still "live" and track.muted value is false. How is that possible?
Comment 3•5 years ago
|
||
The spec issue in comment 1 has been closed, since the spec is already clear we should be firing the ended event here.
Updated•3 years ago
|
Comment 7•3 years ago
|
||
The severity field for this bug is relatively low, S3. However, the bug has 3 duplicates.
:jib, could you consider increasing the bug severity?
For more information, please visit auto_nag documentation.
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Comment 8•2 years ago
|
||
In DesktopCapture, the callback OnCaptureResult also returns a result of
CaptureFrame, whether it was successful or failed. When ERROR_PERMANENT
is returned, it means that all the following attempts to capture a frame
will not succeed and at this point we should stop capturing. To stop
capturing, we propagate CaptureEnded event up to the DeviceListener and
stop screencast.
| Assignee | ||
Comment 9•2 years ago
|
||
This is a simple backport of an WebRTC upstream change.
Upstream commit: 058bfe3ae37a7a245f9c8c6c03f4f7ac48fe179d
Comment 10•2 years ago
|
||
Updated•2 years ago
|
Comment 11•2 years ago
|
||
| bugherder | ||
Comment 12•1 year ago
|
||
Comment 13•1 year ago
|
||
Backed out for causing android build bustages in VideoConduit.cpp.
- Backout link
- Push with failures
- Failure Log
- Failure line: /builds/worker/checkouts/gecko/dom/media/webrtc/libwebrtcglue/VideoConduit.cpp:105:12: fatal error: 'VideoEngine.h' file not found
Comment 14•1 year ago
|
||
Comment 15•1 year ago
|
||
Backed out for causing Android build bustages.
- Backout link
- Push with failures
- Failure Log
- Failure line: ld.lld: error: undefined hidden symbol: webrtc::DesktopCaptureImpl::CaptureEndedEvent()
Comment 16•1 year ago
|
||
Comment 17•1 year ago
|
||
Backed out for causing crashes related to VideoCaptureFactory
[task 2024-06-06T10:40:42.067Z] 10:40:42 INFO - TEST-START | org.mozilla.geckoview.test.MediaDelegateTest#testDeviceRecordingEventVideo
[task 2024-06-06T10:40:43.174Z] 10:40:43 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_RESULT: shortMsg=Process crashed.
[task 2024-06-06T10:40:43.174Z] 10:40:43 INFO - org.mozilla.geckoview.test | INSTRUMENTATION_CODE: 0
[task 2024-06-06T10:40:43.188Z] 10:40:43 INFO - org.mozilla.geckoview.test | adb_returncode=0
[task 2024-06-06T10:40:43.188Z] 10:40:43 INFO - Passed: 395
[task 2024-06-06T10:40:43.188Z] 10:40:43 INFO - Failed: 0
[task 2024-06-06T10:40:43.188Z] 10:40:43 INFO - Todo: 18
[task 2024-06-06T10:40:43.188Z] 10:40:43 WARNING - TEST-UNEXPECTED-FAIL | runjunit.py | Some tests did not run (probably due to a crash in the harness)
[task 2024-06-06T10:40:43.188Z] 10:40:43 INFO - SUITE-END | took 454s
[task 2024-06-06T10:40:43.263Z] 10:40:43 INFO - mozcrash Copy/paste: /builds/worker/fetches/minidump-stackwalk/minidump-stackwalk --symbols-url=https://symbols.mozilla.org/ --cyborg=/tmp/tmp_d6rysl5/7897a2d5-3ab6-21a6-fd07-75520e6f9b1a.trace /tmp/tmp7xnpnwfb/7897a2d5-3ab6-21a6-fd07-75520e6f9b1a.dmp /builds/worker/workspace/build/symbols
[task 2024-06-06T10:40:48.470Z] 10:40:48 INFO - mozcrash Saved minidump as /builds/worker/workspace/build/blobber_upload_dir/7897a2d5-3ab6-21a6-fd07-75520e6f9b1a.dmp
[task 2024-06-06T10:40:48.470Z] 10:40:48 INFO - mozcrash Saved app info as /builds/worker/workspace/build/blobber_upload_dir/7897a2d5-3ab6-21a6-fd07-75520e6f9b1a.extra
[task 2024-06-06T10:40:48.471Z] 10:40:48 WARNING - PROCESS-CRASH | MOZ_ASSERT("CreateVideoCapture NO DESKTOP CAPTURE IMPL ON ANDROID" == nullptr) [@ mozilla::VideoCaptureFactory::CreateVideoCapture] | org.mozilla.geckoview.test.MediaDelegateTest#testDeviceRecordingEventVideo
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - Process type: main
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - Process pid: 18759
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - Mozilla crash reason: MOZ_ASSERT("CreateVideoCapture NO DESKTOP CAPTURE IMPL ON ANDROID" == nullptr)
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - Crash dump filename: /tmp/tmp7xnpnwfb/7897a2d5-3ab6-21a6-fd07-75520e6f9b1a.dmp
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - Operating system: Android
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - 0.0.0 Linux 3.10.0+ #260 SMP PREEMPT Fri May 19 12:48:14 PDT 2017 x86_64
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - CPU: amd64
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - family 6 model 6 stepping 3
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - 4 CPUs
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - Crash reason: SIGSEGV / SEGV_MAPERR
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - Crash address: 0x0000000000000000
[task 2024-06-06T10:40:48.471Z] 10:40:48 INFO - Crashing instruction: `mov dword [0x0], 0x5f`
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - Memory accessed by instruction:
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - 0. Address: 0x0000000000000000
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - Size: 4
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - Crashing address may be the result of a flipped bit:
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - 0. Valid address: 0x0000000020000000 (0.250)
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - 1. Valid address: 0x0000000040000000 (0.250)
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - Process uptime: not available
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - Thread 71 Thread-11 (crashed)
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - 0 libxul.so!mozilla::VideoCaptureFactory::CreateVideoCapture(int, char const*, mozilla::camera::CaptureDeviceType) [video_capture_factory.cc:68a4e10e7bfa890f65b36072b80707821d6c7d96 : 94 + 0x0]
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - rax = 0x00007f6705af8570 rdx = 0x00007f67141f1a10
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - rcx = 0x00007f67137f39e0 rbx = 0x00007f67141f1e90
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - rsi = 0x0000000000000001 rdi = 0x00007f67141f1a90
[task 2024-06-06T10:40:48.472Z] 10:40:48 INFO - rbp = 0x00007f67141f1e50 rsp = 0x00007f67141f1e40
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - r8 = 0x00007f671369cca0 r9 = 0x00007f67141f1720
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - r10 = 0x00000000ffffff80 r11 = 0x0000000000000246
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - r12 = 0x00007f66eaef0820 r13 = 0xaaaaaaaaaaaaaaaa
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - r14 = 0x00007f66eaef0860 r15 = 0x00007f66eaef0860
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - rip = 0x00007f670cdd13f2
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - Found by: given as instruction pointer in context
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - 1 libxul.so!mozilla::camera::VideoEngine::CreateVideoCapture(char const*) [VideoEngine.cpp:68a4e10e7bfa890f65b36072b80707821d6c7d96 : 69 + 0xa]
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - rbx = 0x0000000000000000 rbp = 0x00007f67141f1ed0
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - rsp = 0x00007f67141f1e60 r12 = 0x00007f66eaef0820
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - r13 = 0xaaaaaaaaaaaaaaaa r14 = 0x00007f66eaef0860
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - r15 = 0x00007f66eaef0860 rip = 0x00007f670cdaaa56
[task 2024-06-06T10:40:48.473Z] 10:40:48 INFO - Found by: call frame info
[task 2024-06-06T10:40:48.474Z] 10:40:48 INFO - 2 libxul.so!mozilla::camera::CamerasParent::RecvAllocateCapture(mozilla::camera::CaptureEngine const&, nsTSubstring<char> const&, unsigned long const&)::$_0::operator()(mozilla::MozPromise<bool, bool, true>::ResolveOrRejectValue&&) const [CamerasParent.cpp:68a4e10e7bfa890f65b36072b80707821d6c7d96 : 817]
[task 2024-06-06T10:40:48.474Z] 10:40:48 INFO - Found by: inlining
[task 2024-06-06T10:40:48.474Z] 10:40:48 INFO - 3 libxul.so!mozilla::MozPromise<bool, bool, true>::InvokeMethod<mozilla::camera::CamerasParent::RecvAllocateCapture(mozilla::camera::CaptureEngine const&, nsTSubstring<char> const&, unsigned long const&)::$_0, RefPtr<mozilla::MozPromise<std::__ndk1::tuple<int, int>, bool, true> > (mozilla::camera::CamerasParent::RecvAllocateCapture(mozilla::camera::CaptureEngine const&, nsTSubstring<char> const&, unsigned long const&)::$_0::*)(mozilla::MozPromise<bool, bool, true>::ResolveOrRejectValue&&) const, mozilla::MozPromise<bool, bool, true>::ResolveOrRejectValue>(mozilla::camera::CamerasParent::RecvAllocateCapture(mozilla::camera::CaptureEngine const&, nsTSubstring<char> const&, unsigned long const&)::$_0*, RefPtr<mozilla::MozPromise<std::__ndk1::tuple<int, int>, bool, true> > (mozilla::camera::CamerasParent::RecvAllocateCapture(mozilla::camera::CaptureEngine const&, nsTSubstring<char> const&, unsigned long const&)::$_0::*)(mozilla::MozPromise<bool, bool, true>::ResolveOrRejectValue&&) const, mozilla::MozPromise<bool, bool, true>::ResolveOrRejectValue&&) [MozPromise.h:68a4e10e7bfa890f65b36072b80707821d6c7d96 : 652]
[task 2024-06-06T10:40:48.474Z] 10:40:48 INFO - Found by: inlining
[task 2024-06-06T10:40:48.475Z] 10:40:48 INFO - 4 libxul.so!mozilla::MozPromise<bool, bool, true>::InvokeCallbackMethod<true, mozilla::camera::CamerasParent::RecvAllocateCapture(mozilla::camera::CaptureEngine const&, nsTSubstring<char> const&, unsigned long const&)::$_0, RefPtr<mozilla::MozPromise<std::__ndk1::tuple<int, int>, bool, true> > (mozilla::camera::CamerasParent::RecvAllocateCapture(mozilla::camera::CaptureEngine const&, nsTSubstring<char> const&, unsigned long const&)::$_0::*)(mozilla::MozPromise<bool, bool, true>::ResolveOrRejectValue&&) const, mozilla::MozPromise<bool, bool, true>::ResolveOrRejectValue, RefPtr<mozilla::MozPromise<std::__ndk1::tuple<int, int>, bool, true>::Private> >(mozilla::camera::CamerasParent::RecvAllocateCapture(mozilla::camera::CaptureEngine const&, nsTSubstring<char> const&, unsigned long const&)::$_0*, RefPtr<mozilla::MozPromise<std::__ndk1::tuple<int, int>, bool, true> > (mozilla::camera::CamerasParent::RecvAllocateCapture(mozilla::camera::CaptureEngine const&, nsTSubstring<char> const&, unsigned long const&)::$_0::*)(mozilla::MozPromise<bool, bool, true>::ResolveOrRejectValue&&) const, mozilla::MozPromise<bool, bool, true>::ResolveOrRejectValue&&, RefPtr<mozilla::MozPromise<std::__ndk1::tuple<int, int>, bool, true>::Private>&&) [MozPromise.h:68a4e10e7bfa890f65b36072b80707821d6c7d96 : 668]
[task 2024-06-06T10:40:48.475Z] 10:40:48 INFO - Found by: inlining
<...>
[task 2024-06-06T10:40:48.480Z] 10:40:48 INFO - 16 libc.so + 0x299eb
[task 2024-06-06T10:40:48.480Z] 10:40:48 INFO - rsp = 0x00007f67141f2440 rip = 0x00007f672e7f89ec
[task 2024-06-06T10:40:48.480Z] 10:40:48 INFO - Found by: stack scanning
[task 2024-06-06T10:40:48.481Z] 10:40:48 INFO - 17 libc.so + 0x896bf
[task 2024-06-06T10:40:48.481Z] 10:40:48 INFO - rsp = 0x00007f67141f2448 rip = 0x00007f672e8586c0
[task 2024-06-06T10:40:48.481Z] 10:40:48 INFO - Found by: stack scanning
[task 2024-06-06T10:40:48.481Z] 10:40:48 INFO - 18 libc.so + 0x1ca65
[task 2024-06-06T10:40:48.481Z] 10:40:48 INFO - rsp = 0x00007f67141f2450 rip = 0x00007f672e7eba66
[task 2024-06-06T10:40:48.481Z] 10:40:48 INFO - Found by: stack scanning
[task 2024-06-06T10:40:48.481Z] 10:40:48 INFO - Thread 0 AndroidUI
Comment 18•1 year ago
|
||
Comment 19•1 year ago
|
||
| bugherder | ||
| Assignee | ||
Updated•1 year ago
|
Updated•1 year ago
|
Description
•