mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Fix crash on DevTools remote debugging of WebWorkers (fixes issue #2605)
This commit is contained in:
@ -648,12 +648,28 @@ void CefContentRendererClient::RunScriptsAtDocumentIdle(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CefContentRendererClient::DevToolsAgentAttached() {
|
void CefContentRendererClient::DevToolsAgentAttached() {
|
||||||
CEF_REQUIRE_RT();
|
// WebWorkers may be creating agents on a different thread.
|
||||||
|
if (!render_task_runner_->BelongsToCurrentThread()) {
|
||||||
|
render_task_runner_->PostTask(
|
||||||
|
FROM_HERE,
|
||||||
|
base::BindOnce(&CefContentRendererClient::DevToolsAgentAttached,
|
||||||
|
base::Unretained(this)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
++devtools_agent_count_;
|
++devtools_agent_count_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CefContentRendererClient::DevToolsAgentDetached() {
|
void CefContentRendererClient::DevToolsAgentDetached() {
|
||||||
CEF_REQUIRE_RT();
|
// WebWorkers may be creating agents on a different thread.
|
||||||
|
if (!render_task_runner_->BelongsToCurrentThread()) {
|
||||||
|
render_task_runner_->PostTask(
|
||||||
|
FROM_HERE,
|
||||||
|
base::BindOnce(&CefContentRendererClient::DevToolsAgentDetached,
|
||||||
|
base::Unretained(this)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
--devtools_agent_count_;
|
--devtools_agent_count_;
|
||||||
if (devtools_agent_count_ == 0 && uncaught_exception_stack_size_ > 0) {
|
if (devtools_agent_count_ == 0 && uncaught_exception_stack_size_ > 0) {
|
||||||
// When the last DevToolsAgent is detached the stack size is set to 0.
|
// When the last DevToolsAgent is detached the stack size is set to 0.
|
||||||
|
Reference in New Issue
Block a user