summaryrefslogtreecommitdiffstats
path: root/src/webengine/api/qquickwebenginescript.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webengine/api/qquickwebenginescript.cpp')
-rw-r--r--src/webengine/api/qquickwebenginescript.cpp129
1 files changed, 35 insertions, 94 deletions
diff --git a/src/webengine/api/qquickwebenginescript.cpp b/src/webengine/api/qquickwebenginescript.cpp
index ab7aee4cb..81fd0b925 100644
--- a/src/webengine/api/qquickwebenginescript.cpp
+++ b/src/webengine/api/qquickwebenginescript.cpp
@@ -38,7 +38,6 @@
****************************************************************************/
#include "qquickwebenginescript.h"
-#include "qquickwebenginescript_p.h"
#include <QQmlFile>
#include <QtCore/QDebug>
@@ -128,12 +127,7 @@ QT_BEGIN_NAMESPACE
/*!
Constructs a new QQuickWebEngineScript with the parent \a parent.
*/
-QQuickWebEngineScript::QQuickWebEngineScript(QObject *parent)
- : QObject(parent)
- , d_ptr(new QQuickWebEngineScriptPrivate)
-{
- d_ptr->q_ptr = this;
-}
+QQuickWebEngineScript::QQuickWebEngineScript() : d(new QtWebEngineCore::UserScript) { }
/*!
\internal
@@ -142,16 +136,28 @@ 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
{
- Q_D(const QQuickWebEngineScript);
- if (d->coreScript.isNull())
+ if (d->isNull())
return QStringLiteral("QWebEngineScript()");
- QString ret = QStringLiteral("QWebEngineScript(") % d->coreScript.name() % QStringLiteral(", ");
- switch (d->coreScript.injectionPoint()) {
+ QString ret = QStringLiteral("QWebEngineScript(") % d->name() % QStringLiteral(", ");
+ switch (d->injectionPoint()) {
case UserScript::DocumentElementCreation:
ret.append(QStringLiteral("WebEngineScript::DocumentCreation, "));
break;
@@ -162,9 +168,9 @@ QString QQuickWebEngineScript::toString() const
ret.append(QStringLiteral("WebEngineScript::Deferred, "));
break;
}
- ret.append(QString::number(d->coreScript.worldId()) % QStringLiteral(", ")
- % (d->coreScript.runsOnSubFrames() ? QStringLiteral("true") : QStringLiteral("false"))
- % QStringLiteral(", ") % d->coreScript.sourceCode() % QLatin1Char(')'));
+ ret.append(QString::number(d->worldId()) % QStringLiteral(", ")
+ % (d->runsOnSubFrames() ? QStringLiteral("true") : QStringLiteral("false"))
+ % QStringLiteral(", ") % d->sourceCode() % QLatin1Char(')'));
return ret;
}
@@ -184,8 +190,7 @@ QString QQuickWebEngineScript::toString() const
*/
QString QQuickWebEngineScript::name() const
{
- Q_D(const QQuickWebEngineScript);
- return d->coreScript.name();
+ return d->name();
}
/*!
@@ -218,8 +223,7 @@ QString QQuickWebEngineScript::name() const
*/
QUrl QQuickWebEngineScript::sourceUrl() const
{
- Q_D(const QQuickWebEngineScript);
- return d->m_sourceUrl;
+ return d->sourceUrl();
}
/*!
@@ -238,8 +242,7 @@ QUrl QQuickWebEngineScript::sourceUrl() const
*/
QString QQuickWebEngineScript::sourceCode() const
{
- Q_D(const QQuickWebEngineScript);
- return d->coreScript.sourceCode();
+ return d->sourceCode();
}
ASSERT_ENUMS_MATCH(QQuickWebEngineScript::Deferred, UserScript::AfterLoad)
@@ -271,8 +274,7 @@ ASSERT_ENUMS_MATCH(QQuickWebEngineScript::DocumentCreation, UserScript::Document
*/
QQuickWebEngineScript::InjectionPoint QQuickWebEngineScript::injectionPoint() const
{
- Q_D(const QQuickWebEngineScript);
- return static_cast<QQuickWebEngineScript::InjectionPoint>(d->coreScript.injectionPoint());
+ return static_cast<QQuickWebEngineScript::InjectionPoint>(d->injectionPoint());
}
/*!
@@ -298,8 +300,7 @@ QQuickWebEngineScript::InjectionPoint QQuickWebEngineScript::injectionPoint() co
*/
QQuickWebEngineScript::ScriptWorldId QQuickWebEngineScript::worldId() const
{
- Q_D(const QQuickWebEngineScript);
- return static_cast<QQuickWebEngineScript::ScriptWorldId>(d->coreScript.worldId());
+ return static_cast<QQuickWebEngineScript::ScriptWorldId>(d->worldId());
}
/*!
@@ -320,45 +321,35 @@ QQuickWebEngineScript::ScriptWorldId QQuickWebEngineScript::worldId() const
*/
bool QQuickWebEngineScript::runOnSubframes() const
{
- Q_D(const QQuickWebEngineScript);
- return d->coreScript.runsOnSubFrames();
+ return d->runsOnSubFrames();
}
void QQuickWebEngineScript::setName(const QString &name)
{
- Q_D(QQuickWebEngineScript);
if (name == QQuickWebEngineScript::name())
return;
- d->aboutToUpdateUnderlyingScript();
- d->coreScript.setName(name);
- Q_EMIT nameChanged(name);
+ d->setName(name);
}
void QQuickWebEngineScript::setSourceCode(const QString &code)
{
- Q_D(QQuickWebEngineScript);
if (code == sourceCode())
return;
// setting the source directly resets the sourceUrl
- if (d->m_sourceUrl != QUrl()) {
- d->m_sourceUrl = QUrl();
- Q_EMIT sourceUrlChanged(d->m_sourceUrl);
+ if (d->sourceUrl() != QUrl()) {
+ d->setSourceUrl(QUrl());
}
- d->aboutToUpdateUnderlyingScript();
- d->coreScript.setSourceCode(code);
- Q_EMIT sourceCodeChanged(code);
+ d->setSourceCode(code);
}
void QQuickWebEngineScript::setSourceUrl(const QUrl &url)
{
- Q_D(QQuickWebEngineScript);
if (url == sourceUrl())
return;
- d->m_sourceUrl = url;
- Q_EMIT sourceUrlChanged(d->m_sourceUrl);
+ d->setSourceUrl(url);
QFile f(QQmlFile::urlToLocalFileOrQrc(url));
if (!f.open(QIODevice::ReadOnly)) {
@@ -366,81 +357,31 @@ void QQuickWebEngineScript::setSourceUrl(const QUrl &url)
return;
}
- d->aboutToUpdateUnderlyingScript();
QString source = QString::fromUtf8(f.readAll());
- d->coreScript.setSourceCode(source);
- Q_EMIT sourceCodeChanged(source);
+ d->setSourceCode(source);
}
void QQuickWebEngineScript::setInjectionPoint(QQuickWebEngineScript::InjectionPoint injectionPoint)
{
- Q_D(QQuickWebEngineScript);
if (injectionPoint == QQuickWebEngineScript::injectionPoint())
return;
- d->aboutToUpdateUnderlyingScript();
- d->coreScript.setInjectionPoint(static_cast<UserScript::InjectionPoint>(injectionPoint));
- Q_EMIT injectionPointChanged(injectionPoint);
+ d->setInjectionPoint(static_cast<UserScript::InjectionPoint>(injectionPoint));
}
void QQuickWebEngineScript::setWorldId(QQuickWebEngineScript::ScriptWorldId scriptWorldId)
{
- Q_D(QQuickWebEngineScript);
if (scriptWorldId == worldId())
return;
- d->aboutToUpdateUnderlyingScript();
- d->coreScript.setWorldId(scriptWorldId);
- Q_EMIT worldIdChanged(scriptWorldId);
+ d->setWorldId(scriptWorldId);
}
void QQuickWebEngineScript::setRunOnSubframes(bool on)
{
- Q_D(QQuickWebEngineScript);
if (on == runOnSubframes())
return;
- d->aboutToUpdateUnderlyingScript();
- d->coreScript.setRunsOnSubFrames(on);
- Q_EMIT runOnSubframesChanged(on);
-}
-
-/*!
- \internal
-*/
-void QQuickWebEngineScript::timerEvent(QTimerEvent *e)
-{
- Q_D(QQuickWebEngineScript);
- if (e->timerId() != d->m_basicTimer.timerId()) {
- QObject::timerEvent(e);
- return;
- }
- if (!d->m_controllerHost)
- return;
- d->m_basicTimer.stop();
- d->m_controllerHost->addUserScript(d->coreScript, d->m_adapter);
-}
-
-void QQuickWebEngineScriptPrivate::bind(QtWebEngineCore::UserResourceControllerHost *resourceController, QtWebEngineCore::WebContentsAdapter *adapter)
-{
- aboutToUpdateUnderlyingScript();
- m_adapter = adapter;
- m_controllerHost = resourceController;
-}
-
-QQuickWebEngineScriptPrivate::QQuickWebEngineScriptPrivate()
- :m_controllerHost(0)
- , m_adapter(0)
-
-{
-}
-
-void QQuickWebEngineScriptPrivate::aboutToUpdateUnderlyingScript()
-{
- Q_Q(QQuickWebEngineScript);
- if (m_controllerHost)
- m_controllerHost->removeUserScript(coreScript, m_adapter);
- // Defer updates to the next event loop
- m_basicTimer.start(0, q);
+ d->setRunsOnSubFrames(on);
}
QT_END_NAMESPACE