alloy: Delay creation of CefComponentExtensionResourceManager (see issue #3314)

This was causing early access to ResourceBundle on the main thread (via
webui::GetFontFamily) which resulted in crashes on Linux when running
with multi-threaded-message-loop.
This commit is contained in:
Marshall Greenblatt
2022-04-19 11:42:47 -07:00
parent c04895b222
commit c1b06ccee8

View File

@ -90,8 +90,7 @@ class CefKioskDelegate : public extensions::KioskDelegate {
} // namespace } // namespace
CefExtensionsBrowserClient::CefExtensionsBrowserClient() CefExtensionsBrowserClient::CefExtensionsBrowserClient()
: api_client_(new CefExtensionsAPIClient), : api_client_(new CefExtensionsAPIClient) {
resource_manager_(new CefComponentExtensionResourceManager) {
AddAPIProvider(std::make_unique<CoreExtensionsBrowserAPIProvider>()); AddAPIProvider(std::make_unique<CoreExtensionsBrowserAPIProvider>());
AddAPIProvider(std::make_unique<CefExtensionsBrowserAPIProvider>()); AddAPIProvider(std::make_unique<CefExtensionsBrowserAPIProvider>());
} }
@ -332,6 +331,10 @@ CefExtensionsBrowserClient::CreateRuntimeAPIDelegate(
const ComponentExtensionResourceManager* const ComponentExtensionResourceManager*
CefExtensionsBrowserClient::GetComponentExtensionResourceManager() { CefExtensionsBrowserClient::GetComponentExtensionResourceManager() {
if (!resource_manager_) {
resource_manager_ =
std::make_unique<CefComponentExtensionResourceManager>();
}
return resource_manager_.get(); return resource_manager_.get();
} }