diff --git a/shell/browser/native_window.cc b/shell/browser/native_window.cc index 2bbd1ede039e..9a6db49f0763 100644 --- a/shell/browser/native_window.cc +++ b/shell/browser/native_window.cc @@ -26,6 +26,7 @@ #include "shell/common/options_switches.h" #include "ui/base/hit_test.h" #include "ui/compositor/compositor.h" +#include "ui/views/widget/native_widget_private.h" #include "ui/views/widget/widget.h" #if !BUILDFLAG(IS_MAC) @@ -822,6 +823,20 @@ void NativeWindow::HandlePendingFullscreenTransitions() { SetFullScreen(next_transition); } +void NativeWindow::SetContentProtection(bool enable) { +#if !BUILDFLAG(IS_LINUX) + widget()->native_widget_private()->SetAllowScreenshots(!enable); +#endif +} + +bool NativeWindow::IsContentProtected() const { +#if !BUILDFLAG(IS_LINUX) + return !widget()->native_widget_private()->AreScreenshotsAllowed(); +#else // Not implemented on Linux + return false; +#endif +} + bool NativeWindow::IsTranslucent() const { // Transparent windows are translucent if (transparent()) { diff --git a/shell/browser/native_window.h b/shell/browser/native_window.h index 831cf8947aa8..7a9b762c60b2 100644 --- a/shell/browser/native_window.h +++ b/shell/browser/native_window.h @@ -186,8 +186,8 @@ class NativeWindow : public base::SupportsUserData, virtual void SetDocumentEdited(bool edited) {} virtual bool IsDocumentEdited() const; virtual void SetIgnoreMouseEvents(bool ignore, bool forward) = 0; - virtual void SetContentProtection(bool enable) = 0; - virtual bool IsContentProtected() const = 0; + void SetContentProtection(bool enable); + bool IsContentProtected() const; virtual void SetFocusable(bool focusable) {} virtual bool IsFocusable() const; virtual void SetMenu(ElectronMenuModel* menu) {} diff --git a/shell/browser/native_window_mac.h b/shell/browser/native_window_mac.h index 5420e14aecd7..fa51e9ee447d 100644 --- a/shell/browser/native_window_mac.h +++ b/shell/browser/native_window_mac.h @@ -109,8 +109,6 @@ class NativeWindowMac : public NativeWindow, void SetIgnoreMouseEvents(bool ignore, bool forward) override; bool IsHiddenInMissionControl() const override; void SetHiddenInMissionControl(bool hidden) override; - void SetContentProtection(bool enable) override; - bool IsContentProtected() const override; void SetFocusable(bool focusable) override; bool IsFocusable() const override; void SetParentWindow(NativeWindow* parent) override; diff --git a/shell/browser/native_window_mac.mm b/shell/browser/native_window_mac.mm index eaaa93df97f0..3fef4cba6c24 100644 --- a/shell/browser/native_window_mac.mm +++ b/shell/browser/native_window_mac.mm @@ -1172,15 +1172,6 @@ void NativeWindowMac::SetIgnoreMouseEvents(bool ignore, bool forward) { } } -void NativeWindowMac::SetContentProtection(bool enable) { - [window_ - setSharingType:enable ? NSWindowSharingNone : NSWindowSharingReadOnly]; -} - -bool NativeWindowMac::IsContentProtected() const { - return [window_ sharingType] == NSWindowSharingNone; -} - void NativeWindowMac::SetFocusable(bool focusable) { // No known way to unfocus the window if it had the focus. Here we do not // want to call Focus(false) because it moves the window to the back, i.e. diff --git a/shell/browser/native_window_views.cc b/shell/browser/native_window_views.cc index 326a3f5f4eb2..c5990f901b72 100644 --- a/shell/browser/native_window_views.cc +++ b/shell/browser/native_window_views.cc @@ -44,7 +44,6 @@ #include "ui/ozone/public/ozone_platform.h" #include "ui/views/background.h" #include "ui/views/controls/webview/webview.h" -#include "ui/views/widget/native_widget_private.h" #include "ui/views/widget/widget.h" #include "ui/views/window/client_view.h" #include "ui/wm/core/shadow_types.h" @@ -1314,20 +1313,6 @@ void NativeWindowViews::SetIgnoreMouseEvents(bool ignore, bool forward) { #endif } -void NativeWindowViews::SetContentProtection(bool enable) { -#if BUILDFLAG(IS_WIN) - widget()->native_widget_private()->SetAllowScreenshots(!enable); -#endif -} - -bool NativeWindowViews::IsContentProtected() const { -#if BUILDFLAG(IS_WIN) - return !widget()->native_widget_private()->AreScreenshotsAllowed(); -#else // Not implemented on Linux - return false; -#endif -} - void NativeWindowViews::SetFocusable(bool focusable) { widget()->widget_delegate()->SetCanActivate(focusable); #if BUILDFLAG(IS_WIN) diff --git a/shell/browser/native_window_views.h b/shell/browser/native_window_views.h index 518842aa90a3..7c77d7764a6b 100644 --- a/shell/browser/native_window_views.h +++ b/shell/browser/native_window_views.h @@ -115,8 +115,6 @@ class NativeWindowViews : public NativeWindow, void SetOpacity(const double opacity) override; double GetOpacity() const override; void SetIgnoreMouseEvents(bool ignore, bool forward) override; - void SetContentProtection(bool enable) override; - bool IsContentProtected() const override; void SetFocusable(bool focusable) override; bool IsFocusable() const override; void SetMenu(ElectronMenuModel* menu_model) override;