From a046794e68fb77aa2d5ccfa35531d0aafcedf3ba Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Thu, 20 Oct 2022 12:49:29 -0400 Subject: [PATCH] alloy: Fix renderer crashes related to BadgeService (fixes issue #3005) --- .../alloy/alloy_content_browser_client.cc | 19 +++++++++++++++++++ .../alloy/alloy_content_browser_client.h | 5 +++++ 2 files changed, 24 insertions(+) diff --git a/libcef/browser/alloy/alloy_content_browser_client.cc b/libcef/browser/alloy/alloy_content_browser_client.cc index 7f739362a..808be1942 100644 --- a/libcef/browser/alloy/alloy_content_browser_client.cc +++ b/libcef/browser/alloy/alloy_content_browser_client.cc @@ -140,6 +140,7 @@ #include "storage/browser/quota/quota_settings.h" #include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h" #include "third_party/blink/public/common/web_preferences/web_preferences.h" +#include "third_party/blink/public/mojom/badging/badging.mojom.h" #include "third_party/blink/public/mojom/prerender/prerender.mojom.h" #include "third_party/blink/public/web/web_window_features.h" #include "ui/base/l10n/l10n_util.h" @@ -377,6 +378,14 @@ void BindPluginInfoHost( std::move(receiver)); } +void BindBadgeService( + content::RenderFrameHost* frame_host, + mojo::PendingReceiver receiver) {} + +void BindBadgeServiceForServiceWorker( + const content::ServiceWorkerVersionBaseInfo& info, + mojo::PendingReceiver receiver) {} + void BindMediaFoundationRendererNotifierHandler( content::RenderFrameHost* frame_host, mojo::PendingReceiver @@ -1329,6 +1338,7 @@ void AlloyContentBrowserClient::RegisterBrowserInterfaceBindersForFrame( CefBrowserFrame::RegisterBrowserInterfaceBindersForFrame(render_frame_host, map); + map->Add(base::BindRepeating(&BindBadgeService)); map->Add( base::BindRepeating(&BindMediaFoundationRendererNotifierHandler)); map->Add( @@ -1358,6 +1368,15 @@ void AlloyContentBrowserClient::RegisterBrowserInterfaceBindersForFrame( extension); } +void AlloyContentBrowserClient::RegisterBrowserInterfaceBindersForServiceWorker( + content::BrowserContext* browser_context, + const content::ServiceWorkerVersionBaseInfo& service_worker_version_info, + mojo::BinderMapWithContext* + map) { + map->Add( + base::BindRepeating(&BindBadgeServiceForServiceWorker)); +} + base::FilePath AlloyContentBrowserClient::GetSandboxedStorageServiceDataDirectory() { return GetRootCachePath(); diff --git a/libcef/browser/alloy/alloy_content_browser_client.h b/libcef/browser/alloy/alloy_content_browser_client.h index ca5a628b7..e8db983bd 100644 --- a/libcef/browser/alloy/alloy_content_browser_client.h +++ b/libcef/browser/alloy/alloy_content_browser_client.h @@ -227,6 +227,11 @@ class AlloyContentBrowserClient : public content::ContentBrowserClient { void RegisterBrowserInterfaceBindersForFrame( content::RenderFrameHost* render_frame_host, mojo::BinderMapWithContext* map) override; + void RegisterBrowserInterfaceBindersForServiceWorker( + content::BrowserContext* browser_context, + const content::ServiceWorkerVersionBaseInfo& service_worker_version_info, + mojo::BinderMapWithContext* + map) override; base::FilePath GetSandboxedStorageServiceDataDirectory() override; std::string GetProduct() override; std::string GetChromeProduct() override;