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•5 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•1 year ago
|
Assignee | ||
Updated•1 year ago
|
Assignee | ||
Comment 8•1 year 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•1 year ago
|
||
This is a simple backport of an WebRTC upstream change.
Upstream commit: 058bfe3ae37a7a245f9c8c6c03f4f7ac48fe179d
Comment 10•1 year ago
|
||
Updated•1 year ago
|
Comment 11•1 year 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
•