diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-01-26 10:49:54 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-03-07 17:08:49 +0000 |
commit | 88b1f81187018921a04b0ec0726eb8b567d4abe9 (patch) | |
tree | 7f99582769a7657e03d09af8b1d814b6961bba73 | |
parent | 93ca852dbf00e93c07269e8cca389bc1222130d3 (diff) |
Add stub for RequestPermissions
This doesn't appear used yet, and our implementation mirrors that of the
Android WebView.
Task-number: QTBUG-51173
Change-Id: I53396b8b97febd45441cf0add54de4f47b289348
Reviewed-by: Michael BrĂ¼ning <michael.bruning@theqtcompany.com>
-rw-r--r-- | src/core/permission_manager_qt.cpp | 31 | ||||
-rw-r--r-- | src/core/permission_manager_qt.h | 8 |
2 files changed, 38 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? diff --git a/src/core/permission_manager_qt.h b/src/core/permission_manager_qt.h index 0caeb4bd8..7c42a06e7 100644 --- a/src/core/permission_manager_qt.h +++ b/src/core/permission_manager_qt.h @@ -78,6 +78,14 @@ public: const GURL& requesting_origin, const GURL& embedding_origin) override; + int RequestPermissions( + const std::vector<content::PermissionType>& permission, + content::RenderFrameHost* render_frame_host, + const GURL& requesting_origin, + bool user_gesture, + const base::Callback<void( + const std::vector<content::PermissionStatus>&)>& callback) override; + void RegisterPermissionUsage( content::PermissionType permission, const GURL& requesting_origin, |