diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2016-10-17 07:00:26 -0700 |
---|---|---|
committer | Szabolcs David <davidsz@inf.u-szeged.hu> | 2017-09-13 13:34:31 +0000 |
commit | 7b365eb352780dc0d939e918b0aa58d0458fd9da (patch) | |
tree | 6453e84f62bcbe92f9149a486fc83dbdf09cdb4c /src/webengine/api/qquickwebengineview.cpp | |
parent | 98bdf56f7428094c2d197fff72422d301470fbcb (diff) |
Support Quota Management API
Expose navigator.webkitPersistentStorage.requestQuota() calls to
the API layer as a permission API. It allows the users to accept
these requests and specify a quota for persistent storage.
https://developer.chrome.com/apps/offline_storage#managing_quota
[ChangeLog] navigator.webkitPersistentStorage.requestQuota() calls
were rejected by default and now they will emit signal
quotaPermissionRequested in both WebEngineView and QWebEnginePage.
Task-number: QTBUG-56354
Change-Id: Id192577ffb403694d3051414744ded89bbfd2aa8
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/webengine/api/qquickwebengineview.cpp')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 123acb20c..f8fcb5793 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); @@ -1854,5 +1862,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 |