summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2020-08-26 10:59:29 +0200
committerMichal Klocek <michal.klocek@qt.io>2020-09-25 09:44:13 +0200
commitb598974f9cbde2688a75488d6920e474343c84d2 (patch)
tree9ec80d08a598fd78ac5861e690e98765f4a63354 /src
parent8d22b1f6db1e4a3f98e665a52a904bfdf38fc91a (diff)
Use qwebenginescriptcollection in qml
Change-Id: I8bfb805661aa0d2bc2c66dbbb5843b2e551aa64d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/core/api/qwebenginescriptcollection.h2
-rw-r--r--src/webengine/api/qquickwebengineprofile.cpp7
-rw-r--r--src/webengine/api/qquickwebengineprofile.h1
-rw-r--r--src/webengine/api/qquickwebenginescriptcollection.cpp94
-rw-r--r--src/webengine/api/qquickwebenginescriptcollection.h6
-rw-r--r--src/webengine/api/qquickwebenginescriptcollection_p.h96
-rw-r--r--src/webengine/api/qquickwebengineview.cpp11
-rw-r--r--src/webengine/module.pro1
8 files changed, 24 insertions, 194 deletions
diff --git a/src/core/api/qwebenginescriptcollection.h b/src/core/api/qwebenginescriptcollection.h
index 511ee2531..79c3e7f19 100644
--- a/src/core/api/qwebenginescriptcollection.h
+++ b/src/core/api/qwebenginescriptcollection.h
@@ -72,6 +72,8 @@ private:
Q_DISABLE_COPY(QWebEngineScriptCollection)
friend class QWebEnginePagePrivate;
friend class QWebEngineProfilePrivate;
+ friend class QQuickWebEngineProfilePrivate;
+ friend class QQuickWebEngineViewPrivate;
QWebEngineScriptCollection(QWebEngineScriptCollectionPrivate *);
QScopedPointer<QWebEngineScriptCollectionPrivate> d;
diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp
index 7c0454e53..c264a73f9 100644
--- a/src/webengine/api/qquickwebengineprofile.cpp
+++ b/src/webengine/api/qquickwebengineprofile.cpp
@@ -41,8 +41,9 @@
#include "qquickwebengineprofile_p.h"
#include "qquickwebenginesettings_p.h"
+#include "qwebenginescriptcollection.h"
+#include "qwebenginescriptcollection_p.h"
#include "qquickwebenginescriptcollection.h"
-#include "qquickwebenginescriptcollection_p.h"
#include "qquickwebengineview_p_p.h"
#include "qwebenginecookiestore.h"
#include "qwebenginenotification.h"
@@ -160,8 +161,8 @@ QT_BEGIN_NAMESPACE
QQuickWebEngineProfilePrivate::QQuickWebEngineProfilePrivate(ProfileAdapter *profileAdapter)
: m_settings(new QQuickWebEngineSettings())
, m_profileAdapter(profileAdapter)
- , m_scriptCollection(new QQuickWebEngineScriptCollection(
- new QQuickWebEngineScriptCollectionPrivate(profileAdapter->userResourceController())))
+ , m_scriptCollection(new QQuickWebEngineScriptCollection(new QWebEngineScriptCollection(
+ new QWebEngineScriptCollectionPrivate(profileAdapter->userResourceController()))))
{
profileAdapter->addClient(this);
// Fullscreen API was implemented before the supported setting, so we must
diff --git a/src/webengine/api/qquickwebengineprofile.h b/src/webengine/api/qquickwebengineprofile.h
index ccc5a9098..a0480b424 100644
--- a/src/webengine/api/qquickwebengineprofile.h
+++ b/src/webengine/api/qquickwebengineprofile.h
@@ -40,7 +40,6 @@
#ifndef QQUICKWEBENGINEPROFILE_H
#define QQUICKWEBENGINEPROFILE_H
-
#include <QtWebEngine/qtwebengineglobal.h>
#include <QtCore/QObject>
#include <QtCore/QScopedPointer>
diff --git a/src/webengine/api/qquickwebenginescriptcollection.cpp b/src/webengine/api/qquickwebenginescriptcollection.cpp
index f3faa2591..4e4fb6579 100644
--- a/src/webengine/api/qquickwebenginescriptcollection.cpp
+++ b/src/webengine/api/qquickwebenginescriptcollection.cpp
@@ -38,8 +38,8 @@
****************************************************************************/
#include "qquickwebenginescriptcollection.h"
-#include "qquickwebenginescriptcollection_p.h"
-#include "renderer_host/user_resource_controller_host.h"
+#include "qwebenginescriptcollection.h"
+#include "qwebenginescriptcollection_p.h"
#include <QtQml/QQmlInfo>
#include <QtQml/private/qqmlengine_p.h>
#include <QtQml/private/qv4scopedvalue_p.h>
@@ -80,8 +80,8 @@ QWebEngineScript parseScript(const QJSValue &value, bool *ok)
}
QQuickWebEngineScriptCollection::QQuickWebEngineScriptCollection(
- QQuickWebEngineScriptCollectionPrivate *collectionPrivate)
- : d(collectionPrivate)
+ QWebEngineScriptCollection *collection)
+ : d(collection)
{
}
@@ -99,12 +99,12 @@ bool QQuickWebEngineScriptCollection::contains(const QWebEngineScript &value) co
QWebEngineScript QQuickWebEngineScriptCollection::findScript(const QString &name) const
{
- return d->find(name);
+ return d->findScript(name);
}
QList<QWebEngineScript> QQuickWebEngineScriptCollection::findScripts(const QString &name) const
{
- return d->toList(name);
+ return d->findScripts(name);
}
void QQuickWebEngineScriptCollection::insert(const QWebEngineScript &s)
@@ -114,9 +114,7 @@ void QQuickWebEngineScriptCollection::insert(const QWebEngineScript &s)
void QQuickWebEngineScriptCollection::insert(const QList<QWebEngineScript> &list)
{
- d->reserve(list.size());
- for (const QWebEngineScript &s : list)
- d->insert(s);
+ d->insert(list);
}
bool QQuickWebEngineScriptCollection::remove(const QWebEngineScript &script)
@@ -134,83 +132,9 @@ QList<QWebEngineScript> QQuickWebEngineScriptCollection::toList() const
return d->toList();
}
-QQuickWebEngineScriptCollectionPrivate::QQuickWebEngineScriptCollectionPrivate(
- QtWebEngineCore::UserResourceControllerHost *controller,
- QSharedPointer<QtWebEngineCore::WebContentsAdapter> webContents)
- : m_scriptController(controller), m_contents(webContents)
-{
-}
-
-int QQuickWebEngineScriptCollectionPrivate::count() const
-{
- return m_scripts.count();
-}
-
-bool QQuickWebEngineScriptCollectionPrivate::contains(const QWebEngineScript &s) const
-{
- return m_scripts.contains(s);
-}
-
-void QQuickWebEngineScriptCollectionPrivate::insert(const QWebEngineScript &script)
-{
- m_scripts.append(script);
- if (!m_contents || m_contents->isInitialized())
- m_scriptController->addUserScript(*script.d, m_contents.data());
-}
-
-bool QQuickWebEngineScriptCollectionPrivate::remove(const QWebEngineScript &script)
-{
- if (!m_contents || m_contents->isInitialized())
- m_scriptController->removeUserScript(*script.d, m_contents.data());
- return m_scripts.removeAll(script);
-}
-
-QList<QWebEngineScript>
-QQuickWebEngineScriptCollectionPrivate::toList(const QString &scriptName) const
-{
- QList<QWebEngineScript> ret;
- for (const QWebEngineScript &script : qAsConst(m_scripts))
- if (scriptName == script.name())
- ret.append(script);
- return ret;
-}
-
-QWebEngineScript QQuickWebEngineScriptCollectionPrivate::find(const QString &name) const
-{
- for (const QWebEngineScript &script : qAsConst(m_scripts))
- if (name == script.name())
- return script;
- return QWebEngineScript();
-}
-
-void QQuickWebEngineScriptCollectionPrivate::clear()
-{
- m_scripts.clear();
- if (!m_contents || m_contents->isInitialized())
- m_scriptController->clearAllScripts(m_contents.data());
-}
-
-void QQuickWebEngineScriptCollectionPrivate::reserve(int capacity)
-{
- m_scripts.reserve(capacity);
- if (!m_contents || m_contents->isInitialized())
- m_scriptController->reserve(m_contents.data(), capacity);
-}
-
-void QQuickWebEngineScriptCollectionPrivate::initializationFinished(
- QSharedPointer<QtWebEngineCore::WebContentsAdapter> contents)
-{
- Q_ASSERT(m_contents);
- Q_ASSERT(contents);
-
- for (const QWebEngineScript &script : qAsConst(m_scripts))
- m_scriptController->addUserScript(*script.d, contents.data());
- m_contents = contents;
-}
-
QJSValue QQuickWebEngineScriptCollection::collection() const
{
- const QList<QWebEngineScript> &list = d->m_scripts;
+ const QList<QWebEngineScript> &list = toList();
QQmlContext *context = QQmlEngine::contextForObject(this);
QQmlEngine *engine = context->engine();
QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine);
@@ -240,7 +164,7 @@ void QQuickWebEngineScriptCollection::setCollection(const QJSValue &scripts)
}
scriptList.append(s);
}
- if (scriptList != d->m_scripts) {
+ if (scriptList != toList()) {
clear();
insert(scriptList);
Q_EMIT collectionChanged();
diff --git a/src/webengine/api/qquickwebenginescriptcollection.h b/src/webengine/api/qquickwebenginescriptcollection.h
index 5f80f9c38..a3e1695c3 100644
--- a/src/webengine/api/qquickwebenginescriptcollection.h
+++ b/src/webengine/api/qquickwebenginescriptcollection.h
@@ -49,7 +49,7 @@
#include <QtQml/QJSValue>
QT_BEGIN_NAMESPACE
-class QQuickWebEngineScriptCollectionPrivate;
+class QWebEngineScriptCollection;
class Q_WEBENGINE_EXPORT QQuickWebEngineScriptCollection : public QObject
{
@@ -80,8 +80,8 @@ Q_SIGNALS:
private:
Q_DISABLE_COPY(QQuickWebEngineScriptCollection)
- QQuickWebEngineScriptCollection(QQuickWebEngineScriptCollectionPrivate *);
- QScopedPointer<QQuickWebEngineScriptCollectionPrivate> d;
+ QQuickWebEngineScriptCollection(QWebEngineScriptCollection *d);
+ QScopedPointer<QWebEngineScriptCollection> d;
friend class QQuickWebEngineProfilePrivate;
friend class QQuickWebEngineViewPrivate;
};
diff --git a/src/webengine/api/qquickwebenginescriptcollection_p.h b/src/webengine/api/qquickwebenginescriptcollection_p.h
deleted file mode 100644
index d8eb08ca0..000000000
--- a/src/webengine/api/qquickwebenginescriptcollection_p.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 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$
-**
-****************************************************************************/
-
-#ifndef QQUICKWEBENGINESCRIPTCOLLECTION_P_H
-#define QQUICKWEBENGINESCRIPTCOLLECTION_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "qtwebenginecoreglobal.h"
-
-#include "web_contents_adapter.h"
-
-#include <QtCore/QSet>
-#include <QtCore/QSharedPointer>
-#include <QtWebEngineCore/QWebEngineScript>
-
-namespace QtWebEngineCore {
-class UserResourceControllerHost;
-} // namespace
-
-QT_BEGIN_NAMESPACE
-class QQuickWebEngineScriptCollectionPrivate
-{
-public:
- QQuickWebEngineScriptCollectionPrivate(
- QtWebEngineCore::UserResourceControllerHost *,
- QSharedPointer<QtWebEngineCore::WebContentsAdapter> =
- QSharedPointer<QtWebEngineCore::WebContentsAdapter>());
-
- int count() const;
- bool contains(const QWebEngineScript &) const;
- QList<QWebEngineScript> toList(const QString &scriptName = QString()) const;
- QWebEngineScript find(const QString &name) const;
-
- void initializationFinished(QSharedPointer<QtWebEngineCore::WebContentsAdapter> contents);
-
- void insert(const QWebEngineScript &);
- bool remove(const QWebEngineScript &);
- void clear();
- void reserve(int);
-
-private:
- QtWebEngineCore::UserResourceControllerHost *m_scriptController;
- QSharedPointer<QtWebEngineCore::WebContentsAdapter> m_contents;
- QList<QWebEngineScript> m_scripts;
- friend class QQuickWebEngineScriptCollection;
-};
-
-QT_END_NAMESPACE
-
-#endif // QWEBENGINESCRIPTCOLLECTION__PH
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 1ef5466e7..fe9d32b8b 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -62,8 +62,9 @@
#include "qwebenginefindtextresult.h"
#include "qwebenginefullscreenrequest.h"
#include "qwebenginequotarequest.h"
+#include "qwebenginescriptcollection.h"
+#include "qwebenginescriptcollection_p.h"
#include "qwebengineregisterprotocolhandlerrequest.h"
-#include "qquickwebenginescriptcollection_p.h"
#if QT_CONFIG(webengine_testsupport)
#include "qquickwebenginetestsupport_p.h"
#endif
@@ -181,9 +182,9 @@ void QQuickWebEngineViewPrivate::initializeProfile()
m_profile->d_ptr->addWebContentsAdapterClient(this);
m_settings.reset(new QQuickWebEngineSettings(m_profile->settings()));
adapter->setClient(this);
- m_scriptCollection.reset(
- new QQuickWebEngineScriptCollection(new QQuickWebEngineScriptCollectionPrivate(
- profileAdapter()->userResourceController(), adapter)));
+ m_scriptCollection.reset(new QQuickWebEngineScriptCollection(
+ new QWebEngineScriptCollection(new QWebEngineScriptCollectionPrivate(
+ profileAdapter()->userResourceController(), adapter))));
}
}
@@ -929,7 +930,7 @@ void QQuickWebEngineViewPrivate::initializationFinished()
if (devToolsView && devToolsView->d_ptr->adapter)
adapter->openDevToolsFrontend(devToolsView->d_ptr->adapter);
- m_scriptCollection->d->initializationFinished(adapter);
+ m_scriptCollection->d->d->initializationFinished(adapter);
if (q->window())
adapter->setVisible(q->isVisible());
diff --git a/src/webengine/module.pro b/src/webengine/module.pro
index 91f13c793..5763eaa5c 100644
--- a/src/webengine/module.pro
+++ b/src/webengine/module.pro
@@ -54,7 +54,6 @@ HEADERS = \
api/qquickwebengineview_p.h \
api/qquickwebengineview_p_p.h \
api/qquickwebenginescriptcollection.h \
- api/qquickwebenginescriptcollection_p.h \
render_widget_host_view_qt_delegate_quick.h \
render_widget_host_view_qt_delegate_quickwindow.h \
ui_delegates_manager.h