summaryrefslogtreecommitdiffstats
path: root/src/core/permission_manager_qt.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/permission_manager_qt.h')
-rw-r--r--src/core/permission_manager_qt.h129
1 files changed, 49 insertions, 80 deletions
diff --git a/src/core/permission_manager_qt.h b/src/core/permission_manager_qt.h
index b3bd3dc7a..b91498d3d 100644
--- a/src/core/permission_manager_qt.h
+++ b/src/core/permission_manager_qt.h
@@ -1,120 +1,89 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWebEngine module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
#ifndef PERMISSION_MANAGER_QT_H
#define PERMISSION_MANAGER_QT_H
-#include "base/callback.h"
+#include "base/functional/callback.h"
#include "content/public/browser/permission_controller_delegate.h"
#include "profile_adapter.h"
-#include <QHash>
+#include <map>
namespace QtWebEngineCore {
-class PermissionManagerQt : public content::PermissionControllerDelegate {
-
+class PermissionManagerQt : public content::PermissionControllerDelegate
+{
public:
PermissionManagerQt();
~PermissionManagerQt();
- typedef ProfileAdapter::PermissionType PermissionType;
- void permissionRequestReply(const QUrl &origin, PermissionType type, bool reply);
- bool checkPermission(const QUrl &origin, PermissionType type);
+ void permissionRequestReply(const QUrl &origin, ProfileAdapter::PermissionType type, ProfileAdapter::PermissionState reply);
+ bool checkPermission(const QUrl &origin, ProfileAdapter::PermissionType type);
// content::PermissionManager implementation:
- int RequestPermission(
- content::PermissionType permission,
- content::RenderFrameHost* render_frame_host,
- const GURL& requesting_origin,
- bool user_gesture,
- const base::Callback<void(blink::mojom::PermissionStatus)>& callback) override;
-
blink::mojom::PermissionStatus GetPermissionStatus(
- content::PermissionType permission,
+ blink::PermissionType permission,
const GURL& requesting_origin,
const GURL& embedding_origin) override;
- blink::mojom::PermissionStatus GetPermissionStatusForFrame(
- content::PermissionType permission,
- content::RenderFrameHost *render_frame_host,
- const GURL& requesting_origin) override;
+ blink::mojom::PermissionStatus GetPermissionStatusForCurrentDocument(blink::PermissionType, content::RenderFrameHost *) override;
+
+ blink::mojom::PermissionStatus GetPermissionStatusForWorker(blink::PermissionType, content::RenderProcessHost *, const GURL &) override;
+
+ blink::mojom::PermissionStatus GetPermissionStatusForEmbeddedRequester(blink::PermissionType, content::RenderFrameHost*, const url::Origin&) override;
+
+ content::PermissionResult GetPermissionResultForOriginWithoutContext(blink::PermissionType, const url::Origin&, const url::Origin&) override;
void ResetPermission(
- content::PermissionType permission,
+ blink::PermissionType permission,
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<blink::mojom::PermissionStatus>&)>& callback) override;
+ void RequestPermissions(
+ content::RenderFrameHost *render_frame_host,
+ const content::PermissionRequestDescription &request_description,
+ base::OnceCallback<void(const std::vector<blink::mojom::PermissionStatus>&)> callback) override;
+
+ void RequestPermissionsFromCurrentDocument(
+ content::RenderFrameHost *render_frame_host,
+ const content::PermissionRequestDescription &request_description,
+ base::OnceCallback<void(const std::vector<blink::mojom::PermissionStatus> &)> callback) override;
- int SubscribePermissionStatusChange(
- content::PermissionType permission,
+ content::PermissionControllerDelegate::SubscriptionId SubscribePermissionStatusChange(
+ blink::PermissionType permission,
+ content::RenderProcessHost* render_process_host,
+ content::RenderFrameHost* render_frame_host,
const GURL& requesting_origin,
- const GURL& embedding_origin,
- const base::Callback<void(blink::mojom::PermissionStatus)>& callback) override;
+ const base::RepeatingCallback<void(blink::mojom::PermissionStatus)> callback) override;
- void UnsubscribePermissionStatusChange(int subscription_id) override;
+ void UnsubscribePermissionStatusChange(content::PermissionControllerDelegate::SubscriptionId subscription_id) override;
private:
- QHash<QPair<QUrl, PermissionType>, bool> m_permissions;
- struct RequestOrSubscription {
- PermissionType type;
+ QHash<QPair<QUrl, ProfileAdapter::PermissionType>, bool> m_permissions;
+ struct Request {
+ int id;
+ ProfileAdapter::PermissionType type;
QUrl origin;
- base::Callback<void(blink::mojom::PermissionStatus)> callback;
+ base::OnceCallback<void(blink::mojom::PermissionStatus)> callback;
};
struct MultiRequest {
- std::vector<content::PermissionType> types;
+ int id;
+ std::vector<blink::PermissionType> types;
+ QUrl origin;
+ base::OnceCallback<void(const std::vector<blink::mojom::PermissionStatus>&)> callback;
+ };
+ struct Subscription {
+ ProfileAdapter::PermissionType type;
QUrl origin;
- base::Callback<void(const std::vector<blink::mojom::PermissionStatus>&)> callback;
+ base::RepeatingCallback<void(blink::mojom::PermissionStatus)> callback;
};
- QHash<int, RequestOrSubscription> m_requests;
- QHash<int, RequestOrSubscription> m_subscribers;
- QHash<int, MultiRequest> m_multiRequests;
+ std::vector<Request> m_requests;
+ std::vector<MultiRequest> m_multiRequests;
+ std::map<content::PermissionControllerDelegate::SubscriptionId, Subscription> m_subscribers;
+ content::PermissionControllerDelegate::SubscriptionId::Generator subscription_id_generator_;
int m_requestIdCount;
- int m_subscriberIdCount;
};