chrome: Support frameless document PiP window with draggable regions (fixes #3566)

This commit is contained in:
Marshall Greenblatt
2023-09-07 13:28:27 -04:00
parent b064ba08f3
commit ef6ae3071d
21 changed files with 581 additions and 128 deletions

View File

@@ -9,7 +9,7 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=bff0bff161e504deec6aef910ebf5d8962bd7c85$
// $hash=a3ab5cba4139ac15763ef0df69988b1bfc00b2bf$
//
#include "libcef_dll/ctocpp/views/browser_view_delegate_ctocpp.h"
@@ -149,7 +149,8 @@ bool CefBrowserViewDelegateCToCpp::OnPopupBrowserViewCreated(
NO_SANITIZE("cfi-icall")
CefBrowserViewDelegate::ChromeToolbarType
CefBrowserViewDelegateCToCpp::GetChromeToolbarType() {
CefBrowserViewDelegateCToCpp::GetChromeToolbarType(
CefRefPtr<CefBrowserView> browser_view) {
shutdown_checker::AssertNotShutdown();
cef_browser_view_delegate_t* _struct = GetStruct();
@@ -159,13 +160,47 @@ CefBrowserViewDelegateCToCpp::GetChromeToolbarType() {
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Verify param: browser_view; type: refptr_diff
DCHECK(browser_view.get());
if (!browser_view.get()) {
return CEF_CTT_NONE;
}
// Execute
cef_chrome_toolbar_type_t _retval = _struct->get_chrome_toolbar_type(_struct);
cef_chrome_toolbar_type_t _retval = _struct->get_chrome_toolbar_type(
_struct, CefBrowserViewCppToC::Wrap(browser_view));
// Return type: simple
return _retval;
}
NO_SANITIZE("cfi-icall")
bool CefBrowserViewDelegateCToCpp::UseFramelessWindowForPictureInPicture(
CefRefPtr<CefBrowserView> browser_view) {
shutdown_checker::AssertNotShutdown();
cef_browser_view_delegate_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct,
use_frameless_window_for_picture_in_picture)) {
return false;
}
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Verify param: browser_view; type: refptr_diff
DCHECK(browser_view.get());
if (!browser_view.get()) {
return false;
}
// Execute
int _retval = _struct->use_frameless_window_for_picture_in_picture(
_struct, CefBrowserViewCppToC::Wrap(browser_view));
// Return type: bool
return _retval ? true : false;
}
NO_SANITIZE("cfi-icall")
bool CefBrowserViewDelegateCToCpp::OnGestureCommand(
CefRefPtr<CefBrowserView> browser_view,

View File

@@ -9,7 +9,7 @@
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=15c0d7230887344fa77279c76ff377b3f2d9ee1d$
// $hash=2157bfb760455bcd97d4e30eba9db474c7b3cabd$
//
#ifndef CEF_LIBCEF_DLL_CTOCPP_VIEWS_BROWSER_VIEW_DELEGATE_CTOCPP_H_
@@ -51,7 +51,10 @@ class CefBrowserViewDelegateCToCpp
bool OnPopupBrowserViewCreated(CefRefPtr<CefBrowserView> browser_view,
CefRefPtr<CefBrowserView> popup_browser_view,
bool is_devtools) override;
ChromeToolbarType GetChromeToolbarType() override;
ChromeToolbarType GetChromeToolbarType(
CefRefPtr<CefBrowserView> browser_view) override;
bool UseFramelessWindowForPictureInPicture(
CefRefPtr<CefBrowserView> browser_view) override;
bool OnGestureCommand(CefRefPtr<CefBrowserView> browser_view,
cef_gesture_command_t gesture_command) override;