- Code: Select all
values.emplace("no-message-box", "");
values.emplace("no-sandbox", "");
values.emplace("enable-smooth-scrolling", "");
values.emplace("disable-spell-checking", "");
values.emplace("autoplay-policy", "no-user-gesture-required");
values.emplace("enable-aggressive-domstorage-flushing", "");
values.emplace("js-flags", "--expose-gc");
values.emplace("disable-gpu", "");
values.emplace("disable-gpu-compositing", "");
values.emplace("single-process", "");
Plus:
- Code: Select all
settings.multi_threaded_message_loop = false;
settings.no_sandbox = true;
settings.windowless_rendering_enabled = true;
settings.uncaught_exception_stack_size = 999;
browserSettings.webgl = STATE_ENABLED;
browserSettings.universal_access_from_file_urls = STATE_ENABLED;
browserSettings.javascript_close_windows = STATE_DISABLED;
browserSettings.local_storage = STATE_ENABLED;
browserSettings.application_cache = STATE_ENABLED;
and
- Code: Select all
CefEnableHighDPISupport();
With such setup, when I run the application and play an audio (using Audio object) I get a crash:
- Code: Select all
> libcef.dll!gpu::GLES2CommandBufferStub::Initialize(gpu::CommandBufferStub * share_command_buffer_stub, const GPUCreateCommandBufferConfig & init_params, base::UnsafeSharedMemoryRegion shared_state_shm) Line 134 C++
libcef.dll!gpu::GpuChannel::OnCreateCommandBuffer(const GPUCreateCommandBufferConfig & init_params, int route_id, base::UnsafeSharedMemoryRegion shared_state_shm, gpu::ContextResult * result, gpu::Capabilities * capabilities) Line 627 C++
libcef.dll!base::DispatchToMethodImpl<gpu::GpuChannel *,void (gpu::GpuChannel::*)(const GPUCreateCommandBufferConfig &, int, base::UnsafeSharedMemoryRegion, gpu::ContextResult *, gpu::Capabilities *) __attribute__((thiscall)),std::tuple<GPUCreateCommandBufferConfig,int,base::UnsafeSharedMemoryRegion>,std::tuple<gpu::ContextResult,gpu::Capabilities>,0,1,2,0,1>(gpu::GpuChannel * const & obj, void(gpu::GpuChannel::*)(const GPUCreateCommandBufferConfig &, int, base::UnsafeSharedMemoryRegion, gpu::ContextResult *, gpu::Capabilities *) method, std::tuple<GPUCreateCommandBufferConfig,int,base::UnsafeSharedMemoryRegion> && in, std::tuple<gpu::ContextResult,gpu::Capabilities> * out, std::integer_sequence<unsigned int,0,1,2>, std::integer_sequence<unsigned int,0,1>) Line 94 C++
libcef.dll!IPC::MessageT<GpuChannelMsg_CreateCommandBuffer_Meta,std::tuple<GPUCreateCommandBufferConfig,int,base::UnsafeSharedMemoryRegion>,std::tuple<gpu::ContextResult,gpu::Capabilities> >::Dispatch<gpu::GpuChannel,gpu::GpuChannel,void,void (gpu::GpuChannel::*)(const GPUCreateCommandBufferConfig &, int, base::UnsafeSharedMemoryRegion, gpu::ContextResult *, gpu::Capabilities *) __attribute__((thiscall))>(const IPC::Message * msg, gpu::GpuChannel * obj, gpu::GpuChannel * sender, void *, void(gpu::GpuChannel::*)(const GPUCreateCommandBufferConfig &, int, base::UnsafeSharedMemoryRegion, gpu::ContextResult *, gpu::Capabilities *) func) Line 204 C++
libcef.dll!gpu::GpuChannel::OnControlMessageReceived(const IPC::Message & msg) Line 470 C++
libcef.dll!gpu::GpuChannel::HandleMessageHelper(const IPC::Message & msg) Line 511 C++
libcef.dll!base::internal::Invoker<base::internal::BindState<void (net::MDnsClientImpl::Core::*)(const std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,unsigned short> &) __attribute__((thiscall)),base::WeakPtr<net::MDnsClientImpl::Core>,std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,unsigned short> >,void ()>::Run(base::internal::BindStateBase * base) Line 674 C++
libcef.dll!base::debug::TaskAnnotator::RunTask(const char * queue_function, base::PendingTask * pending_task) Line 99 C++
libcef.dll!base::MessageLoop::RunTask(base::PendingTask * pending_task) Line 436 C++
libcef.dll!base::MessageLoop::DeferOrRunPendingTask(base::PendingTask pending_task) Line 445 C++
libcef.dll!base::MessageLoop::DoWork() Line 517 C++
libcef.dll!base::MessagePumpForUI::DoRunLoop() Line 181 C++
libcef.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate) Line 55 C++
libcef.dll!base::MessageLoop::Run(bool) Line 386 C++
libcef.dll!base::RunLoop::Run() Line 108 C++
libcef.dll!base::Thread::Run(base::RunLoop * run_loop) Line 263 C++
libcef.dll!base::Thread::ThreadMain() Line 360 C++
libcef.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 103 C++
[External Code]
I build the application in windows 10, VisualStudio 2015, x86.
In chromium code:
gles2_command_buffer_stub.cc:
- Code: Select all
GLES2CommandBufferStub::Initialize(...)
...
bool offscreen = (surface_handle_ == kNullSurfaceHandle);
gl::GLSurface* default_surface = manager->default_offscreen_surface();
...
gl::GLSurfaceFormat surface_format =
offscreen ? default_surface->GetFormat() : gl::GLSurfaceFormat();
The 'default_surface' is nullptr.
Any ideas?