summaryrefslogtreecommitdiffstats
path: root/src/webengine
diff options
context:
space:
mode:
Diffstat (limited to 'src/webengine')
-rw-r--r--src/webengine/api/qquickwebengineprofile_p.h4
-rw-r--r--src/webengine/api/qquickwebenginesettings.cpp41
-rw-r--r--src/webengine/api/qquickwebenginesettings_p.h12
-rw-r--r--src/webengine/api/qquickwebengineview.cpp37
-rw-r--r--src/webengine/api/qquickwebengineview_p.h42
-rw-r--r--src/webengine/api/qquickwebengineview_p_p.h129
-rw-r--r--src/webengine/doc/src/webengineview.qdoc58
-rw-r--r--src/webengine/plugin/plugin.cpp6
-rw-r--r--src/webengine/plugin/plugins.qmltypes22
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quick.h80
-rw-r--r--src/webengine/render_widget_host_view_qt_delegate_quickwindow.h48
11 files changed, 337 insertions, 142 deletions
diff --git a/src/webengine/api/qquickwebengineprofile_p.h b/src/webengine/api/qquickwebengineprofile_p.h
index 1828f8085..5be82a4f5 100644
--- a/src/webengine/api/qquickwebengineprofile_p.h
+++ b/src/webengine/api/qquickwebengineprofile_p.h
@@ -77,8 +77,8 @@ public:
void cancelDownload(quint32 downloadId);
void downloadDestroyed(quint32 downloadId);
- void downloadRequested(DownloadItemInfo &info) Q_DECL_OVERRIDE;
- void downloadUpdated(const DownloadItemInfo &info) Q_DECL_OVERRIDE;
+ void downloadRequested(DownloadItemInfo &info) override;
+ void downloadUpdated(const DownloadItemInfo &info) override;
// QQmlListPropertyHelpers
static void userScripts_append(QQmlListProperty<QQuickWebEngineScript> *p, QQuickWebEngineScript *script);
diff --git a/src/webengine/api/qquickwebenginesettings.cpp b/src/webengine/api/qquickwebenginesettings.cpp
index 3ce53337c..fa73af8b2 100644
--- a/src/webengine/api/qquickwebenginesettings.cpp
+++ b/src/webengine/api/qquickwebenginesettings.cpp
@@ -73,6 +73,22 @@ QQuickWebEngineSettings::~QQuickWebEngineSettings()
{ }
/*!
+ \enum QQuickWebEngineSettings::UnknownUrlSchemePolicy
+ \since WebEngine 1.6
+
+ This enum describes how navigation requests to URLs with unknown schemes are handled.
+
+ \value DisallowUnknownUrlSchemes
+ Disallows all navigation requests to URLs with unknown schemes.
+ \value AllowUnknownUrlSchemesFromUserInteraction
+ Allows navigation requests to URLs with unknown schemes that are issued from
+ user-interaction (like a mouse-click), whereas other navigation requests (for example
+ from JavaScript) are suppressed.
+ \value AllowAllUnknownUrlSchemes
+ Allows all navigation requests to URLs with unknown schemes.
+*/
+
+/*!
\qmlproperty bool WebEngineSettings::autoLoadImages
Automatically loads images on web pages.
@@ -395,6 +411,22 @@ QString QQuickWebEngineSettings::defaultTextEncoding() const
return d_ptr->defaultTextEncoding();
}
+ASSERT_ENUMS_MATCH(QQuickWebEngineSettings::DisallowUnknownUrlSchemes, WebEngineSettings::DisallowUnknownUrlSchemes)
+ASSERT_ENUMS_MATCH(QQuickWebEngineSettings::AllowUnknownUrlSchemesFromUserInteraction, WebEngineSettings::AllowUnknownUrlSchemesFromUserInteraction)
+ASSERT_ENUMS_MATCH(QQuickWebEngineSettings::AllowAllUnknownUrlSchemes, WebEngineSettings::AllowAllUnknownUrlSchemes)
+
+/*!
+ \qmlproperty WebEngineSettings::UnknownUrlSchemePolicy WebEngineSettings::unknownUrlSchemePolicy
+ \since QtWebEngine 1.6
+ Specifies how navigation requests to URLs with unknown schemes are handled.
+
+ Default is \l{QWebEngineSettings::UnknownUrlSchemePolicy}{WebEngineSettings.AllowUnknownUrlSchemesFromUserInteraction}.
+*/
+QQuickWebEngineSettings::UnknownUrlSchemePolicy QQuickWebEngineSettings::unknownUrlSchemePolicy() const
+{
+ return static_cast<QQuickWebEngineSettings::UnknownUrlSchemePolicy>(d_ptr->unknownUrlSchemePolicy());
+}
+
void QQuickWebEngineSettings::setAutoLoadImages(bool on)
{
bool wasOn = d_ptr->testAttribute(WebEngineSettings::AutoLoadImages);
@@ -599,6 +631,15 @@ void QQuickWebEngineSettings::setShowScrollBars(bool on)
Q_EMIT showScrollBarsChanged();
}
+void QQuickWebEngineSettings::setUnknownUrlSchemePolicy(QQuickWebEngineSettings::UnknownUrlSchemePolicy policy)
+{
+ WebEngineSettings::UnknownUrlSchemePolicy oldPolicy = d_ptr->unknownUrlSchemePolicy();
+ WebEngineSettings::UnknownUrlSchemePolicy newPolicy = static_cast<WebEngineSettings::UnknownUrlSchemePolicy>(policy);
+ d_ptr->setUnknownUrlSchemePolicy(newPolicy);
+ if (oldPolicy != newPolicy)
+ Q_EMIT unknownUrlSchemePolicyChanged();
+}
+
void QQuickWebEngineSettings::setParentSettings(QQuickWebEngineSettings *parentSettings)
{
d_ptr->setParentSettings(parentSettings->d_ptr.data());
diff --git a/src/webengine/api/qquickwebenginesettings_p.h b/src/webengine/api/qquickwebenginesettings_p.h
index a8b11c769..8a405fcd3 100644
--- a/src/webengine/api/qquickwebenginesettings_p.h
+++ b/src/webengine/api/qquickwebenginesettings_p.h
@@ -88,8 +88,17 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineSettings : public QObject {
Q_PROPERTY(bool allowGeolocationOnInsecureOrigins READ allowGeolocationOnInsecureOrigins WRITE setAllowGeolocationOnInsecureOrigins NOTIFY allowGeolocationOnInsecureOriginsChanged REVISION 4 FINAL)
Q_PROPERTY(bool allowWindowActivationFromJavaScript READ allowWindowActivationFromJavaScript WRITE setAllowWindowActivationFromJavaScript NOTIFY allowWindowActivationFromJavaScriptChanged REVISION 5 FINAL)
Q_PROPERTY(bool showScrollBars READ showScrollBars WRITE setShowScrollBars NOTIFY showScrollBarsChanged REVISION 5 FINAL)
+ Q_PROPERTY(UnknownUrlSchemePolicy unknownUrlSchemePolicy READ unknownUrlSchemePolicy WRITE setUnknownUrlSchemePolicy NOTIFY unknownUrlSchemePolicyChanged REVISION 5 FINAL)
public:
+ enum UnknownUrlSchemePolicy {
+ DisallowUnknownUrlSchemes = 1,
+ AllowUnknownUrlSchemesFromUserInteraction,
+ AllowAllUnknownUrlSchemes
+ };
+
+ Q_ENUM(UnknownUrlSchemePolicy)
+
~QQuickWebEngineSettings();
bool autoLoadImages() const;
@@ -117,6 +126,7 @@ public:
bool allowGeolocationOnInsecureOrigins() const;
bool allowWindowActivationFromJavaScript() const;
bool showScrollBars() const;
+ UnknownUrlSchemePolicy unknownUrlSchemePolicy() const;
void setAutoLoadImages(bool on);
void setJavascriptEnabled(bool on);
@@ -143,6 +153,7 @@ public:
void setAllowGeolocationOnInsecureOrigins(bool on);
void setAllowWindowActivationFromJavaScript(bool on);
void setShowScrollBars(bool on);
+ void setUnknownUrlSchemePolicy(UnknownUrlSchemePolicy policy);
signals:
void autoLoadImagesChanged();
@@ -170,6 +181,7 @@ signals:
Q_REVISION(4) void allowGeolocationOnInsecureOriginsChanged();
Q_REVISION(5) void allowWindowActivationFromJavaScriptChanged();
Q_REVISION(5) void showScrollBarsChanged();
+ Q_REVISION(5) void unknownUrlSchemePolicyChanged();
private:
explicit QQuickWebEngineSettings(QQuickWebEngineSettings *parentSettings = 0);
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 78fdd8fa8..c100c1f20 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -45,6 +45,7 @@
#include "certificate_error_controller.h"
#include "file_picker_controller.h"
#include "javascript_dialog_controller.h"
+#include "quota_permission_controller.h"
#include "qquickwebenginehistory_p.h"
#include "qquickwebenginecertificateerror_p.h"
#include "qquickwebenginecontextmenurequest_p.h"
@@ -722,6 +723,13 @@ void QQuickWebEngineViewPrivate::runMouseLockPermissionRequest(const QUrl &secur
adapter->grantMouseLockPermission(false);
}
+void QQuickWebEngineViewPrivate::runQuotaPermissionRequest(QSharedPointer<QtWebEngineCore::QuotaPermissionController> controller)
+{
+ Q_Q(QQuickWebEngineView);
+ QQuickWebEngineQuotaPermissionRequest request(controller);
+ Q_EMIT q->quotaPermissionRequested(request);
+}
+
QObject *QQuickWebEngineViewPrivate::accessibilityParentObject()
{
Q_Q(QQuickWebEngineView);
@@ -1856,5 +1864,34 @@ void QQuickWebEngineFullScreenRequest::reject()
m_viewPrivate->setFullScreenMode(!m_toggleOn);
}
+QQuickWebEngineQuotaPermissionRequest::QQuickWebEngineQuotaPermissionRequest(QSharedPointer<QtWebEngineCore::QuotaPermissionController> controller)
+ : d_ptr(controller)
+{
+}
+
+QQuickWebEngineQuotaPermissionRequest::~QQuickWebEngineQuotaPermissionRequest()
+{
+}
+
+void QQuickWebEngineQuotaPermissionRequest::accept()
+{
+ d_ptr->accept();
+}
+
+void QQuickWebEngineQuotaPermissionRequest::reject()
+{
+ d_ptr->cancel();
+}
+
+QUrl QQuickWebEngineQuotaPermissionRequest::origin() const
+{
+ return d_ptr->origin();
+}
+
+qint64 QQuickWebEngineQuotaPermissionRequest::requestedSize() const
+{
+ return d_ptr->requestedSize();
+}
+
QT_END_NAMESPACE
diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h
index ae0523460..59636188f 100644
--- a/src/webengine/api/qquickwebengineview_p.h
+++ b/src/webengine/api/qquickwebengineview_p.h
@@ -56,6 +56,12 @@
#include <QQuickItem>
#include <QtGui/qcolor.h>
+
+namespace QtWebEngineCore {
+ class QuotaPermissionController;
+}
+
+
QT_BEGIN_NAMESPACE
class QQmlWebChannel;
@@ -98,6 +104,26 @@ private:
const bool m_toggleOn;
};
+class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineQuotaPermissionRequest {
+ Q_GADGET
+ Q_PROPERTY(QUrl origin READ origin CONSTANT FINAL)
+ Q_PROPERTY(qint64 requestedSize READ requestedSize CONSTANT FINAL)
+public:
+ QQuickWebEngineQuotaPermissionRequest() {}
+ QQuickWebEngineQuotaPermissionRequest(QSharedPointer<QtWebEngineCore::QuotaPermissionController> controller);
+ ~QQuickWebEngineQuotaPermissionRequest();
+
+ Q_INVOKABLE void accept();
+ Q_INVOKABLE void reject();
+ QUrl origin() const;
+ qint64 requestedSize() const;
+
+private:
+ QSharedPointer<QtWebEngineCore::QuotaPermissionController> d_ptr;
+};
+
+#define LATEST_WEBENGINEVIEW_REVISION 7
+
class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineView : public QQuickItem {
Q_OBJECT
Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged FINAL)
@@ -450,7 +476,7 @@ public:
Q_ENUM(PrintedPageOrientation)
// QmlParserStatus
- virtual void componentComplete() Q_DECL_OVERRIDE;
+ void componentComplete() override;
QQuickWebEngineProfile *profile() const;
void setProfile(QQuickWebEngineProfile *);
@@ -529,18 +555,19 @@ Q_SIGNALS:
Q_REVISION(4) void fileDialogRequested(QQuickWebEngineFileDialogRequest *request);
Q_REVISION(4) void formValidationMessageRequested(QQuickWebEngineFormValidationMessageRequest *request);
Q_REVISION(5) void pdfPrintingFinished(const QString &filePath, bool success);
+ Q_REVISION(7) void quotaPermissionRequested(const QQuickWebEngineQuotaPermissionRequest &request);
#ifdef ENABLE_QML_TESTSUPPORT_API
void testSupportChanged();
#endif
protected:
- void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE;
- void itemChange(ItemChange, const ItemChangeData &) Q_DECL_OVERRIDE;
- void dragEnterEvent(QDragEnterEvent *e) Q_DECL_OVERRIDE;
- void dragLeaveEvent(QDragLeaveEvent *e) Q_DECL_OVERRIDE;
- void dragMoveEvent(QDragMoveEvent *e) Q_DECL_OVERRIDE;
- void dropEvent(QDropEvent *e) Q_DECL_OVERRIDE;
+ void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override;
+ void itemChange(ItemChange, const ItemChangeData &) override;
+ void dragEnterEvent(QDragEnterEvent *e) override;
+ void dragLeaveEvent(QDragLeaveEvent *e) override;
+ void dragMoveEvent(QDragMoveEvent *e) override;
+ void dropEvent(QDropEvent *e) override;
private:
Q_DECLARE_PRIVATE(QQuickWebEngineView)
@@ -557,5 +584,6 @@ QT_END_NAMESPACE
QML_DECLARE_TYPE(QQuickWebEngineView)
Q_DECLARE_METATYPE(QQuickWebEngineFullScreenRequest)
+Q_DECLARE_METATYPE(QQuickWebEngineQuotaPermissionRequest)
#endif // QQUICKWEBENGINEVIEW_P_H
diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h
index 19ecf5e1f..6ba9f62b8 100644
--- a/src/webengine/api/qquickwebengineview_p_p.h
+++ b/src/webengine/api/qquickwebengineview_p_p.h
@@ -89,66 +89,67 @@ public:
QtWebEngineCore::UIDelegatesManager *ui();
- virtual QtWebEngineCore::RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegate(QtWebEngineCore::RenderWidgetHostViewQtDelegateClient *client) Q_DECL_OVERRIDE;
- virtual QtWebEngineCore::RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegateForPopup(QtWebEngineCore::RenderWidgetHostViewQtDelegateClient *client) Q_DECL_OVERRIDE;
- virtual void titleChanged(const QString&) Q_DECL_OVERRIDE;
- virtual void urlChanged(const QUrl&) Q_DECL_OVERRIDE;
- virtual void iconChanged(const QUrl&) Q_DECL_OVERRIDE;
- virtual void loadProgressChanged(int progress) Q_DECL_OVERRIDE;
- virtual void didUpdateTargetURL(const QUrl&) Q_DECL_OVERRIDE;
- virtual void selectionChanged() Q_DECL_OVERRIDE { }
- virtual void recentlyAudibleChanged(bool recentlyAudible) Q_DECL_OVERRIDE;
- virtual QRectF viewportRect() const Q_DECL_OVERRIDE;
- virtual qreal dpiScale() const Q_DECL_OVERRIDE;
- virtual QColor backgroundColor() const Q_DECL_OVERRIDE;
- virtual void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false) Q_DECL_OVERRIDE;
- virtual void loadCommitted() Q_DECL_OVERRIDE;
- virtual void loadVisuallyCommitted() Q_DECL_OVERRIDE;
- virtual void loadFinished(bool success, const QUrl &url, bool isErrorPage = false, int errorCode = 0, const QString &errorDescription = QString()) Q_DECL_OVERRIDE;
- virtual void focusContainer() Q_DECL_OVERRIDE;
- virtual void unhandledKeyEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
- virtual void adoptNewWindow(QSharedPointer<QtWebEngineCore::WebContentsAdapter> newWebContents, WindowOpenDisposition disposition, bool userGesture, const QRect &, const QUrl &targetUrl) Q_DECL_OVERRIDE;
- virtual bool isBeingAdopted() Q_DECL_OVERRIDE;
- virtual void close() Q_DECL_OVERRIDE;
- virtual void windowCloseRejected() Q_DECL_OVERRIDE;
- virtual void requestFullScreenMode(const QUrl &origin, bool fullscreen) Q_DECL_OVERRIDE;
- virtual bool isFullScreenMode() const Q_DECL_OVERRIDE;
- virtual bool contextMenuRequested(const QtWebEngineCore::WebEngineContextMenuData &) Q_DECL_OVERRIDE;
- virtual void navigationRequested(int navigationType, const QUrl &url, int &navigationRequestAction, bool isMainFrame) Q_DECL_OVERRIDE;
- virtual void javascriptDialog(QSharedPointer<QtWebEngineCore::JavaScriptDialogController>) Q_DECL_OVERRIDE;
- virtual void runFileChooser(QSharedPointer<QtWebEngineCore::FilePickerController>) Q_DECL_OVERRIDE;
- virtual void showColorDialog(QSharedPointer<QtWebEngineCore::ColorChooserController>) Q_DECL_OVERRIDE;
- virtual void didRunJavaScript(quint64, const QVariant&) Q_DECL_OVERRIDE;
- virtual void didFetchDocumentMarkup(quint64, const QString&) Q_DECL_OVERRIDE { }
- virtual void didFetchDocumentInnerText(quint64, const QString&) Q_DECL_OVERRIDE { }
- virtual void didFindText(quint64, int) Q_DECL_OVERRIDE;
- virtual void didPrintPage(quint64 requestId, const QByteArray &result) Q_DECL_OVERRIDE;
- virtual void didPrintPageToPdf(const QString &filePath, bool success) Q_DECL_OVERRIDE;
- virtual void passOnFocus(bool reverse) Q_DECL_OVERRIDE;
- virtual void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) Q_DECL_OVERRIDE;
- virtual void authenticationRequired(QSharedPointer<QtWebEngineCore::AuthenticationDialogController>) Q_DECL_OVERRIDE;
- virtual void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) Q_DECL_OVERRIDE;
- virtual void runMouseLockPermissionRequest(const QUrl &securityOrigin) Q_DECL_OVERRIDE;
- virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE;
- virtual QtWebEngineCore::WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE;
- virtual void allowCertificateError(const QSharedPointer<CertificateErrorController> &errorController) Q_DECL_OVERRIDE;
- virtual void runGeolocationPermissionRequest(QUrl const&) Q_DECL_OVERRIDE;
- virtual void showValidationMessage(const QRect &anchor, const QString &mainText, const QString &subText) Q_DECL_OVERRIDE;
- virtual void hideValidationMessage() Q_DECL_OVERRIDE;
- virtual void moveValidationMessage(const QRect &anchor) Q_DECL_OVERRIDE;
+ QtWebEngineCore::RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegate(QtWebEngineCore::RenderWidgetHostViewQtDelegateClient *client) override;
+ QtWebEngineCore::RenderWidgetHostViewQtDelegate* CreateRenderWidgetHostViewQtDelegateForPopup(QtWebEngineCore::RenderWidgetHostViewQtDelegateClient *client) override;
+ void titleChanged(const QString&) override;
+ void urlChanged(const QUrl&) override;
+ void iconChanged(const QUrl&) override;
+ void loadProgressChanged(int progress) override;
+ void didUpdateTargetURL(const QUrl&) override;
+ void selectionChanged() override { }
+ void recentlyAudibleChanged(bool recentlyAudible) override;
+ QRectF viewportRect() const override;
+ qreal dpiScale() const override;
+ QColor backgroundColor() const override;
+ void loadStarted(const QUrl &provisionalUrl, bool isErrorPage = false) override;
+ void loadCommitted() override;
+ void loadVisuallyCommitted() override;
+ void loadFinished(bool success, const QUrl &url, bool isErrorPage = false, int errorCode = 0, const QString &errorDescription = QString()) override;
+ void focusContainer() override;
+ void unhandledKeyEvent(QKeyEvent *event) override;
+ void adoptNewWindow(QSharedPointer<QtWebEngineCore::WebContentsAdapter> newWebContents, WindowOpenDisposition disposition, bool userGesture, const QRect &, const QUrl &targetUrl) override;
+ bool isBeingAdopted() override;
+ void close() override;
+ void windowCloseRejected() override;
+ void requestFullScreenMode(const QUrl &origin, bool fullscreen) override;
+ bool isFullScreenMode() const override;
+ bool contextMenuRequested(const QtWebEngineCore::WebEngineContextMenuData &) override;
+ void navigationRequested(int navigationType, const QUrl &url, int &navigationRequestAction, bool isMainFrame) override;
+ void javascriptDialog(QSharedPointer<QtWebEngineCore::JavaScriptDialogController>) override;
+ void runFileChooser(QSharedPointer<QtWebEngineCore::FilePickerController>) override;
+ void showColorDialog(QSharedPointer<QtWebEngineCore::ColorChooserController>) override;
+ void didRunJavaScript(quint64, const QVariant&) override;
+ void didFetchDocumentMarkup(quint64, const QString&) override { }
+ void didFetchDocumentInnerText(quint64, const QString&) override { }
+ void didFindText(quint64, int) override;
+ void didPrintPage(quint64 requestId, const QByteArray &result) override;
+ void didPrintPageToPdf(const QString &filePath, bool success) override;
+ void passOnFocus(bool reverse) override;
+ void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) override;
+ void authenticationRequired(QSharedPointer<QtWebEngineCore::AuthenticationDialogController>) override;
+ void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) override;
+ void runMouseLockPermissionRequest(const QUrl &securityOrigin) override;
+ void runQuotaPermissionRequest(QSharedPointer<QtWebEngineCore::QuotaPermissionController>) override;
+ QObject *accessibilityParentObject() override;
+ QtWebEngineCore::WebEngineSettings *webEngineSettings() const override;
+ void allowCertificateError(const QSharedPointer<CertificateErrorController> &errorController) override;
+ void runGeolocationPermissionRequest(QUrl const&) override;
+ void showValidationMessage(const QRect &anchor, const QString &mainText, const QString &subText) override;
+ void hideValidationMessage() override;
+ void moveValidationMessage(const QRect &anchor) override;
virtual void renderProcessTerminated(RenderProcessTerminationStatus terminationStatus,
- int exitCode) Q_DECL_OVERRIDE;
- virtual void requestGeometryChange(const QRect &geometry) Q_DECL_OVERRIDE { Q_UNUSED(geometry); }
- virtual void updateScrollPosition(const QPointF &position) Q_DECL_OVERRIDE;
- virtual void updateContentsSize(const QSizeF &size) Q_DECL_OVERRIDE;
+ int exitCode) override;
+ void requestGeometryChange(const QRect &geometry) override { Q_UNUSED(geometry); }
+ void updateScrollPosition(const QPointF &position) override;
+ void updateContentsSize(const QSizeF &size) override;
void startDragging(const content::DropData &dropData, Qt::DropActions allowedActions,
- const QPixmap &pixmap, const QPoint &offset) Q_DECL_OVERRIDE;
- virtual bool isEnabled() const Q_DECL_OVERRIDE;
- virtual void setToolTip(const QString &toolTipText) Q_DECL_OVERRIDE;
- const QObject *holdingQObject() const Q_DECL_OVERRIDE;
+ const QPixmap &pixmap, const QPoint &offset) override;
+ bool isEnabled() const override;
+ void setToolTip(const QString &toolTipText) override;
+ const QObject *holdingQObject() const override;
- virtual QSharedPointer<QtWebEngineCore::BrowserContextAdapter> browserContextAdapter() Q_DECL_OVERRIDE;
- QtWebEngineCore::WebContentsAdapter *webContentsAdapter() Q_DECL_OVERRIDE;
+ QSharedPointer<QtWebEngineCore::BrowserContextAdapter> browserContextAdapter() override;
+ QtWebEngineCore::WebContentsAdapter *webContentsAdapter() override;
void setDevicePixelRatio(qreal);
void adoptWebContents(QtWebEngineCore::WebContentsAdapter *webContents);
@@ -199,13 +200,13 @@ class QQuickWebEngineViewAccessible : public QAccessibleObject
{
public:
QQuickWebEngineViewAccessible(QQuickWebEngineView *o);
- QAccessibleInterface *parent() const Q_DECL_OVERRIDE;
- int childCount() const Q_DECL_OVERRIDE;
- QAccessibleInterface *child(int index) const Q_DECL_OVERRIDE;
- int indexOfChild(const QAccessibleInterface*) const Q_DECL_OVERRIDE;
- QString text(QAccessible::Text) const Q_DECL_OVERRIDE;
- QAccessible::Role role() const Q_DECL_OVERRIDE;
- QAccessible::State state() const Q_DECL_OVERRIDE;
+ QAccessibleInterface *parent() const override;
+ int childCount() const override;
+ QAccessibleInterface *child(int index) const override;
+ int indexOfChild(const QAccessibleInterface*) const override;
+ QString text(QAccessible::Text) const override;
+ QAccessible::Role role() const override;
+ QAccessible::State state() const override;
private:
QQuickWebEngineView *engineView() const { return static_cast<QQuickWebEngineView*>(object()); }
diff --git a/src/webengine/doc/src/webengineview.qdoc b/src/webengine/doc/src/webengineview.qdoc
index 9cd7e3f27..4f0c40e0d 100644
--- a/src/webengine/doc/src/webengineview.qdoc
+++ b/src/webengine/doc/src/webengineview.qdoc
@@ -1297,3 +1297,61 @@
/*! \qmlsignal WebEngineView::navigationRequested(WebEngineNavigationRequest request)
This signal is emitted when the navigation request \a request is issued.
*/
+
+/*!
+ \qmlsignal WebEngineView::quotaPermissionRequested(QuotaPermissionRequest request)
+ \since QtWebEngine 1.7
+
+ This signal is emitted when the web page requests larger persistent storage
+ than the application's current allocation in File System API. The default quota
+ is 0 bytes.
+
+ \sa QuotaPermissionRequest
+*/
+
+/*!
+ \qmltype QuotaPermissionRequest
+ \instantiates QQuickWebEngineQuotaPermissionRequest
+ \inqmlmodule QtWebEngine
+ \since QtWebEngine 1.7
+
+ \brief A utility type for the WebEngineView::quotaPermissionRequested() signal.
+
+ \sa WebEngineView::quotaPermissionRequested()
+*/
+
+/*!
+ \qmlproperty url QuotaPermissionRequest::origin
+ \readonly
+
+ The URL of the web page that issued the quota permission request.
+*/
+
+/*!
+ \qmlproperty qint64 QuotaPermissionRequest::requestedSize
+ \readonly
+
+ Contains the size of the requested disk space in bytes.
+*/
+
+/*!
+ \qmlmethod void QuotaPermissionRequest::accept()
+
+ Accepts the quota permission request.
+
+ \qml
+ WebEngineView {
+ onQuotaPermissionRequested: function(request) {
+ if (request.requestedSize <= 5 * 1024 * 1024)
+ request.accept();
+ else
+ request.reject();
+ }
+ }
+ \endqml
+*/
+
+/*!
+ \qmlmethod void QuotaPermissionRequest::reject()
+ Rejects a quota permission request.
+*/
diff --git a/src/webengine/plugin/plugin.cpp b/src/webengine/plugin/plugin.cpp
index 5ab792699..077762352 100644
--- a/src/webengine/plugin/plugin.cpp
+++ b/src/webengine/plugin/plugin.cpp
@@ -66,13 +66,13 @@ class QtWebEnginePlugin : public QQmlExtensionPlugin
Q_OBJECT
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
- virtual void initializeEngine(QQmlEngine *engine, const char *uri) Q_DECL_OVERRIDE
+ void initializeEngine(QQmlEngine *engine, const char *uri) override
{
Q_UNUSED(uri);
engine->addImageProvider(QQuickWebEngineFaviconProvider::identifier(), new QQuickWebEngineFaviconProvider);
}
- virtual void registerTypes(const char *uri) Q_DECL_OVERRIDE
+ void registerTypes(const char *uri) override
{
Q_ASSERT(QLatin1String(uri) == QLatin1String("QtWebEngine"));
@@ -133,6 +133,8 @@ public:
msgUncreatableType("FileDialogRequest"));
qmlRegisterUncreatableType<QQuickWebEngineFormValidationMessageRequest>(uri, 1, 4, "FormValidationMessageRequest",
msgUncreatableType("FormValidationMessageRequest"));
+ qmlRegisterUncreatableType<QQuickWebEngineQuotaPermissionRequest>(uri, 1, 7, "QuotaPermissionRequest",
+ tr("Cannot create a separate instance of QuotaPermissionRequest"));
}
private:
diff --git a/src/webengine/plugin/plugins.qmltypes b/src/webengine/plugin/plugins.qmltypes
index 321c462b5..e8ec1fa7a 100644
--- a/src/webengine/plugin/plugins.qmltypes
+++ b/src/webengine/plugin/plugins.qmltypes
@@ -119,10 +119,11 @@ Module {
"QtWebEngine/WebEngineDownloadItem 1.2",
"QtWebEngine/WebEngineDownloadItem 1.3",
"QtWebEngine/WebEngineDownloadItem 1.4",
- "QtWebEngine/WebEngineDownloadItem 1.5"
+ "QtWebEngine/WebEngineDownloadItem 1.5",
+ "QtWebEngine/WebEngineDownloadItem 1.6"
]
isCreatable: false
- exportMetaObjectRevisions: [0, 1, 2, 3, 4]
+ exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5]
Enum {
name: "DownloadState"
values: {
@@ -195,12 +196,18 @@ Module {
isReadonly: true
}
Property { name: "interruptReasonString"; revision: 4; type: "string"; isReadonly: true }
+ Property { name: "isFinished"; revision: 5; type: "bool"; isReadonly: true }
+ Property { name: "isPaused"; revision: 5; type: "bool"; isReadonly: true }
Signal { name: "savePageFormatChanged"; revision: 2 }
Signal { name: "mimeTypeChanged"; revision: 1 }
Signal { name: "typeChanged"; revision: 3 }
Signal { name: "interruptReasonChanged"; revision: 4 }
+ Signal { name: "isFinishedChanged"; revision: 5 }
+ Signal { name: "isPausedChanged"; revision: 5 }
Method { name: "accept" }
Method { name: "cancel" }
+ Method { name: "pause" }
+ Method { name: "resume" }
}
Component {
name: "QQuickWebEngineFileDialogRequest"
@@ -514,6 +521,14 @@ Module {
]
isCreatable: false
exportMetaObjectRevisions: [0, 1, 2, 3, 4, 5]
+ Enum {
+ name: "UnknownUrlSchemePolicy"
+ values: {
+ "DisallowUnknownUrlSchemes": 1,
+ "AllowUnknownUrlSchemesFromUserInteraction": 2,
+ "AllowAllUnknownUrlSchemes": 3
+ }
+ }
Property { name: "autoLoadImages"; type: "bool" }
Property { name: "javascriptEnabled"; type: "bool" }
Property { name: "javascriptCanOpenWindows"; type: "bool" }
@@ -538,6 +553,7 @@ Module {
Property { name: "allowRunningInsecureContent"; revision: 3; type: "bool" }
Property { name: "allowGeolocationOnInsecureOrigins"; revision: 4; type: "bool" }
Property { name: "allowWindowActivationFromJavaScript"; revision: 5; type: "bool" }
+ Property { name: "unknownUrlSchemePolicy"; revision: 5; type: "UnknownUrlSchemePolicy" }
Signal { name: "fullScreenSupportEnabledChanged"; revision: 1 }
Signal { name: "screenCaptureEnabledChanged"; revision: 2 }
Signal { name: "webGLEnabledChanged"; revision: 2 }
@@ -549,6 +565,7 @@ Module {
Signal { name: "allowRunningInsecureContentChanged"; revision: 3 }
Signal { name: "allowGeolocationOnInsecureOriginsChanged"; revision: 4 }
Signal { name: "allowWindowActivationFromJavaScriptChanged"; revision: 5 }
+ Signal { name: "unknownUrlSchemePolicyChanged"; revision: 5 }
}
Component {
name: "QQuickWebEngineSingleton"
@@ -892,7 +909,6 @@ Module {
Property { name: "audioMuted"; revision: 3; type: "bool" }
Property { name: "recentlyAudible"; revision: 3; type: "bool"; isReadonly: true }
Property { name: "webChannelWorld"; revision: 3; type: "uint" }
- Property { name: "testSupport"; type: "QQuickWebEngineTestSupport"; isPointer: true }
Signal {
name: "loadingChanged"
Parameter { name: "loadRequest"; type: "QQuickWebEngineLoadRequest"; isPointer: true }
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quick.h b/src/webengine/render_widget_host_view_qt_delegate_quick.h
index 7a08e915b..3a79b20af 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quick.h
+++ b/src/webengine/render_widget_host_view_qt_delegate_quick.h
@@ -52,49 +52,49 @@ class RenderWidgetHostViewQtDelegateQuick : public QQuickItem, public RenderWidg
public:
RenderWidgetHostViewQtDelegateQuick(RenderWidgetHostViewQtDelegateClient *client, bool isPopup);
- virtual void initAsChild(WebContentsAdapterClient* container) Q_DECL_OVERRIDE;
- virtual void initAsPopup(const QRect&) Q_DECL_OVERRIDE;
- virtual QRectF screenRect() const Q_DECL_OVERRIDE;
- virtual QRectF contentsRect() const Q_DECL_OVERRIDE;
- virtual void setKeyboardFocus() Q_DECL_OVERRIDE;
- virtual bool hasKeyboardFocus() Q_DECL_OVERRIDE;
- virtual void lockMouse() Q_DECL_OVERRIDE;
- virtual void unlockMouse() Q_DECL_OVERRIDE;
- virtual void show() Q_DECL_OVERRIDE;
- virtual void hide() Q_DECL_OVERRIDE;
- virtual bool isVisible() const Q_DECL_OVERRIDE;
- virtual QWindow* window() const Q_DECL_OVERRIDE;
- virtual QSGTexture *createTextureFromImage(const QImage &) Q_DECL_OVERRIDE;
- virtual QSGLayer *createLayer() Q_DECL_OVERRIDE;
- virtual QSGInternalImageNode *createImageNode() Q_DECL_OVERRIDE;
- virtual QSGTextureNode *createTextureNode() Q_DECL_OVERRIDE;
- virtual QSGRectangleNode *createRectangleNode() Q_DECL_OVERRIDE;
- virtual void update() Q_DECL_OVERRIDE;
- virtual void updateCursor(const QCursor &) Q_DECL_OVERRIDE;
- virtual void resize(int width, int height) Q_DECL_OVERRIDE;
- virtual void move(const QPoint&) Q_DECL_OVERRIDE { }
- virtual void inputMethodStateChanged(bool editorVisible) Q_DECL_OVERRIDE;
- virtual void setInputMethodHints(Qt::InputMethodHints) Q_DECL_OVERRIDE { }
+ void initAsChild(WebContentsAdapterClient* container) override;
+ void initAsPopup(const QRect&) override;
+ QRectF screenRect() const override;
+ QRectF contentsRect() const override;
+ void setKeyboardFocus() override;
+ bool hasKeyboardFocus() override;
+ void lockMouse() override;
+ void unlockMouse() override;
+ void show() override;
+ void hide() override;
+ bool isVisible() const override;
+ QWindow* window() const override;
+ QSGTexture *createTextureFromImage(const QImage &) override;
+ QSGLayer *createLayer() override;
+ QSGInternalImageNode *createImageNode() override;
+ QSGTextureNode *createTextureNode() override;
+ QSGRectangleNode *createRectangleNode() override;
+ void update() override;
+ void updateCursor(const QCursor &) override;
+ void resize(int width, int height) override;
+ void move(const QPoint&) override { }
+ void inputMethodStateChanged(bool editorVisible) override;
+ void setInputMethodHints(Qt::InputMethodHints) override { }
// The QtQuick view doesn't have a backbuffer of its own and doesn't need this
- virtual void setClearColor(const QColor &) Q_DECL_OVERRIDE { }
+ void setClearColor(const QColor &) override { }
protected:
- virtual bool event(QEvent *event) Q_DECL_OVERRIDE;
- virtual void focusInEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
- virtual void focusOutEvent(QFocusEvent *event) Q_DECL_OVERRIDE;
- virtual void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
- virtual void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
- virtual void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
- virtual void keyPressEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
- virtual void keyReleaseEvent(QKeyEvent *event) Q_DECL_OVERRIDE;
- virtual void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE;
- virtual void touchEvent(QTouchEvent *event) Q_DECL_OVERRIDE;
- virtual void hoverMoveEvent(QHoverEvent *event) Q_DECL_OVERRIDE;
- virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const Q_DECL_OVERRIDE;
- virtual void inputMethodEvent(QInputMethodEvent *event) Q_DECL_OVERRIDE;
- virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) Q_DECL_OVERRIDE;
- virtual void itemChange(ItemChange change, const ItemChangeData &value) Q_DECL_OVERRIDE;
- virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) Q_DECL_OVERRIDE;
+ bool event(QEvent *event) override;
+ void focusInEvent(QFocusEvent *event) override;
+ void focusOutEvent(QFocusEvent *event) override;
+ void mousePressEvent(QMouseEvent *event) override;
+ void mouseMoveEvent(QMouseEvent *event) override;
+ void mouseReleaseEvent(QMouseEvent *event) override;
+ void keyPressEvent(QKeyEvent *event) override;
+ void keyReleaseEvent(QKeyEvent *event) override;
+ void wheelEvent(QWheelEvent *event) override;
+ void touchEvent(QTouchEvent *event) override;
+ void hoverMoveEvent(QHoverEvent *event) override;
+ QVariant inputMethodQuery(Qt::InputMethodQuery query) const override;
+ void inputMethodEvent(QInputMethodEvent *event) override;
+ void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) override;
+ void itemChange(ItemChange change, const ItemChangeData &value) override;
+ QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
private slots:
void onWindowPosChanged();
diff --git a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h
index 057b91c75..c4a1ac67b 100644
--- a/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h
+++ b/src/webengine/render_widget_host_view_qt_delegate_quickwindow.h
@@ -55,30 +55,30 @@ public:
RenderWidgetHostViewQtDelegateQuickWindow(RenderWidgetHostViewQtDelegate *realDelegate);
~RenderWidgetHostViewQtDelegateQuickWindow();
- virtual void initAsChild(WebContentsAdapterClient* container) Q_DECL_OVERRIDE;
- virtual void initAsPopup(const QRect&) Q_DECL_OVERRIDE;
- virtual QRectF screenRect() const Q_DECL_OVERRIDE;
- virtual QRectF contentsRect() const Q_DECL_OVERRIDE;
- virtual void setKeyboardFocus() Q_DECL_OVERRIDE {}
- virtual bool hasKeyboardFocus() Q_DECL_OVERRIDE { return false; }
- virtual void lockMouse() Q_DECL_OVERRIDE {}
- virtual void unlockMouse() Q_DECL_OVERRIDE {}
- virtual void show() Q_DECL_OVERRIDE;
- virtual void hide() Q_DECL_OVERRIDE;
- virtual bool isVisible() const Q_DECL_OVERRIDE;
- virtual QWindow* window() const Q_DECL_OVERRIDE;
- virtual QSGTexture *createTextureFromImage(const QImage &) Q_DECL_OVERRIDE;
- virtual QSGLayer *createLayer() Q_DECL_OVERRIDE;
- virtual QSGInternalImageNode *createImageNode() Q_DECL_OVERRIDE;
- virtual QSGTextureNode *createTextureNode() Q_DECL_OVERRIDE;
- virtual QSGRectangleNode *createRectangleNode() Q_DECL_OVERRIDE;
- virtual void update() Q_DECL_OVERRIDE;
- virtual void updateCursor(const QCursor &) Q_DECL_OVERRIDE;
- virtual void resize(int width, int height) Q_DECL_OVERRIDE;
- virtual void move(const QPoint &screenPos) Q_DECL_OVERRIDE;
- virtual void inputMethodStateChanged(bool) Q_DECL_OVERRIDE {}
- virtual void setInputMethodHints(Qt::InputMethodHints) Q_DECL_OVERRIDE { }
- virtual void setClearColor(const QColor &) Q_DECL_OVERRIDE { }
+ void initAsChild(WebContentsAdapterClient* container) override;
+ void initAsPopup(const QRect&) override;
+ QRectF screenRect() const override;
+ QRectF contentsRect() const override;
+ void setKeyboardFocus() override {}
+ bool hasKeyboardFocus() override { return false; }
+ void lockMouse() override {}
+ void unlockMouse() override {}
+ void show() override;
+ void hide() override;
+ bool isVisible() const override;
+ QWindow* window() const override;
+ QSGTexture *createTextureFromImage(const QImage &) override;
+ QSGLayer *createLayer() override;
+ QSGInternalImageNode *createImageNode() override;
+ QSGTextureNode *createTextureNode() override;
+ QSGRectangleNode *createRectangleNode() override;
+ void update() override;
+ void updateCursor(const QCursor &) override;
+ void resize(int width, int height) override;
+ void move(const QPoint &screenPos) override;
+ void inputMethodStateChanged(bool) override {}
+ void setInputMethodHints(Qt::InputMethodHints) override { }
+ void setClearColor(const QColor &) override { }
private:
QScopedPointer<RenderWidgetHostViewQtDelegate> m_realDelegate;