diff options
| author | Moss Heim <self@mossheim.net> | 2023-12-13 13:39:16 +0100 |
|---|---|---|
| committer | Moss Heim <moss.heim@qt.io> | 2024-03-11 10:33:05 +0100 |
| commit | fbb216fa3119d06f88744e18d3f4f53d64fcf523 (patch) | |
| tree | 1f6c7cea4f33b2ac5cff000919ff0175768f9fd0 /src/core/api/qwebenginepage.cpp | |
| parent | 8064e40e070c2319dd87578bda5ad68b9abdbee0 (diff) | |
Add granular permission for clipboard-read/write
Previously, permissions for clipboard access could only be managed
through the JavascriptCanAccessClipboard and JavascriptCanPaste
settings. This change allows copy/paste to be handled the same way
as notification and geolocation permissions.
If both JavascriptCanAccessClipboard and JavascriptCanPaste are
enabled, permissions will be granted unconditionally without a
feature request being made.
Fixes: QTBUG-77450
Change-Id: I383e27e244ced3d6b7988644e38d2307c6267f76
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/api/qwebenginepage.cpp')
| -rw-r--r-- | src/core/api/qwebenginepage.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/api/qwebenginepage.cpp b/src/core/api/qwebenginepage.cpp index 3bd3aeeb3..0dcc56393 100644 --- a/src/core/api/qwebenginepage.cpp +++ b/src/core/api/qwebenginepage.cpp @@ -595,6 +595,8 @@ static QWebEnginePage::Feature toFeature(QtWebEngineCore::ProfileAdapter::Permis return QWebEnginePage::Notifications; case QtWebEngineCore::ProfileAdapter::GeolocationPermission: return QWebEnginePage::Geolocation; + case QtWebEngineCore::ProfileAdapter::ClipboardReadWrite: + return QWebEnginePage::ClipboardReadWrite; default: break; } @@ -1750,6 +1752,10 @@ void QWebEnginePage::setFeaturePermission(const QUrl &securityOrigin, QWebEngine case Notifications: d->adapter->grantFeaturePermission(securityOrigin, ProfileAdapter::NotificationPermission, ProfileAdapter::AskPermission); break; + case ClipboardReadWrite: + d->adapter->grantFeaturePermission(securityOrigin, ProfileAdapter::ClipboardReadWrite, + ProfileAdapter::AskPermission); + break; } return; } @@ -1787,6 +1793,10 @@ void QWebEnginePage::setFeaturePermission(const QUrl &securityOrigin, QWebEngine case Notifications: d->adapter->grantFeaturePermission(securityOrigin, ProfileAdapter::NotificationPermission, ProfileAdapter::AllowedPermission); break; + case ClipboardReadWrite: + d->adapter->grantFeaturePermission(securityOrigin, ProfileAdapter::ClipboardReadWrite, + ProfileAdapter::AllowedPermission); + break; } } else { // if (policy == PermissionDeniedByUser) switch (feature) { @@ -1806,6 +1816,10 @@ void QWebEnginePage::setFeaturePermission(const QUrl &securityOrigin, QWebEngine case Notifications: d->adapter->grantFeaturePermission(securityOrigin, ProfileAdapter::NotificationPermission, ProfileAdapter::DeniedPermission); break; + case ClipboardReadWrite: + d->adapter->grantFeaturePermission(securityOrigin, ProfileAdapter::ClipboardReadWrite, + ProfileAdapter::DeniedPermission); + break; } } } |
