summaryrefslogtreecommitdiffstats
path: root/src/core/permission_manager_qt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/permission_manager_qt.cpp')
-rw-r--r--src/core/permission_manager_qt.cpp31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/core/permission_manager_qt.cpp b/src/core/permission_manager_qt.cpp
index a1c4c876d..1562a02c2 100644
--- a/src/core/permission_manager_qt.cpp
+++ b/src/core/permission_manager_qt.cpp
@@ -110,7 +110,7 @@ int PermissionManagerQt::RequestPermission(content::PermissionType permission,
BrowserContextAdapter::PermissionType permissionType = toQt(permission);
if (permissionType == BrowserContextAdapter::UnsupportedPermission) {
callback.Run(content::PERMISSION_STATUS_DENIED);
- return request_id;
+ return kNoPendingOperation;
}
content::WebContents *webContents = frameHost->GetRenderViewHost()->GetDelegate()->GetAsWebContents();
@@ -127,6 +127,35 @@ int PermissionManagerQt::RequestPermission(content::PermissionType permission,
return request_id;
}
+int PermissionManagerQt::RequestPermissions(const std::vector<content::PermissionType>& permissions,
+ content::RenderFrameHost* frameHost,
+ const GURL& requesting_origin,
+ bool user_gesture,
+ const base::Callback<void(const std::vector<content::PermissionStatus>&)>& callback)
+{
+ NOTIMPLEMENTED() << "RequestPermissions has not been implemented in QtWebEngine";
+ Q_UNUSED(user_gesture);
+ Q_UNUSED(frameHost);
+
+ std::vector<content::PermissionStatus> result(permissions.size());
+ for (content::PermissionType permission : permissions) {
+ const BrowserContextAdapter::PermissionType permissionType = toQt(permission);
+ if (permissionType == BrowserContextAdapter::UnsupportedPermission)
+ result.push_back(content::PERMISSION_STATUS_DENIED);
+ else {
+ QPair<QUrl, BrowserContextAdapter::PermissionType> key(toQt(requesting_origin), permissionType);
+ // TODO: Request permission from UI
+ if (m_permissions.contains(key) && m_permissions[key])
+ result.push_back(content::PERMISSION_STATUS_GRANTED);
+ else
+ result.push_back(content::PERMISSION_STATUS_DENIED);
+ }
+ }
+
+ callback.Run(result);
+ return kNoPendingOperation;
+}
+
void PermissionManagerQt::CancelPermissionRequest(int request_id)
{
// Should we add API to cancel permissions in the UI level?