diff options
Diffstat (limited to 'src/core/permission_manager_qt.h')
-rw-r--r-- | src/core/permission_manager_qt.h | 129 |
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; }; |