From cea5852d23cf7391fd3958dae1ec8f7bceef9f82 Mon Sep 17 00:00:00 2001 From: liuhongbo14 Date: Thu, 26 Dec 2024 11:37:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=A7=86=E5=B1=8F=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=20Signed-off-by:=20liuhongbo14=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../browser/alloy/alloy_browser_host_impl.cc | 54 ++++++++++++++++++- .../browser/alloy/alloy_browser_host_impl.h | 6 +++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/libcef/browser/alloy/alloy_browser_host_impl.cc b/libcef/browser/alloy/alloy_browser_host_impl.cc index c1ebc140c..9ca86170b 100644 --- a/libcef/browser/alloy/alloy_browser_host_impl.cc +++ b/libcef/browser/alloy/alloy_browser_host_impl.cc @@ -121,6 +121,15 @@ #include "content/public/common/content_switches.h" #endif +#if defined(OHOS_VIDEO_ASSISTANT) +#include "content/browser/media/video_assistant/video_assistant.h" +#include "media/mojo/mojom/media_player.mojom.h" +#ifdef OHOS_NWEB_EX +#include "ohos_nweb_ex/overrides/cef/libcef/browser/alloy/alloy_browser_engine_cloud_config.h" +#include "ohos_nweb_ex/overrides/cef/libcef/browser/video_assistant/video_assistant.h" +#endif // OHOS_NWEB_EX +#endif // OHOS_VIDEO_ASSISTANT + using content::KeyboardEventProcessingResult; #if BUILDFLAG(IS_OHOS) @@ -3019,7 +3028,7 @@ void AlloyBrowserHostImpl::OnShowVideoAssistant( void AlloyBrowserHostImpl::OnReportStatisticLog(const std::string& content) { if (!client_) { - LOG(WARNING) << "client is nullptr when notify to report sttistic log"; + LOG(WARNING) << "client is nullptr when notify to report statistic log"; return; } @@ -3087,3 +3096,46 @@ void AlloyBrowserHostImpl::OnBeforeUnloadFired(bool proceed) { } } #endif // OHOS_DISPATCH_BEFORE_UNLOAD + +#if defined(OHOS_VIDEO_ASSISTANT) +std::unique_ptr +AlloyBrowserHostImpl::CreateVideoAssistant() { +#ifdef OHOS_NWEB_EX + return std::make_unique(this); +#else + return content::WebContentsDelegate::CreateVideoAssistant(); +#endif // OHOS_NWEB_EX +} +void AlloyBrowserHostImpl::PopluateVideoAssistantConfig( + const std::string& url, + media::mojom::VideoAssistantConfigPtr& config) { +#ifdef OHOS_NWEB_EX + auto cloud_control = nweb_ex::AlloyBrowserEngineCloudConfig::GetInstance(); + nweb_ex::BrowserEngineCloudControlConfig cloud_config; + bool match = cloud_control->GetControlConfigByUrl(url, cloud_config); + if (!match) { + config->video_assistant = true; + config->playback_rate = true; + config->download_button = + media::mojom::VideoAssistantDownloadButton::kDownloadPerPage; + return; + } + config->video_assistant = cloud_config.videoAssistant; + config->playback_rate = cloud_config.playbackRate; + switch (cloud_config.downloadBtn) { + case nweb_ex::DownloadBtn::kDownloadPerPage: + config->download_button = + media::mojom::VideoAssistantDownloadButton::kDownloadPerPage; + break; + case nweb_ex::DownloadBtn::kDownloadForceShow: + config->download_button = + media::mojom::VideoAssistantDownloadButton::kDownloadForceShow; + break; + case nweb_ex::DownloadBtn::kDownloadForceHide: + config->download_button = + media::mojom::VideoAssistantDownloadButton::kDownloadForceHide; + break; + } +#endif // OHOS_NWEB_EX +} +#endif // OHOS_VIDEO_ASSISTANT \ No newline at end of file diff --git a/libcef/browser/alloy/alloy_browser_host_impl.h b/libcef/browser/alloy/alloy_browser_host_impl.h index a47783fe0..e680b710a 100644 --- a/libcef/browser/alloy/alloy_browser_host_impl.h +++ b/libcef/browser/alloy/alloy_browser_host_impl.h @@ -571,6 +571,12 @@ bool NeedsReload() override; content::RenderProcessNotRespondingReason reason, const std::string& stack); #endif +#if defined(OHOS_VIDEO_ASSISTANT) + std::unique_ptr CreateVideoAssistant() override; + void PopluateVideoAssistantConfig( + const std::string& url, + media::mojom::VideoAssistantConfigPtr& config) override; +#endif // OHOS_VIDEO_ASSISTANT CefWindowHandle opener_; const bool is_windowless_; -- Gitee