summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2020-08-25 11:37:34 +0200
committerMichal Klocek <michal.klocek@qt.io>2020-09-24 15:14:59 +0200
commitf613095208911cfa6b8609f8b87b4984dc55e69c (patch)
tree09a25473d27a2b7d174966fb28594c07de8db510 /src
parente2e249b8bb399ef7bcf6fe3be0b4f2fc9fa18182 (diff)
Reuse qwebenginescript in qml
Reuse core class and adopt api: * add missing setUrlSource to c++ class * fix typing for setRunsOnSubFrames * remove all invokable from setters in qml, we use properties for that anyway. * remove invokable toString , since we have debug stream operator in c++ [ChangeLog] In qml websetttings.runOnSubframes is now websettings.runsOnSubFrames Change-Id: Iba822a7aa6a59940484c972726d710a1b66cb20d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/core/api/qwebenginescript.cpp36
-rw-r--r--src/core/api/qwebenginescript.h25
-rw-r--r--src/core/renderer_host/user_resource_controller_host.h1
-rw-r--r--src/webengine/api/qquickwebenginescript.cpp387
-rw-r--r--src/webengine/api/qquickwebenginescript.h111
-rw-r--r--src/webengine/api/qquickwebenginescriptcollection.cpp52
-rw-r--r--src/webengine/api/qquickwebenginescriptcollection.h16
-rw-r--r--src/webengine/api/qquickwebenginescriptcollection_p.h14
-rw-r--r--src/webengine/api/qquickwebenginesingleton.cpp4
-rw-r--r--src/webengine/api/qquickwebenginesingleton_p.h6
-rw-r--r--src/webengine/api/qquickwebengineview.cpp26
-rw-r--r--src/webengine/api/qquickwebengineview_p.h1
-rw-r--r--src/webengine/module.pro2
-rw-r--r--src/webengine/plugin/plugin.cpp5
14 files changed, 120 insertions, 566 deletions
diff --git a/src/core/api/qwebenginescript.cpp b/src/core/api/qwebenginescript.cpp
index e56017166..e3917566a 100644
--- a/src/core/api/qwebenginescript.cpp
+++ b/src/core/api/qwebenginescript.cpp
@@ -41,9 +41,12 @@
#include "user_script.h"
#include <QtCore/QDebug>
+#include <QtCore/QFile>
using QtWebEngineCore::UserScript;
+QT_BEGIN_NAMESPACE
+
/*!
\class QWebEngineScript
\inmodule QtWebEngineCore
@@ -172,6 +175,37 @@ void QWebEngineScript::setName(const QString &scriptName)
d->setName(scriptName);
}
+
+QUrl QWebEngineScript::sourceUrl() const
+{
+ return d->sourceUrl();
+}
+
+void QWebEngineScript::setSourceUrl(const QUrl &url)
+{
+ if (url == sourceUrl())
+ return;
+
+ d->setSourceUrl(url);
+
+ QFile file;
+ if (url.scheme().compare(QLatin1String("qrc"), Qt::CaseInsensitive) == 0) {
+ if (url.authority().isEmpty())
+ file.setFileName(QLatin1Char(':') + url.path());
+ return;
+ } else {
+ file.setFileName(url.toLocalFile());
+ }
+
+ if (!file.open(QIODevice::ReadOnly)) {
+ qWarning() << "Can't open user script " << url;
+ return;
+ }
+
+ QString source = QString::fromUtf8(file.readAll());
+ setSourceCode(source);
+}
+
/*!
Returns the source of the script.
*/
@@ -291,3 +325,5 @@ QDebug operator<<(QDebug d, const QWebEngineScript &script)
return d.space();
}
#endif
+
+QT_END_NAMESPACE
diff --git a/src/core/api/qwebenginescript.h b/src/core/api/qwebenginescript.h
index 628e24ed5..42a98e3e2 100644
--- a/src/core/api/qwebenginescript.h
+++ b/src/core/api/qwebenginescript.h
@@ -41,9 +41,9 @@
#define QWEBENGINESCRIPT_H
#include <QtWebEngineCore/qtwebenginecoreglobal.h>
-
-#include <QtCore/qshareddata.h>
-#include <QtCore/qstring.h>
+#include <QtCore/QUrl>
+#include <QtCore/QObject>
+#include <QtCore/QSharedDataPointer>
namespace QtWebEngineCore {
class UserScript;
@@ -52,19 +52,33 @@ class UserScript;
QT_BEGIN_NAMESPACE
class Q_WEBENGINECORE_EXPORT QWebEngineScript {
+
+ Q_GADGET
+ Q_PROPERTY(QString name READ name WRITE setName FINAL)
+ Q_PROPERTY(QUrl sourceUrl READ sourceUrl WRITE setSourceUrl FINAL)
+ Q_PROPERTY(QString sourceCode READ sourceCode WRITE setSourceCode FINAL)
+ Q_PROPERTY(InjectionPoint injectionPoint READ injectionPoint WRITE setInjectionPoint FINAL)
+ Q_PROPERTY(quint32 worldId READ worldId WRITE setWorldId FINAL)
+ Q_PROPERTY(bool runsOnSubFrames READ runsOnSubFrames WRITE setRunsOnSubFrames FINAL)
+
public:
+
enum InjectionPoint {
Deferred,
DocumentReady,
DocumentCreation
};
+ Q_ENUM(InjectionPoint)
+
enum ScriptWorldId {
MainWorld = 0,
ApplicationWorld,
UserWorld
};
+ Q_ENUM(ScriptWorldId)
+
QWebEngineScript();
QWebEngineScript(const QWebEngineScript &other);
~QWebEngineScript();
@@ -76,6 +90,9 @@ public:
QString name() const;
void setName(const QString &);
+ QUrl sourceUrl() const;
+ void setSourceUrl(const QUrl &url);
+
QString sourceCode() const;
void setSourceCode(const QString &);
@@ -93,8 +110,8 @@ public:
{ return !operator==(other); }
void swap(QWebEngineScript &other) { qSwap(d, other.d); }
-
private:
+ friend class QQuickWebEngineScriptCollectionPrivate;
friend class QWebEngineScriptCollectionPrivate;
friend class QWebEngineScriptCollection;
QWebEngineScript(const QtWebEngineCore::UserScript &);
diff --git a/src/core/renderer_host/user_resource_controller_host.h b/src/core/renderer_host/user_resource_controller_host.h
index 7b89cb893..76954e0cc 100644
--- a/src/core/renderer_host/user_resource_controller_host.h
+++ b/src/core/renderer_host/user_resource_controller_host.h
@@ -64,6 +64,7 @@ class WebContents;
namespace QtWebEngineCore {
+class UserScript;
class WebContentsAdapter;
class Q_WEBENGINECORE_PRIVATE_EXPORT UserResourceControllerHost
diff --git a/src/webengine/api/qquickwebenginescript.cpp b/src/webengine/api/qquickwebenginescript.cpp
deleted file mode 100644
index 81fd0b925..000000000
--- a/src/webengine/api/qquickwebenginescript.cpp
+++ /dev/null
@@ -1,387 +0,0 @@
-/****************************************************************************
-**
-** 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$
-**
-****************************************************************************/
-
-#include "qquickwebenginescript.h"
-
-#include <QQmlFile>
-#include <QtCore/QDebug>
-#include <QtCore/QFile>
-#include <QtCore/QTimerEvent>
-#include "renderer_host/user_resource_controller_host.h"
-
-using QtWebEngineCore::UserScript;
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \class QQuickWebEngineScript
- \brief Enables the injection of scripts in the JavaScript engine.
- \inmodule QtWebEngine
- \since 5.9
-
- The QQuickWebEngineScript type enables the programmatic injection of so called \e {user scripts} in
- the JavaScript engine at different points, determined by injectionPoint, during the loading of
- web content.
-
- Scripts can be executed either in the main JavaScript \e world, along with the rest of the
- JavaScript coming from the web contents, or in their own isolated world. While the DOM of the
- page can be accessed from any world, JavaScript variables of a function defined in one world are
- not accessible from a different one. The worldId property provides some predefined IDs for this
- purpose.
-*/
-
-/*!
- \enum QQuickWebEngineScript::InjectionPoint
-
- The point in the loading process at which the script will be executed.
-
- \value DocumentCreation
- The script will be executed as soon as the document is created. This is not suitable for
- any DOM operation.
- \value DocumentReady
- The script will run as soon as the DOM is ready. This is equivalent to the
- \c DOMContentLoaded event firing in JavaScript.
- \value Deferred
- The script will run when the page load finishes, or 500 ms after the document is ready,
- whichever comes first.
-*/
-
-/*!
- \enum QQuickWebEngineScript::ScriptWorldId
-
- The world ID defining which isolated world the script is executed in. Besides these predefined
- IDs custom IDs can be used, but must be integers between \c 0 and \c 256.
-
- \value MainWorld
- The world used by the page's web contents. It can be useful in order to expose custom
- functionality to web contents in certain scenarios.
- \value ApplicationWorld
- The default isolated world used for application level functionality implemented in
- JavaScript.
- \value UserWorld
- The first isolated world to be used by scripts set by users if the application is not
- making use of more worlds. As a rule of thumb, if that functionality is exposed to the
- application users, each individual script should probably get its own isolated world.
-*/
-
-/*!
- \qmltype WebEngineScript
- \instantiates QQuickWebEngineScript
- \inqmlmodule QtWebEngine
- \since QtWebEngine 1.1
- \brief Enables the programmatic injection of scripts in the JavaScript engine.
-
- The WebEngineScript type enables the programmatic injection of so called \e {user scripts} in
- the JavaScript engine at different points, determined by injectionPoint, during the loading of
- web content.
-
- Scripts can be executed either in the main JavaScript \e world, along with the rest of the
- JavaScript coming from the web contents, or in their own isolated world. While the DOM of the
- page can be accessed from any world, JavaScript variables of a function defined in one world are
- not accessible from a different one. The worldId property provides some predefined IDs for this
- purpose.
-
- The following \l Greasemonkey attributes are supported since Qt 5.8:
- \c @exclude, \c @include, \c @name, \c @match, and \c @run-at.
-
- Use \l{WebEngineView::userScripts}{WebEngineView.userScripts} to access a list of scripts
- attached to the web view.
-*/
-
-/*!
- Constructs a new QQuickWebEngineScript with the parent \a parent.
-*/
-QQuickWebEngineScript::QQuickWebEngineScript() : d(new QtWebEngineCore::UserScript) { }
-
-/*!
- \internal
-*/
-QQuickWebEngineScript::~QQuickWebEngineScript()
-{
-}
-
-QQuickWebEngineScript::QQuickWebEngineScript(const QQuickWebEngineScript &other) : d(other.d) { }
-
-QQuickWebEngineScript &QQuickWebEngineScript::operator=(const QQuickWebEngineScript &other)
-{
- d = other.d;
- return *this;
-}
-
-bool QQuickWebEngineScript::operator==(const QQuickWebEngineScript &other) const
-{
- return d == other.d || *d == *(other.d);
-}
-
-/*!
- Returns the script object as string.
-*/
-QString QQuickWebEngineScript::toString() const
-{
- if (d->isNull())
- return QStringLiteral("QWebEngineScript()");
- QString ret = QStringLiteral("QWebEngineScript(") % d->name() % QStringLiteral(", ");
- switch (d->injectionPoint()) {
- case UserScript::DocumentElementCreation:
- ret.append(QStringLiteral("WebEngineScript::DocumentCreation, "));
- break;
- case UserScript::DocumentLoadFinished:
- ret.append(QStringLiteral("WebEngineScript::DocumentReady, "));
- break;
- case UserScript::AfterLoad:
- ret.append(QStringLiteral("WebEngineScript::Deferred, "));
- break;
- }
- ret.append(QString::number(d->worldId()) % QStringLiteral(", ")
- % (d->runsOnSubFrames() ? QStringLiteral("true") : QStringLiteral("false"))
- % QStringLiteral(", ") % d->sourceCode() % QLatin1Char(')'));
- return ret;
-}
-
-/*!
- \property QQuickWebEngineScript::name
- \brief The name of the script.
-
- Can be useful to retrieve a particular script from
- QQuickWebEngineProfile::userScripts.
-*/
-
-/*!
- \qmlproperty string WebEngineScript::name
-
- The name of the script. Can be useful to retrieve a particular script from
- \l{WebEngineView::userScripts}{WebEngineView.userScripts}.
-*/
-QString QQuickWebEngineScript::name() const
-{
- return d->name();
-}
-
-/*!
- \property QQuickWebEngineScript::sourceUrl
- \brief The remote source location of the user script (if any).
-
- Unlike \l sourceCode, this property allows referring to user scripts that
- are not already loaded in memory, for instance, when stored on disk.
-
- Setting this property will change the \l sourceCode of the script.
-
- \note At present, only file-based sources are supported.
-
- \sa QQuickWebEngineScript::sourceCode
-*/
-
-/*!
- \qmlproperty url WebEngineScript::sourceUrl
-
- This property holds the remote source location of the user script (if any).
-
- Unlike \l sourceCode, this property allows referring to user scripts that
- are not already loaded in memory, for instance, when stored on disk.
-
- Setting this property will change the \l sourceCode of the script.
-
- \note At present, only file-based sources are supported.
-
- \sa sourceCode
-*/
-QUrl QQuickWebEngineScript::sourceUrl() const
-{
- return d->sourceUrl();
-}
-
-/*!
- \property QQuickWebEngineScript::sourceCode
- \brief The JavaScript source code of the user script.
-
- \sa QQuickWebEngineScript::sourceUrl
-*/
-
-/*!
- \qmlproperty string WebEngineScript::sourceCode
-
- This property holds the JavaScript source code of the user script.
-
- \sa sourceUrl
-*/
-QString QQuickWebEngineScript::sourceCode() const
-{
- return d->sourceCode();
-}
-
-ASSERT_ENUMS_MATCH(QQuickWebEngineScript::Deferred, UserScript::AfterLoad)
-ASSERT_ENUMS_MATCH(QQuickWebEngineScript::DocumentReady, UserScript::DocumentLoadFinished)
-ASSERT_ENUMS_MATCH(QQuickWebEngineScript::DocumentCreation, UserScript::DocumentElementCreation)
-
-/*!
- \property QQuickWebEngineScript::injectionPoint
- \brief The point in the loading process at which the script will be executed.
-
- The default value is \c Deferred.
-*/
-
-/*!
- \qmlproperty enumeration WebEngineScript::injectionPoint
-
- The point in the loading process at which the script will be executed.
- The default value is \c Deferred.
-
- \value WebEngineScript.DocumentCreation
- The script will be executed as soon as the document is created. This is not suitable for
- any DOM operation.
- \value WebEngineScript.DocumentReady
- The script will run as soon as the DOM is ready. This is equivalent to the
- \c DOMContentLoaded event firing in JavaScript.
- \value WebEngineScript.Deferred
- The script will run when the page load finishes, or 500 ms after the document is ready,
- whichever comes first.
-*/
-QQuickWebEngineScript::InjectionPoint QQuickWebEngineScript::injectionPoint() const
-{
- return static_cast<QQuickWebEngineScript::InjectionPoint>(d->injectionPoint());
-}
-
-/*!
- \property QQuickWebEngineScript::worldId
- \brief The world ID defining which isolated world the script is executed in.
-*/
-
-/*!
- \qmlproperty enumeration WebEngineScript::worldId
-
- The world ID defining which isolated world the script is executed in.
-
- \value WebEngineScript.MainWorld
- The world used by the page's web contents. It can be useful in order to expose custom
- functionality to web contents in certain scenarios.
- \value WebEngineScript.ApplicationWorld
- The default isolated world used for application level functionality implemented in
- JavaScript.
- \value WebEngineScript.UserWorld
- The first isolated world to be used by scripts set by users if the application is not
- making use of more worlds. As a rule of thumb, if that functionality is exposed to the
- application users, each individual script should probably get its own isolated world.
-*/
-QQuickWebEngineScript::ScriptWorldId QQuickWebEngineScript::worldId() const
-{
- return static_cast<QQuickWebEngineScript::ScriptWorldId>(d->worldId());
-}
-
-/*!
- \property QQuickWebEngineScript::runOnSubframes
- \brief Whether the script is executed on every frame or only on the main frame.
-
- Set this property to \c true if the script is executed on every frame in the page, or \c false
- if it is only run for the main frame.
- The default value is \c{false}.
-*/
-
-/*!
- \qmlproperty int WebEngineScript::runOnSubframes
-
- Set this property to \c true if the script is executed on every frame in the page, or \c false
- if it is only ran for the main frame.
- The default value is \c{false}.
- */
-bool QQuickWebEngineScript::runOnSubframes() const
-{
- return d->runsOnSubFrames();
-}
-
-void QQuickWebEngineScript::setName(const QString &name)
-{
- if (name == QQuickWebEngineScript::name())
- return;
- d->setName(name);
-}
-
-void QQuickWebEngineScript::setSourceCode(const QString &code)
-{
- if (code == sourceCode())
- return;
-
- // setting the source directly resets the sourceUrl
- if (d->sourceUrl() != QUrl()) {
- d->setSourceUrl(QUrl());
- }
-
- d->setSourceCode(code);
-}
-
-void QQuickWebEngineScript::setSourceUrl(const QUrl &url)
-{
- if (url == sourceUrl())
- return;
-
- d->setSourceUrl(url);
-
- QFile f(QQmlFile::urlToLocalFileOrQrc(url));
- if (!f.open(QIODevice::ReadOnly)) {
- qWarning() << "Can't open user script " << url;
- return;
- }
-
- QString source = QString::fromUtf8(f.readAll());
- d->setSourceCode(source);
-}
-
-void QQuickWebEngineScript::setInjectionPoint(QQuickWebEngineScript::InjectionPoint injectionPoint)
-{
- if (injectionPoint == QQuickWebEngineScript::injectionPoint())
- return;
- d->setInjectionPoint(static_cast<UserScript::InjectionPoint>(injectionPoint));
-}
-
-
-void QQuickWebEngineScript::setWorldId(QQuickWebEngineScript::ScriptWorldId scriptWorldId)
-{
- if (scriptWorldId == worldId())
- return;
- d->setWorldId(scriptWorldId);
-}
-
-
-void QQuickWebEngineScript::setRunOnSubframes(bool on)
-{
- if (on == runOnSubframes())
- return;
- d->setRunsOnSubFrames(on);
-}
-
-QT_END_NAMESPACE
diff --git a/src/webengine/api/qquickwebenginescript.h b/src/webengine/api/qquickwebenginescript.h
deleted file mode 100644
index a5f20bc50..000000000
--- a/src/webengine/api/qquickwebenginescript.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2017 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 QQUICKWEBENGINESCRIPT_H
-#define QQUICKWEBENGINESCRIPT_H
-
-#include <QtCore/qurl.h>
-#include <QtCore/QSharedDataPointer>
-#include <QtWebEngine/qtwebengineglobal.h>
-
-namespace QtWebEngineCore {
-class UserScript;
-} // namespace
-
-QT_BEGIN_NAMESPACE
-class QQuickWebEngineView;
-
-class Q_WEBENGINE_EXPORT QQuickWebEngineScript
-{
- Q_GADGET
- Q_PROPERTY(QString name READ name WRITE setName FINAL)
- Q_PROPERTY(QUrl sourceUrl READ sourceUrl WRITE setSourceUrl FINAL)
- Q_PROPERTY(QString sourceCode READ sourceCode WRITE setSourceCode FINAL)
- Q_PROPERTY(InjectionPoint injectionPoint READ injectionPoint WRITE setInjectionPoint FINAL)
- Q_PROPERTY(ScriptWorldId worldId READ worldId WRITE setWorldId FINAL)
- Q_PROPERTY(bool runOnSubframes READ runOnSubframes WRITE setRunOnSubframes FINAL)
-
-public:
- enum InjectionPoint {
- Deferred,
- DocumentReady,
- DocumentCreation
- };
- Q_ENUM(InjectionPoint)
-
- enum ScriptWorldId {
- MainWorld = 0,
- ApplicationWorld,
- UserWorld
- };
- Q_ENUM(ScriptWorldId)
-
- explicit QQuickWebEngineScript();
- ~QQuickWebEngineScript();
- QQuickWebEngineScript(const QQuickWebEngineScript &other);
- QQuickWebEngineScript &operator=(const QQuickWebEngineScript &other);
- bool operator==(const QQuickWebEngineScript &other) const;
- inline bool operator!=(const QQuickWebEngineScript &other) const { return !operator==(other); }
-
- QString name() const;
- QUrl sourceUrl() const;
- QString sourceCode() const;
- InjectionPoint injectionPoint() const;
- ScriptWorldId worldId() const;
- bool runOnSubframes() const;
-
- Q_INVOKABLE QString toString() const;
- Q_INVOKABLE void setName(const QString &name);
- Q_INVOKABLE void setSourceUrl(const QUrl &url);
- Q_INVOKABLE void setSourceCode(const QString &code);
- Q_INVOKABLE void setInjectionPoint(InjectionPoint injectionPoint);
- Q_INVOKABLE void setWorldId(ScriptWorldId scriptWorldId);
- Q_INVOKABLE void setRunOnSubframes(bool on);
-
-
-private:
- QQuickWebEngineScript(const QtWebEngineCore::UserScript &);
- QSharedDataPointer<QtWebEngineCore::UserScript> d;
- friend class QQuickWebEngineProfilePrivate;
- friend class QQuickWebEngineViewPrivate;
- friend class QQuickWebEngineScriptCollectionPrivate;
-};
-QT_END_NAMESPACE
-
-#endif // QQUICKWEBENGINESCRIPT_H
diff --git a/src/webengine/api/qquickwebenginescriptcollection.cpp b/src/webengine/api/qquickwebenginescriptcollection.cpp
index b02e9f84d..f3faa2591 100644
--- a/src/webengine/api/qquickwebenginescriptcollection.cpp
+++ b/src/webengine/api/qquickwebenginescriptcollection.cpp
@@ -45,9 +45,9 @@
#include <QtQml/private/qv4scopedvalue_p.h>
#include <QtQml/private/qv4arrayobject_p.h>
-QQuickWebEngineScript parseScript(const QJSValue &value, bool *ok)
+QWebEngineScript parseScript(const QJSValue &value, bool *ok)
{
- QQuickWebEngineScript s;
+ QWebEngineScript s;
if (ok)
*ok = false;
@@ -60,18 +60,18 @@ QQuickWebEngineScript parseScript(const QJSValue &value, bool *ok)
s.setSourceUrl(value.property(QStringLiteral("sourceUrl")).toString());
if (value.hasProperty(QStringLiteral("injectionPoint")))
- s.setInjectionPoint(QQuickWebEngineScript::InjectionPoint(
+ s.setInjectionPoint(QWebEngineScript::InjectionPoint(
value.property(QStringLiteral("injectionPoint")).toUInt()));
if (value.hasProperty(QStringLiteral("sourceCode")))
s.setSourceCode(value.property(QStringLiteral("sourceCode")).toString());
if (value.hasProperty(QStringLiteral("worldId")))
- s.setWorldId(QQuickWebEngineScript::ScriptWorldId(
+ s.setWorldId(QWebEngineScript::ScriptWorldId(
value.property(QStringLiteral("worldId")).toUInt()));
if (value.hasProperty(QStringLiteral("runOnSubframes")))
- s.setRunOnSubframes(value.property(QStringLiteral("runOnSubframes")).toBool());
+ s.setRunsOnSubFrames(value.property(QStringLiteral("runOnSubframes")).toBool());
if (ok)
*ok = true;
@@ -92,34 +92,34 @@ int QQuickWebEngineScriptCollection::count() const
return d->count();
}
-bool QQuickWebEngineScriptCollection::contains(const QQuickWebEngineScript &value) const
+bool QQuickWebEngineScriptCollection::contains(const QWebEngineScript &value) const
{
return d->contains(value);
}
-QQuickWebEngineScript QQuickWebEngineScriptCollection::findScript(const QString &name) const
+QWebEngineScript QQuickWebEngineScriptCollection::findScript(const QString &name) const
{
return d->find(name);
}
-QList<QQuickWebEngineScript> QQuickWebEngineScriptCollection::findScripts(const QString &name) const
+QList<QWebEngineScript> QQuickWebEngineScriptCollection::findScripts(const QString &name) const
{
return d->toList(name);
}
-void QQuickWebEngineScriptCollection::insert(const QQuickWebEngineScript &s)
+void QQuickWebEngineScriptCollection::insert(const QWebEngineScript &s)
{
d->insert(s);
}
-void QQuickWebEngineScriptCollection::insert(const QList<QQuickWebEngineScript> &list)
+void QQuickWebEngineScriptCollection::insert(const QList<QWebEngineScript> &list)
{
d->reserve(list.size());
- for (const QQuickWebEngineScript &s : list)
+ for (const QWebEngineScript &s : list)
d->insert(s);
}
-bool QQuickWebEngineScriptCollection::remove(const QQuickWebEngineScript &script)
+bool QQuickWebEngineScriptCollection::remove(const QWebEngineScript &script)
{
return d->remove(script);
}
@@ -129,7 +129,7 @@ void QQuickWebEngineScriptCollection::clear()
d->clear();
}
-QList<QQuickWebEngineScript> QQuickWebEngineScriptCollection::toList() const
+QList<QWebEngineScript> QQuickWebEngineScriptCollection::toList() const
{
return d->toList();
}
@@ -146,41 +146,41 @@ int QQuickWebEngineScriptCollectionPrivate::count() const
return m_scripts.count();
}
-bool QQuickWebEngineScriptCollectionPrivate::contains(const QQuickWebEngineScript &s) const
+bool QQuickWebEngineScriptCollectionPrivate::contains(const QWebEngineScript &s) const
{
return m_scripts.contains(s);
}
-void QQuickWebEngineScriptCollectionPrivate::insert(const QQuickWebEngineScript &script)
+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 QQuickWebEngineScript &script)
+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<QQuickWebEngineScript>
+QList<QWebEngineScript>
QQuickWebEngineScriptCollectionPrivate::toList(const QString &scriptName) const
{
- QList<QQuickWebEngineScript> ret;
- for (const QQuickWebEngineScript &script : qAsConst(m_scripts))
+ QList<QWebEngineScript> ret;
+ for (const QWebEngineScript &script : qAsConst(m_scripts))
if (scriptName == script.name())
ret.append(script);
return ret;
}
-QQuickWebEngineScript QQuickWebEngineScriptCollectionPrivate::find(const QString &name) const
+QWebEngineScript QQuickWebEngineScriptCollectionPrivate::find(const QString &name) const
{
- for (const QQuickWebEngineScript &script : qAsConst(m_scripts))
+ for (const QWebEngineScript &script : qAsConst(m_scripts))
if (name == script.name())
return script;
- return QQuickWebEngineScript();
+ return QWebEngineScript();
}
void QQuickWebEngineScriptCollectionPrivate::clear()
@@ -203,14 +203,14 @@ void QQuickWebEngineScriptCollectionPrivate::initializationFinished(
Q_ASSERT(m_contents);
Q_ASSERT(contents);
- for (const QQuickWebEngineScript &script : qAsConst(m_scripts))
+ for (const QWebEngineScript &script : qAsConst(m_scripts))
m_scriptController->addUserScript(*script.d, contents.data());
m_contents = contents;
}
QJSValue QQuickWebEngineScriptCollection::collection() const
{
- const QList<QQuickWebEngineScript> &list = d->m_scripts;
+ const QList<QWebEngineScript> &list = d->m_scripts;
QQmlContext *context = QQmlEngine::contextForObject(this);
QQmlEngine *engine = context->engine();
QV4::ExecutionEngine *v4 = QQmlEnginePrivate::getV4Engine(engine);
@@ -229,11 +229,11 @@ void QQuickWebEngineScriptCollection::setCollection(const QJSValue &scripts)
if (!scripts.isArray())
return;
- QList<QQuickWebEngineScript> scriptList;
+ QList<QWebEngineScript> scriptList;
quint32 length = scripts.property(QStringLiteral("length")).toUInt();
for (quint32 i = 0; i < length; ++i) {
bool ok;
- QQuickWebEngineScript s = parseScript(scripts.property(i), &ok);
+ QWebEngineScript s = parseScript(scripts.property(i), &ok);
if (!ok) {
qmlWarning(this) << "Unsupported script type";
return;
diff --git a/src/webengine/api/qquickwebenginescriptcollection.h b/src/webengine/api/qquickwebenginescriptcollection.h
index e2fd8488d..5f80f9c38 100644
--- a/src/webengine/api/qquickwebenginescriptcollection.h
+++ b/src/webengine/api/qquickwebenginescriptcollection.h
@@ -41,7 +41,7 @@
#define QQUICKWEBENGINESCRIPTCOLLECTION_H
#include <QtWebEngine/qtwebengineglobal.h>
-#include "qquickwebenginescript.h"
+#include <QtWebEngineCore/qwebenginescript.h>
#include <QtCore/qscopedpointer.h>
#include <QtCore/qlist.h>
#include <QtCore/qset.h>
@@ -60,21 +60,21 @@ public:
bool isEmpty() const { return !count(); }
int count() const;
inline int size() const { return count(); }
- bool contains(const QQuickWebEngineScript &value) const;
+ bool contains(const QWebEngineScript &value) const;
- Q_INVOKABLE QQuickWebEngineScript findScript(const QString &name) const;
- Q_INVOKABLE QList<QQuickWebEngineScript> findScripts(const QString &name) const;
+ Q_INVOKABLE QWebEngineScript findScript(const QString &name) const;
+ Q_INVOKABLE QList<QWebEngineScript> findScripts(const QString &name) const;
- Q_INVOKABLE void insert(const QQuickWebEngineScript &);
- Q_INVOKABLE void insert(const QList<QQuickWebEngineScript> &list);
+ Q_INVOKABLE void insert(const QWebEngineScript &);
+ Q_INVOKABLE void insert(const QList<QWebEngineScript> &list);
- Q_INVOKABLE bool remove(const QQuickWebEngineScript &);
+ Q_INVOKABLE bool remove(const QWebEngineScript &);
Q_INVOKABLE void clear();
QJSValue collection() const;
void setCollection(const QJSValue &scripts);
- QList<QQuickWebEngineScript> toList() const;
+ QList<QWebEngineScript> toList() const;
Q_SIGNALS:
void collectionChanged();
diff --git a/src/webengine/api/qquickwebenginescriptcollection_p.h b/src/webengine/api/qquickwebenginescriptcollection_p.h
index 79c70f928..d8eb08ca0 100644
--- a/src/webengine/api/qquickwebenginescriptcollection_p.h
+++ b/src/webengine/api/qquickwebenginescriptcollection_p.h
@@ -53,11 +53,11 @@
#include "qtwebenginecoreglobal.h"
-#include "qquickwebenginescript.h"
#include "web_contents_adapter.h"
#include <QtCore/QSet>
#include <QtCore/QSharedPointer>
+#include <QtWebEngineCore/QWebEngineScript>
namespace QtWebEngineCore {
class UserResourceControllerHost;
@@ -73,21 +73,21 @@ public:
QSharedPointer<QtWebEngineCore::WebContentsAdapter>());
int count() const;
- bool contains(const QQuickWebEngineScript &) const;
- QList<QQuickWebEngineScript> toList(const QString &scriptName = QString()) const;
- QQuickWebEngineScript find(const QString &name) 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 QQuickWebEngineScript &);
- bool remove(const QQuickWebEngineScript &);
+ void insert(const QWebEngineScript &);
+ bool remove(const QWebEngineScript &);
void clear();
void reserve(int);
private:
QtWebEngineCore::UserResourceControllerHost *m_scriptController;
QSharedPointer<QtWebEngineCore::WebContentsAdapter> m_contents;
- QList<QQuickWebEngineScript> m_scripts;
+ QList<QWebEngineScript> m_scripts;
friend class QQuickWebEngineScriptCollection;
};
diff --git a/src/webengine/api/qquickwebenginesingleton.cpp b/src/webengine/api/qquickwebenginesingleton.cpp
index e61c4e5bf..d49d92329 100644
--- a/src/webengine/api/qquickwebenginesingleton.cpp
+++ b/src/webengine/api/qquickwebenginesingleton.cpp
@@ -91,9 +91,9 @@ QQuickWebEngineProfile *QQuickWebEngineSingleton::defaultProfile() const
return QQuickWebEngineProfile::defaultProfile();
}
-QQuickWebEngineScript QQuickWebEngineSingleton::script() const
+QWebEngineScript QQuickWebEngineSingleton::script() const
{
- return QQuickWebEngineScript();
+ return QWebEngineScript();
}
#include "moc_qquickwebenginesingleton_p.cpp"
diff --git a/src/webengine/api/qquickwebenginesingleton_p.h b/src/webengine/api/qquickwebenginesingleton_p.h
index ec1b779f8..bca106314 100644
--- a/src/webengine/api/qquickwebenginesingleton_p.h
+++ b/src/webengine/api/qquickwebenginesingleton_p.h
@@ -52,8 +52,8 @@
//
#include <QtWebEngine/private/qtwebengineglobal_p.h>
-#include <QObject>
-#include "qquickwebenginescript.h"
+#include <QtWebEngineCore/qwebenginescript.h>
+#include <QtCore/qobject.h>
QT_BEGIN_NAMESPACE
@@ -67,7 +67,7 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineSingleton : public QObject {
public:
QQuickWebEngineSettings *settings() const;
QQuickWebEngineProfile *defaultProfile() const;
- Q_INVOKABLE QQuickWebEngineScript script() const;
+ Q_INVOKABLE QWebEngineScript script() const;
};
QT_END_NAMESPACE
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 01f604736..1ef5466e7 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -1391,7 +1391,7 @@ bool QQuickWebEngineView::canGoForward() const
void QQuickWebEngineView::runJavaScript(const QString &script, const QJSValue &callback)
{
- runJavaScript(script, QQuickWebEngineScript::MainWorld, callback);
+ runJavaScript(script, QWebEngineScript::MainWorld, callback);
}
void QQuickWebEngineView::runJavaScript(const QString &script, quint32 worldId, const QJSValue &callback)
@@ -1970,40 +1970,40 @@ void QQuickWebEngineView::triggerWebAction(WebAction action)
d->adapter->viewSource();
break;
case ToggleBold:
- runJavaScript(QStringLiteral("document.execCommand('bold');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('bold');"), QWebEngineScript::ApplicationWorld);
break;
case ToggleItalic:
- runJavaScript(QStringLiteral("document.execCommand('italic');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('italic');"), QWebEngineScript::ApplicationWorld);
break;
case ToggleUnderline:
- runJavaScript(QStringLiteral("document.execCommand('underline');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('underline');"), QWebEngineScript::ApplicationWorld);
break;
case ToggleStrikethrough:
- runJavaScript(QStringLiteral("document.execCommand('strikethrough');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('strikethrough');"), QWebEngineScript::ApplicationWorld);
break;
case AlignLeft:
- runJavaScript(QStringLiteral("document.execCommand('justifyLeft');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('justifyLeft');"), QWebEngineScript::ApplicationWorld);
break;
case AlignCenter:
- runJavaScript(QStringLiteral("document.execCommand('justifyCenter');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('justifyCenter');"), QWebEngineScript::ApplicationWorld);
break;
case AlignRight:
- runJavaScript(QStringLiteral("document.execCommand('justifyRight');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('justifyRight');"), QWebEngineScript::ApplicationWorld);
break;
case AlignJustified:
- runJavaScript(QStringLiteral("document.execCommand('justifyFull');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('justifyFull');"), QWebEngineScript::ApplicationWorld);
break;
case Indent:
- runJavaScript(QStringLiteral("document.execCommand('indent');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('indent');"), QWebEngineScript::ApplicationWorld);
break;
case Outdent:
- runJavaScript(QStringLiteral("document.execCommand('outdent');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('outdent');"), QWebEngineScript::ApplicationWorld);
break;
case InsertOrderedList:
- runJavaScript(QStringLiteral("document.execCommand('insertOrderedList');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('insertOrderedList');"), QWebEngineScript::ApplicationWorld);
break;
case InsertUnorderedList:
- runJavaScript(QStringLiteral("document.execCommand('insertUnorderedList');"), QQuickWebEngineScript::ApplicationWorld);
+ runJavaScript(QStringLiteral("document.execCommand('insertUnorderedList');"), QWebEngineScript::ApplicationWorld);
break;
default:
Q_UNREACHABLE();
diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h
index bf058c4d3..255ca3d32 100644
--- a/src/webengine/api/qquickwebengineview_p.h
+++ b/src/webengine/api/qquickwebengineview_p.h
@@ -57,7 +57,6 @@
#include <QtGui/qcolor.h>
#include "qquickwebengineprofile.h"
-#include "qquickwebenginescript.h"
namespace QtWebEngineCore {
class RenderWidgetHostViewQtDelegateQuick;
diff --git a/src/webengine/module.pro b/src/webengine/module.pro
index b796c3d97..91f13c793 100644
--- a/src/webengine/module.pro
+++ b/src/webengine/module.pro
@@ -29,7 +29,6 @@ SOURCES = \
api/qquickwebenginetouchhandleprovider.cpp \
api/qquickwebengineview.cpp \
api/qtwebengineglobal.cpp \
- api/qquickwebenginescript.cpp \
api/qquickwebenginescriptcollection.cpp \
render_widget_host_view_qt_delegate_quick.cpp \
render_widget_host_view_qt_delegate_quickwindow.cpp \
@@ -54,7 +53,6 @@ HEADERS = \
api/qquickwebenginetouchhandleprovider_p_p.h \
api/qquickwebengineview_p.h \
api/qquickwebengineview_p_p.h \
- api/qquickwebenginescript.h \
api/qquickwebenginescriptcollection.h \
api/qquickwebenginescriptcollection_p.h \
render_widget_host_view_qt_delegate_quick.h \
diff --git a/src/webengine/plugin/plugin.cpp b/src/webengine/plugin/plugin.cpp
index d92ee59ec..8f5d319d7 100644
--- a/src/webengine/plugin/plugin.cpp
+++ b/src/webengine/plugin/plugin.cpp
@@ -60,6 +60,7 @@
#include <QtWebEngineCore/qwebengineregisterprotocolhandlerrequest.h>
#include <QtWebEngineCore/qwebenginecontextmenurequest.h>
#include <QtWebEngineCore/qwebenginedownloadrequest.h>
+#include <QtWebEngineCore/qwebenginescript.h>
QT_BEGIN_NAMESPACE
@@ -105,8 +106,8 @@ public:
qmlRegisterType<QQuickWebEngineProfile, 3>(uri, 1, 4, "WebEngineProfile");
qmlRegisterType<QQuickWebEngineProfile, 4>(uri, 1, 5, "WebEngineProfile");
qmlRegisterType<QQuickWebEngineProfile, 5>(uri, 1, 9, "WebEngineProfile");
- qRegisterMetaType<QQuickWebEngineScript>();
- qmlRegisterUncreatableType<QQuickWebEngineScript>(
+ qRegisterMetaType<QWebEngineScript>();
+ qmlRegisterUncreatableType<QWebEngineScript>(
uri, 1, 1, "WebEngineScript", msgUncreatableType("WebEngineScript")); // for enums
qRegisterMetaType<QWebEngineCertificateError>();
qmlRegisterUncreatableType<QWebEngineCertificateError>(uri, 1, 1, "WebEngineCertificateError", msgUncreatableType("WebEngineCertificateError"));