Add workaround for crash on Views popup window creation (see issue #3040)

This commit is contained in:
Marshall Greenblatt
2021-01-21 13:32:46 -05:00
parent 9d4f862210
commit d06fdcff85
2 changed files with 19 additions and 1 deletions

View File

@@ -132,6 +132,14 @@ void CefBrowserViewImpl::SetPreferAccelerators(bool prefer_accelerators) {
root_view()->set_allow_accelerators(prefer_accelerators);
}
void CefBrowserViewImpl::RequestFocus() {
CEF_REQUIRE_VALID_RETURN_VOID();
// Always execute asynchronously to work around issue #3040.
CEF_POST_TASK(CEF_UIT,
base::BindOnce(&CefBrowserViewImpl::RequestFocusInternal,
weak_ptr_factory_.GetWeakPtr()));
}
void CefBrowserViewImpl::SetBackgroundColor(cef_color_t color) {
CEF_REQUIRE_VALID_RETURN_VOID();
ParentClass::SetBackgroundColor(color);
@@ -182,7 +190,7 @@ void CefBrowserViewImpl::OnBoundsChanged() {
CefBrowserViewImpl::CefBrowserViewImpl(
CefRefPtr<CefBrowserViewDelegate> delegate)
: ParentClass(delegate) {}
: ParentClass(delegate), weak_ptr_factory_(this) {}
void CefBrowserViewImpl::SetPendingBrowserCreateParams(
CefRefPtr<CefClient> client,
@@ -248,3 +256,7 @@ bool CefBrowserViewImpl::HandleAccelerator(
return false;
}
void CefBrowserViewImpl::RequestFocusInternal() {
ParentClass::RequestFocus();
}