feat: route deprecated sync clipboard read through permission checks (#45377)

* feat: route deprecated clipboard commands through permission checks

* docs: address review feedback

* fix: enable checks for child windows
This commit is contained in:
Robo 2025-02-05 15:13:29 +09:00 committed by GitHub
parent e9d5eeb118
commit bec6ddda70
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
30 changed files with 441 additions and 35 deletions

View file

@ -10,7 +10,7 @@
#include "base/memory/weak_ptr.h"
#include "content/public/browser/global_routing_id.h"
#include "content/public/browser/web_contents_observer.h"
#include "electron/shell/common/api/api.mojom.h"
#include "electron/shell/common/web_contents_utility.mojom.h"
#include "mojo/public/cpp/bindings/associated_receiver.h"
#include "shell/browser/api/electron_api_web_contents.h"
@ -43,6 +43,10 @@ class ElectronWebContentsUtilityHandlerImpl
void OnFirstNonEmptyLayout() override;
void SetTemporaryZoomLevel(double level) override;
void DoGetZoomLevel(DoGetZoomLevelCallback callback) override;
void CanAccessClipboardDeprecated(
mojom::PermissionName name,
const blink::LocalFrameToken& frame_token,
CanAccessClipboardDeprecatedCallback callback) override;
base::WeakPtr<ElectronWebContentsUtilityHandlerImpl> GetWeakPtr() {
return weak_factory_.GetWeakPtr();
@ -52,13 +56,13 @@ class ElectronWebContentsUtilityHandlerImpl
~ElectronWebContentsUtilityHandlerImpl() override;
// content::WebContentsObserver:
void WebContentsDestroyed() override;
void RenderFrameDeleted(content::RenderFrameHost* render_frame_host) override;
void OnConnectionError();
content::RenderFrameHost* GetRenderFrameHost();
content::GlobalRenderFrameHostId render_frame_host_id_;
content::GlobalRenderFrameHostToken render_frame_host_token_;
mojo::AssociatedReceiver<mojom::ElectronWebContentsUtility> receiver_{this};