https://html5-demos.appspot.com/static/ ... share.html
Using the cefclient app with the CEF 3.2171.1979 build on 64-bit Mac, I am setting the following flags:
--enable-media-stream
--enable-usermedia-screen-capturing
Running that web page, when I click on the "Capture Your Screen" button, I get a blank box with a red border. It appears that the flags are honored, because without those flags I get an error: "Uncaught TypeError: undefined is not a function" when the script calls navigator.getUserMedia().
It's been difficult finding any recent references to screen sharing, and determining whether this is even expected to work with CEF.
Any thoughts?
The only clue I have is when running cefclient in debug mode. It breaks with the following stack trace:
- Code: Select all
[0126/152738:FATAL:media_stream_manager.cc(1865)] Check failed: !devices.empty().
0 Chromium Embedded Framework 0x000000010071c49f base::debug::StackTrace::StackTrace() + 47
1 Chromium Embedded Framework 0x000000010071c4f3 base::debug::StackTrace::StackTrace() + 35
2 Chromium Embedded Framework 0x000000010079d996 logging::LogMessage::~LogMessage() + 70
3 Chromium Embedded Framework 0x000000010079c9c3 logging::LogMessage::~LogMessage() + 35
4 Chromium Embedded Framework 0x00000001071af123 content::MediaStreamManager::HandleAccessRequestResponse(std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult) + 851
5 Chromium Embedded Framework 0x00000001071bad5f base::internal::RunnableAdapter<void (content::MediaStreamManager::*)(std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult)>::Run(content::MediaStreamManager*, std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult const&) + 191
6 Chromium Embedded Framework 0x00000001071bac7c base::internal::InvokeHelper<false, void, base::internal::RunnableAdapter<void (content::MediaStreamManager::*)(std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult)>, void (content::MediaStreamManager*, std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult const&)>::MakeItSo(base::internal::RunnableAdapter<void (content::MediaStreamManager::*)(std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult)>, content::MediaStreamManager*, std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult const&) + 124
7 Chromium Embedded Framework 0x00000001071babdc base::internal::Invoker<2, base::internal::BindState<base::internal::RunnableAdapter<void (content::MediaStreamManager::*)(std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult)>, void (content::MediaStreamManager*, std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult), void (base::internal::UnretainedWrapper<content::MediaStreamManager>, std::string)>, void (content::MediaStreamManager*, std::string const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult)>::Run(base::internal::BindStateBase*, content::MediaStreamDevices const&, content::MediaStreamRequestResult const&) + 188
8 Chromium Embedded Framework 0x00000001071cab49 base::Callback<void (content::MediaStreamDevices const&, content::MediaStreamRequestResult)>::Run(content::MediaStreamDevices const&, content::MediaStreamRequestResult const&) const + 105
9 Chromium Embedded Framework 0x00000001071c78db content::MediaStreamUIProxy::ProcessAccessRequestResponse(content::MediaStreamDevices const&, content::MediaStreamRequestResult) + 539
10 Chromium Embedded Framework 0x00000001071cefaa base::internal::RunnableAdapter<void (content::MediaStreamUIProxy::*)(content::MediaStreamDevices const&, content::MediaStreamRequestResult)>::Run(content::MediaStreamUIProxy*, content::MediaStreamDevices const&, content::MediaStreamRequestResult const&) + 170
11 Chromium Embedded Framework 0x00000001071ceedb base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (content::MediaStreamUIProxy::*)(content::MediaStreamDevices const&, content::MediaStreamRequestResult)>, void (base::WeakPtr<content::MediaStreamUIProxy> const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult const&)>::MakeItSo(base::internal::RunnableAdapter<void (content::MediaStreamUIProxy::*)(content::MediaStreamDevices const&, content::MediaStreamRequestResult)>, base::WeakPtr<content::MediaStreamUIProxy> const&, content::MediaStreamDevices const&, content::MediaStreamRequestResult const&) + 123
12 Chromium Embedded Framework 0x00000001071cedf3 base::internal::Invoker<3, base::internal::BindState<base::internal::RunnableAdapter<void (content::MediaStreamUIProxy::*)(content::MediaStreamDevices const&, content::MediaStreamRequestResult)>, void (content::MediaStreamUIProxy*, content::MediaStreamDevices const&, content::MediaStreamRequestResult), void (base::WeakPtr<content::MediaStreamUIProxy>, content::MediaStreamDevices, content::MediaStreamRequestResult)>, void (content::MediaStreamUIProxy*, content::MediaStreamDevices const&, content::MediaStreamRequestResult)>::Run(base::internal::BindStateBase*) + 179
13 Chromium Embedded Framework 0x0000000106c4e17f base::Callback<void ()>::Run() const + 63
14 Chromium Embedded Framework 0x000000010071e438 base::debug::TaskAnnotator::RunTask(char const*, char const*, base::PendingTask const&) + 968
15 Chromium Embedded Framework 0x00000001007d53d5 base::MessageLoop::RunTask(base::PendingTask const&) + 597
16 Chromium Embedded Framework 0x00000001007d5569 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask const&) + 89
17 Chromium Embedded Framework 0x00000001007d5833 base::MessageLoop::DoWork() + 323
18 Chromium Embedded Framework 0x00000001006e5600 base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) + 144
19 Chromium Embedded Framework 0x00000001007d4ed9 base::MessageLoop::RunHandler() + 249
20 Chromium Embedded Framework 0x000000010083342c base::RunLoop::Run() + 76
21 Chromium Embedded Framework 0x00000001007d444f base::MessageLoop::Run() + 47
22 Chromium Embedded Framework 0x0000000100895a37 base::Thread::Run(base::MessageLoop*) + 39
23 Chromium Embedded Framework 0x0000000106ba04f7 content::BrowserThreadImpl::IOThreadRun(base::MessageLoop*) + 71
24 Chromium Embedded Framework 0x0000000106ba06de content::BrowserThreadImpl::Run(base::MessageLoop*) + 334
25 Chromium Embedded Framework 0x0000000100895cee base::Thread::ThreadMain() + 558
26 Chromium Embedded Framework 0x0000000100880fe0 base::(anonymous namespace)::ThreadFunc(void*) + 288
27 libsystem_pthread.dylib 0x00007fff8a9382fc _pthread_body + 131
28 libsystem_pthread.dylib 0x00007fff8a938279 _pthread_body + 0
29 libsystem_pthread.dylib 0x00007fff8a9364b1 thread_start + 13
Thanks,
-Jason-