diff options
author | Liang Qi <liang.qi@theqtcompany.com> | 2015-06-26 14:33:31 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2015-06-26 14:33:31 +0000 |
commit | a63ce1302152266b0e99dbf73809930eef89e2e4 (patch) | |
tree | ff3a7fe6a54980102058582e0120af02295bb162 /src | |
parent | 69f122c39844128bd2714180feb092db3de5a31a (diff) | |
parent | 6bef847c1e03acdf4aa2ffb81153eee65b70d0df (diff) |
Merge "Merge remote-tracking branch 'origin/5.5.0' into 5.5" into refs/staging/5.5
Diffstat (limited to 'src')
-rw-r--r-- | src/core/config/embedded_linux.pri | 1 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 9 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginedownloaditem.cpp | 28 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginedownloaditem.h | 14 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineprofile.cpp | 10 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineprofile.h | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebengineprofile_p.h | 3 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginescript.cpp | 113 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginescriptcollection.cpp | 62 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginescriptcollection.h | 5 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginescriptcollection_p.h | 2 | ||||
-rw-r--r-- | src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc | 2 |
12 files changed, 216 insertions, 35 deletions
diff --git a/src/core/config/embedded_linux.pri b/src/core/config/embedded_linux.pri index 91b14003c..cc8c40f8e 100644 --- a/src/core/config/embedded_linux.pri +++ b/src/core/config/embedded_linux.pri @@ -43,6 +43,7 @@ GYP_CONFIG += \ use_openssl=1 \ use_ozone=1 \ use_pango=0 \ + use_system_fontconfig=1 \ use_system_icu=1 \ icu_use_data_file_flag=0 \ use_x11=0 \ diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 8b2adab58..7405cae44 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -705,6 +705,15 @@ void QQuickWebEngineView::setProfile(QQuickWebEngineProfile *profile) Q_D(QQuickWebEngineView); d->setProfile(profile); } +/*! + * \qmlproperty WebEngineSettings QQuickWebEngineView::settings + * \readonly settings + * \since QtWebEngine 1.1 + * + * The \a settings property holds the settings used by this view. + * + * \sa WebEngineSettings + */ QQuickWebEngineSettings *QQuickWebEngineView::settings() const { diff --git a/src/webenginewidgets/api/qwebenginedownloaditem.cpp b/src/webenginewidgets/api/qwebenginedownloaditem.cpp index 703570587..7df044e66 100644 --- a/src/webenginewidgets/api/qwebenginedownloaditem.cpp +++ b/src/webenginewidgets/api/qwebenginedownloaditem.cpp @@ -156,9 +156,9 @@ void QWebEngineDownloadItem::cancel() Returns the download item's id. */ -quint32 QWebEngineDownloadItem::id() +quint32 QWebEngineDownloadItem::id() const { - Q_D(QWebEngineDownloadItem); + Q_D(const QWebEngineDownloadItem); return d->downloadId; } @@ -205,9 +205,9 @@ quint32 QWebEngineDownloadItem::id() \sa QWebEngineDownloadItem::DownloadState */ -QWebEngineDownloadItem::DownloadState QWebEngineDownloadItem::state() +QWebEngineDownloadItem::DownloadState QWebEngineDownloadItem::state() const { - Q_D(QWebEngineDownloadItem); + Q_D(const QWebEngineDownloadItem); return d->downloadState; } @@ -217,9 +217,9 @@ QWebEngineDownloadItem::DownloadState QWebEngineDownloadItem::state() -1 means the size is unknown. */ -qint64 QWebEngineDownloadItem::totalBytes() +qint64 QWebEngineDownloadItem::totalBytes() const { - Q_D(QWebEngineDownloadItem); + Q_D(const QWebEngineDownloadItem); return d->totalBytes; } @@ -229,9 +229,9 @@ qint64 QWebEngineDownloadItem::totalBytes() -1 means the size is unknown. */ -qint64 QWebEngineDownloadItem::receivedBytes() +qint64 QWebEngineDownloadItem::receivedBytes() const { - Q_D(QWebEngineDownloadItem); + Q_D(const QWebEngineDownloadItem); return d->receivedBytes; } @@ -239,9 +239,9 @@ qint64 QWebEngineDownloadItem::receivedBytes() Returns the download's origin url. */ -QUrl QWebEngineDownloadItem::url() +QUrl QWebEngineDownloadItem::url() const { - Q_D(QWebEngineDownloadItem); + Q_D(const QWebEngineDownloadItem); return d->downloadUrl; } @@ -252,9 +252,9 @@ QUrl QWebEngineDownloadItem::url() and file name is deduced not to overwrite already existing files. */ -QString QWebEngineDownloadItem::path() +QString QWebEngineDownloadItem::path() const { - Q_D(QWebEngineDownloadItem); + Q_D(const QWebEngineDownloadItem); return d->downloadPath; } @@ -282,9 +282,9 @@ void QWebEngineDownloadItem::setPath(QString path) \sa finished(), state(), */ -bool QWebEngineDownloadItem::isFinished() +bool QWebEngineDownloadItem::isFinished() const { - Q_D(QWebEngineDownloadItem); + Q_D(const QWebEngineDownloadItem); return d->downloadFinished; } diff --git a/src/webenginewidgets/api/qwebenginedownloaditem.h b/src/webenginewidgets/api/qwebenginedownloaditem.h index ee3ab221d..d362131f2 100644 --- a/src/webenginewidgets/api/qwebenginedownloaditem.h +++ b/src/webenginewidgets/api/qwebenginedownloaditem.h @@ -61,14 +61,14 @@ public: }; Q_ENUMS(DownloadState) - quint32 id(); - DownloadState state(); - qint64 totalBytes(); - qint64 receivedBytes(); - QUrl url(); - QString path(); + quint32 id() const; + DownloadState state() const; + qint64 totalBytes() const; + qint64 receivedBytes() const; + QUrl url() const; + QString path() const; void setPath(QString path); - bool isFinished(); + bool isFinished() const; public Q_SLOTS: void accept(); diff --git a/src/webenginewidgets/api/qwebengineprofile.cpp b/src/webenginewidgets/api/qwebengineprofile.cpp index adccfca2a..2e5f685fd 100644 --- a/src/webenginewidgets/api/qwebengineprofile.cpp +++ b/src/webenginewidgets/api/qwebengineprofile.cpp @@ -103,8 +103,8 @@ using QtWebEngineCore::BrowserContextAdapter; */ QWebEngineProfilePrivate::QWebEngineProfilePrivate(BrowserContextAdapter* browserContext) - : scriptCollection(new QWebEngineScriptCollectionPrivate(browserContext->userScriptController())) - , m_settings(new QWebEngineSettings()) + : m_settings(new QWebEngineSettings()) + , m_scriptCollection(new QWebEngineScriptCollection(new QWebEngineScriptCollectionPrivate(browserContext->userScriptController()))) , m_browserContextRef(browserContext) { m_browserContextRef->addClient(this); @@ -438,10 +438,10 @@ bool QWebEngineProfile::visitedLinksContainsUrl(const QUrl &url) const Returns the script collection used by this profile. \sa QWebEngineScriptCollection */ -QWebEngineScriptCollection &QWebEngineProfile::scripts() +QWebEngineScriptCollection *QWebEngineProfile::scripts() const { - Q_D(QWebEngineProfile); - return d->scriptCollection; + Q_D(const QWebEngineProfile); + return d->m_scriptCollection.data(); } /*! diff --git a/src/webenginewidgets/api/qwebengineprofile.h b/src/webenginewidgets/api/qwebengineprofile.h index d65db24ab..4308fe75d 100644 --- a/src/webenginewidgets/api/qwebengineprofile.h +++ b/src/webenginewidgets/api/qwebengineprofile.h @@ -98,7 +98,7 @@ public: bool visitedLinksContainsUrl(const QUrl &url) const; QWebEngineSettings *settings() const; - QWebEngineScriptCollection &scripts(); + QWebEngineScriptCollection *scripts() const; static QWebEngineProfile *defaultProfile(); diff --git a/src/webenginewidgets/api/qwebengineprofile_p.h b/src/webenginewidgets/api/qwebengineprofile_p.h index b0bfc88b9..55941580d 100644 --- a/src/webenginewidgets/api/qwebengineprofile_p.h +++ b/src/webenginewidgets/api/qwebengineprofile_p.h @@ -43,6 +43,7 @@ #include "qwebenginescriptcollection.h" #include <QMap> #include <QPointer> +#include <QScopedPointer> namespace QtWebEngineCore { class BrowserContextAdapter; @@ -72,10 +73,10 @@ public: void removeUrlSchemeHandler(QWebEngineUrlSchemeHandler *); void clearUrlSchemeHandlers(); - QWebEngineScriptCollection scriptCollection; private: QWebEngineProfile *q_ptr; QWebEngineSettings *m_settings; + QScopedPointer<QWebEngineScriptCollection> m_scriptCollection; QExplicitlySharedDataPointer<QtWebEngineCore::BrowserContextAdapter> m_browserContextRef; QMap<quint32, QPointer<QWebEngineDownloadItem> > m_ongoingDownloads; QMap<QByteArray, QPointer<QWebEngineUrlSchemeHandler> > m_urlSchemeHandlers; diff --git a/src/webenginewidgets/api/qwebenginescript.cpp b/src/webenginewidgets/api/qwebenginescript.cpp index e2f267330..e834c5067 100644 --- a/src/webenginewidgets/api/qwebenginescript.cpp +++ b/src/webenginewidgets/api/qwebenginescript.cpp @@ -41,10 +41,63 @@ using QtWebEngineCore::UserScript; +/*! + \class QWebEngineScript + \inmodule QtWebEngineWidgets + \since 5.5 + \brief The QWebEngineScript class encapsulates a JavaScript program. + \preliminary + + QWebEngineScript allows the programatic injection of so called "user scripts" in the + javascript engine at different points, determined by injectionPoint(), during the loading of web contents. + + Scripts can be executed either in the main javascript 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 a function defined in one world are not accessible from a different one. + ScriptWorldId provides some predefined ids for this purpose. + +*/ +/*! + \enum QWebEngineScript::InjectionPoint + + This enum describes the timing for when the script injection should happen. + + \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 DOMContentLoaded + event firing in JavaScript. + \value Deferred The script will run when the page load finishes, or 500ms after the document is ready, whichever + comes first. + +*/ +/*! + \enum QWebEngineScript::ScriptWorldId + + This enum provides pre defined world ids for isolating user scripts into different worlds. + + \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 thumbs, if that functionality is exposed to the application users, each individual script + should probably get its own isolated world. + +*/ + +/*! + * \brief QWebEngineScript::QWebEngineScript + * + * Constructs a null script. + */ + QWebEngineScript::QWebEngineScript() : d(new UserScript) { } +/*! + * \brief QWebEngineScript::isNull + * \return \c true is the script is null, \c false otherwise. + */ QWebEngineScript::QWebEngineScript(const QWebEngineScript &other) : d(other.d) @@ -66,11 +119,24 @@ bool QWebEngineScript::isNull() const return d->isNull(); } +/*! + * \brief QWebEngineScript::name + * \return The name of the script. Can be useful to retrieve a given script from a QWebEngineScriptCollection. + * + * \sa QWebEngineScriptCollection::findScript(), QWebEngineScriptCollection::findScripts() + */ + QString QWebEngineScript::name() const { return d->name(); } +/*! + * \brief QWebEngineScript::setName + * \param scriptName + * + * Sets the script name to \a scriptName. + */ void QWebEngineScript::setName(const QString &scriptName) { if (scriptName == name()) @@ -78,11 +144,20 @@ void QWebEngineScript::setName(const QString &scriptName) d->setName(scriptName); } +/*! + * \brief QWebEngineScript::sourceCode + * \return the source of the script. + */ QString QWebEngineScript::sourceCode() const { return d->sourceCode(); } +/*! + * \brief QWebEngineScript::setSourceCode + * \param scriptSource + * Sets the script source to \a scriptSource. + */ void QWebEngineScript::setSourceCode(const QString &scriptSource) { if (scriptSource == sourceCode()) @@ -94,11 +169,24 @@ ASSERT_ENUMS_MATCH(QWebEngineScript::Deferred, UserScript::AfterLoad) ASSERT_ENUMS_MATCH(QWebEngineScript::DocumentReady, UserScript::DocumentLoadFinished) ASSERT_ENUMS_MATCH(QWebEngineScript::DocumentCreation, UserScript::DocumentElementCreation) +/*! + * \brief QWebEngineScript::injectionPoint + * \return the point in the loading process at which the script will be executed. + * The default value is QWebEngineScript::Deferred. + * + * \sa setInjectionPoint + */ QWebEngineScript::InjectionPoint QWebEngineScript::injectionPoint() const { return static_cast<QWebEngineScript::InjectionPoint>(d->injectionPoint()); } - +/*! + * \brief QWebEngineScript::setInjectionPoint + * \param p + * Sets the point at which to execute the script to be \p. + * + * \sa QWebEngineScript::InjectionPoint + */ void QWebEngineScript::setInjectionPoint(QWebEngineScript::InjectionPoint p) { if (p == injectionPoint()) @@ -106,11 +194,20 @@ void QWebEngineScript::setInjectionPoint(QWebEngineScript::InjectionPoint p) d->setInjectionPoint(static_cast<UserScript::InjectionPoint>(p)); } +/*! + * \brief QWebEngineScript::worldId + * \return the world id defining which world the script is executed in. + */ quint32 QWebEngineScript::worldId() const { return d->worldId(); } +/*! + * \brief QWebEngineScript::setWorldId + * \param id + * Sets the world id of the isolated world to use when running this script. + */ void QWebEngineScript::setWorldId(quint32 id) { if (id == d->worldId()) @@ -118,11 +215,20 @@ void QWebEngineScript::setWorldId(quint32 id) d->setWorldId(id); } +/*! + * \brief QWebEngineScript::runsOnSubFrames + * \return \c true if the script is executed on every frame in the page, \c false if it is only ran for the main frame. + */ bool QWebEngineScript::runsOnSubFrames() const { return d->runsOnSubFrames(); } +/*! + * \brief QWebEngineScript::setRunsOnSubFrames + * \param on + * Sets whether or not the script is executed on sub frames in addition to the main frame. + */ void QWebEngineScript::setRunsOnSubFrames(bool on) { if (runsOnSubFrames() == on) @@ -130,6 +236,11 @@ void QWebEngineScript::setRunsOnSubFrames(bool on) d->setRunsOnSubFrames(on); } +/*! + * \brief QWebEngineScript::operator == + * \param other + * \return \c true if this QWebEngineScript is equal to \a other, otherwise returns \c false. + */ bool QWebEngineScript::operator==(const QWebEngineScript &other) const { return d == other.d || *d == *(other.d); diff --git a/src/webenginewidgets/api/qwebenginescriptcollection.cpp b/src/webenginewidgets/api/qwebenginescriptcollection.cpp index 2f1f31b0e..21cb0d05e 100644 --- a/src/webenginewidgets/api/qwebenginescriptcollection.cpp +++ b/src/webenginewidgets/api/qwebenginescriptcollection.cpp @@ -41,6 +41,14 @@ using QtWebEngineCore::UserScript; +/*! + \class QWebEngineScriptCollection + \inmodule QtWebEngineWidgets + \since 5.5 + \brief The QWebEngineScriptCollection class represents a collection of user scripts. + +*/ + QWebEngineScriptCollection::QWebEngineScriptCollection(QWebEngineScriptCollectionPrivate *collectionPrivate) :d(collectionPrivate) { @@ -50,31 +58,67 @@ QWebEngineScriptCollection::~QWebEngineScriptCollection() { } +/*! + * \brief QWebEngineScriptCollection::count + * \return the number of elements in the collection. + */ + int QWebEngineScriptCollection::count() const { return d->count(); } +/*! + * \brief QWebEngineScriptCollection::contains + * \param value + * \return \c true if the collection contains an occurrence of \a value; otherwise returns false. + */ + bool QWebEngineScriptCollection::contains(const QWebEngineScript &value) const { return d->contains(value); } +/*! + * \brief QWebEngineScriptCollection::findScript + * \param name + * \return the first script found in collection the name property of which is \a name, or a null QWebEngineScript if none was found. + * \note the order in which the script collection is traversed is undefined, which means this should be used when the unicity is + * guaranteed at the application level. + * \sa findScripts() + */ + QWebEngineScript QWebEngineScriptCollection::findScript(const QString &name) const { return d->find(name); } +/*! + * \brief QWebEngineScriptCollection::findScripts + * \param name + * \return the list of scripts in the collection the name property of which is \a name, or an empty list if none was found. + */ + QList<QWebEngineScript> QWebEngineScriptCollection::findScripts(const QString &name) const { return d->toList(name); } - +/*! + * \brief QWebEngineScriptCollection::insert + * \param s + * + * Inserts script \c s into the collection. + */ void QWebEngineScriptCollection::insert(const QWebEngineScript &s) { d->insert(s); } - +/*! + * \brief QWebEngineScriptCollection::insert + * \param list + * + * Inserts scripts \c list into the collection. + */ void QWebEngineScriptCollection::insert(const QList<QWebEngineScript> &list) { d->reserve(list.size()); @@ -82,16 +126,30 @@ void QWebEngineScriptCollection::insert(const QList<QWebEngineScript> &list) d->insert(s); } +/*! + * \brief QWebEngineScriptCollection::remove + * \param script + * Removes \a script from the collection, if it is present. + * \return \c true if the script was found and successfully removed from the collection, \c false otherwise. + */ bool QWebEngineScriptCollection::remove(const QWebEngineScript &script) { return d->remove(script); } +/*! + * \brief QWebEngineScriptCollection::clear + * Removes all scripts from this collection. + */ void QWebEngineScriptCollection::clear() { d->clear(); } +/*! + * \brief QWebEngineScriptCollection::toList + * \return a QList with the values of the scripts used in this collection. + */ QList<QWebEngineScript> QWebEngineScriptCollection::toList() const { return d->toList(); diff --git a/src/webenginewidgets/api/qwebenginescriptcollection.h b/src/webenginewidgets/api/qwebenginescriptcollection.h index c8e40c5da..fe3ce2861 100644 --- a/src/webenginewidgets/api/qwebenginescriptcollection.h +++ b/src/webenginewidgets/api/qwebenginescriptcollection.h @@ -37,7 +37,7 @@ #ifndef QWEBENGINESCRIPTCOLLECTION_H #define QWEBENGINESCRIPTCOLLECTION_H -#include "qtwebengineglobal.h" +#include "qtwebenginewidgetsglobal.h" #include "qwebenginescript.h" #include <QtCore/QScopedPointer> @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE class QWebEngineScriptCollectionPrivate; -class Q_WEBENGINE_EXPORT QWebEngineScriptCollection { +class QWEBENGINEWIDGETS_EXPORT QWebEngineScriptCollection { public: ~QWebEngineScriptCollection(); bool isEmpty() const { return !count(); } @@ -67,6 +67,7 @@ public: QList<QWebEngineScript> toList() const; private: + Q_DISABLE_COPY(QWebEngineScriptCollection) friend class QWebEnginePagePrivate; friend class QWebEngineProfilePrivate; QWebEngineScriptCollection(QWebEngineScriptCollectionPrivate *); diff --git a/src/webenginewidgets/api/qwebenginescriptcollection_p.h b/src/webenginewidgets/api/qwebenginescriptcollection_p.h index 9a3a425ba..76267c70c 100644 --- a/src/webenginewidgets/api/qwebenginescriptcollection_p.h +++ b/src/webenginewidgets/api/qwebenginescriptcollection_p.h @@ -37,7 +37,7 @@ #ifndef QWEBENGINESCRIPTCOLLECTION_P_H #define QWEBENGINESCRIPTCOLLECTION_P_H -#include "qtwebengineglobal.h" +#include "qtwebenginewidgetsglobal.h" #include "qwebenginescript.h" diff --git a/src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc b/src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc index 9b7de27e2..702019f8e 100644 --- a/src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc +++ b/src/webenginewidgets/doc/src/qtwebenginewidgets.qdoc @@ -131,7 +131,7 @@ GNU Library General Public License (LGPLv2). Developers using the Open Source Edition can choose to redistribute - the module under the GNU LGPLv3. + the module under the GNU LGPLv3 or GPLv2 and up. \legalese |