diff options
Diffstat (limited to 'src/core/renderer/user_resource_controller.h')
-rw-r--r-- | src/core/renderer/user_resource_controller.h | 92 |
1 files changed, 30 insertions, 62 deletions
diff --git a/src/core/renderer/user_resource_controller.h b/src/core/renderer/user_resource_controller.h index 3a493b9b7..a5dab73f1 100644 --- a/src/core/renderer/user_resource_controller.h +++ b/src/core/renderer/user_resource_controller.h @@ -1,51 +1,16 @@ -/**************************************************************************** -** -** 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 USER_RESOURCE_CONTROLLER_H #define USER_RESOURCE_CONTROLLER_H #include "content/public/renderer/render_thread_observer.h" - -#include "common/user_script_data.h" +#include "qtwebengine/userscript/userscript.mojom.h" +#include "qtwebengine/userscript/user_script_data.h" +#include "mojo/public/cpp/bindings/associated_receiver.h" #include <QtCore/QHash> -#include <QtCore/QSet> +#include <QtCore/QList> namespace blink { class WebLocalFrame; @@ -53,45 +18,48 @@ class WebLocalFrame; namespace content { class RenderFrame; -class RenderView; } -class UserResourceController : public content::RenderThreadObserver +namespace QtWebEngineCore { + +class UserResourceController : public content::RenderThreadObserver, + qtwebengine::mojom::UserResourceController { public: - static UserResourceController *instance(); UserResourceController(); void renderFrameCreated(content::RenderFrame *); - void renderViewCreated(content::RenderView *); - void renderViewDestroyed(content::RenderView *renderView); - void addScriptForView(const UserScriptData &, content::RenderView *); - void removeScriptForView(const UserScriptData &, content::RenderView *); - void clearScriptsForView(content::RenderView *); + void renderFrameDestroyed(content::RenderFrame *); + void addScriptForFrame(const QtWebEngineCore::UserScriptData &, content::RenderFrame *); + void removeScriptForFrame(const QtWebEngineCore::UserScriptData &, content::RenderFrame *); + void clearScriptsForFrame(content::RenderFrame *); void RunScriptsAtDocumentEnd(content::RenderFrame *render_frame); + void BindReceiver( + mojo::PendingAssociatedReceiver<qtwebengine::mojom::UserResourceController> receiver); private: Q_DISABLE_COPY(UserResourceController) - class RenderFrameObserverHelper; - class RenderViewObserverHelper; + // content::RenderThreadObserver: + void RegisterMojoInterfaces(blink::AssociatedInterfaceRegistry *associated_interfaces) override; + void UnregisterMojoInterfaces(blink::AssociatedInterfaceRegistry *associated_interfaces) override; - // RenderProcessObserver implementation. - bool OnControlMessageReceived(const IPC::Message &message) override; - - void onAddScript(const UserScriptData &); - void onRemoveScript(const UserScriptData &); - void onClearScripts(); + class RenderFrameObserverHelper; - void runScripts(UserScriptData::InjectionPoint, blink::WebLocalFrame *); + void AddScript(const QtWebEngineCore::UserScriptData &data) override; + void RemoveScript(const QtWebEngineCore::UserScriptData &data) override; + void ClearScripts() override; - typedef QSet<uint64_t> UserScriptSet; - typedef QHash<const content::RenderView *, UserScriptSet> ViewUserScriptMap; - ViewUserScriptMap m_viewUserScriptMap; - QHash<uint64_t, UserScriptData> m_scripts; + void runScripts(QtWebEngineCore::UserScriptData::InjectionPoint, blink::WebLocalFrame *); + typedef QList<uint64_t> UserScriptList; + typedef QHash<const content::RenderFrame *, UserScriptList> FrameUserScriptMap; + FrameUserScriptMap m_frameUserScriptMap; + QHash<uint64_t, QtWebEngineCore::UserScriptData> m_scripts; + mojo::AssociatedReceiver<qtwebengine::mojom::UserResourceController> m_binding; friend class RenderFrameObserverHelper; }; +} // namespace QtWebEngineCore #endif // USER_RESOURCE_CONTROLLER_H |