diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 26 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p.h | 10 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p_p.h | 13 | ||||
-rw-r--r-- | src/webengine/doc/src/qquickwebengineview_lgpl.qdoc | 31 |
4 files changed, 55 insertions, 25 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 232d63b30..85d400caf 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -253,7 +253,8 @@ void QQuickWebEngineViewPrivate::allowCertificateError(const QSharedPointer<Cert void QQuickWebEngineViewPrivate::runGeolocationPermissionRequest(const QUrl &url) { - Q_EMIT e->featurePermissionRequested(url, QQuickWebEngineViewExperimental::Geolocation); + Q_Q(QQuickWebEngineView); + Q_EMIT q->featurePermissionRequested(url, QQuickWebEngineView::Geolocation); } void QQuickWebEngineViewPrivate::runFileChooser(FileChooserMode mode, const QString &defaultFileName, const QStringList &acceptedMimeTypes) @@ -452,16 +453,17 @@ void QQuickWebEngineViewPrivate::javaScriptConsoleMessage(JavaScriptConsoleMessa void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &securityOrigin, WebContentsAdapterClient::MediaRequestFlags requestFlags) { - if (!requestFlags) - return; - QQuickWebEngineViewExperimental::Feature feature; - if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture) && requestFlags.testFlag(WebContentsAdapterClient::MediaVideoCapture)) - feature = QQuickWebEngineViewExperimental::MediaAudioVideoCapture; - else if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture)) - feature = QQuickWebEngineViewExperimental::MediaAudioCapture; - else // WebContentsAdapterClient::MediaVideoCapture - feature = QQuickWebEngineViewExperimental::MediaVideoCapture; - Q_EMIT e->featurePermissionRequested(securityOrigin, feature); + Q_Q(QQuickWebEngineView); + if (!requestFlags) + return; + QQuickWebEngineView::Feature feature; + if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture) && requestFlags.testFlag(WebContentsAdapterClient::MediaVideoCapture)) + feature = QQuickWebEngineView::MediaAudioVideoCapture; + else if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture)) + feature = QQuickWebEngineView::MediaAudioCapture; + else // WebContentsAdapterClient::MediaVideoCapture + feature = QQuickWebEngineView::MediaVideoCapture; + Q_EMIT q->featurePermissionRequested(securityOrigin, feature); } void QQuickWebEngineViewPrivate::runMouseLockPermissionRequest(const QUrl &securityOrigin) @@ -923,7 +925,7 @@ void QQuickWebEngineView::setWebChannel(QQmlWebChannel *webChannel) Q_EMIT webChannelChanged(); } -void QQuickWebEngineViewExperimental::grantFeaturePermission(const QUrl &securityOrigin, QQuickWebEngineViewExperimental::Feature feature, bool granted) +void QQuickWebEngineView::grantFeaturePermission(const QUrl &securityOrigin, QQuickWebEngineView::Feature feature, bool granted) { if (!d_ptr->adapter) return; diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h index 248ee62b6..c84a65805 100644 --- a/src/webengine/api/qquickwebengineview_p.h +++ b/src/webengine/api/qquickwebengineview_p.h @@ -99,6 +99,7 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineView : public QQuickItem { Q_ENUMS(LoadStatus); Q_ENUMS(ErrorDomain); Q_ENUMS(NewViewDestination); + Q_ENUMS(Feature); Q_ENUMS(JavaScriptConsoleMessageLevel); Q_FLAGS(FindFlags); @@ -162,6 +163,13 @@ public: NewViewInBackgroundTab }; + enum Feature { + MediaAudioCapture, + MediaVideoCapture, + MediaAudioVideoCapture, + Geolocation + }; + // must match WebContentsAdapterClient::JavaScriptConsoleMessageLevel enum JavaScriptConsoleMessageLevel { InfoMessageLevel = 0, @@ -202,6 +210,7 @@ public Q_SLOTS: void stop(); Q_REVISION(1) void findText(const QString &subString, FindFlags options = 0, const QJSValue &callback = QJSValue()); Q_REVISION(1) void fullScreenCancelled(); + Q_REVISION(1) void grantFeaturePermission(const QUrl &securityOrigin, Feature, bool granted); Q_SIGNALS: void titleChanged(); @@ -215,6 +224,7 @@ Q_SIGNALS: Q_REVISION(1) void certificateError(QQuickWebEngineCertificateError *error); Q_REVISION(1) void fullScreenRequested(const QQuickWebEngineFullScreenRequest &request); Q_REVISION(1) void isFullScreenChanged(); + Q_REVISION(1) void featurePermissionRequested(const QUrl &securityOrigin, Feature feature); Q_REVISION(1) void newViewRequested(QQuickWebEngineNewViewRequest *request); Q_REVISION(1) void zoomFactorChanged(qreal arg); Q_REVISION(1) void webChannelChanged(); diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index ec8f83468..edc8c1a92 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -83,26 +83,13 @@ class Q_WEBENGINE_PRIVATE_EXPORT QQuickWebEngineViewExperimental : public QObjec Q_OBJECT Q_PROPERTY(QQuickWebEngineViewport *viewport READ viewport) Q_PROPERTY(QQmlComponent *extraContextMenuEntriesComponent READ extraContextMenuEntriesComponent WRITE setExtraContextMenuEntriesComponent NOTIFY extraContextMenuEntriesComponentChanged) - Q_ENUMS(Feature) - -public: - enum Feature { - MediaAudioCapture, - MediaVideoCapture, - MediaAudioVideoCapture, - Geolocation - }; QQuickWebEngineViewport *viewport() const; void setExtraContextMenuEntriesComponent(QQmlComponent *); QQmlComponent *extraContextMenuEntriesComponent() const; -public Q_SLOTS: - void grantFeaturePermission(const QUrl &securityOrigin, Feature, bool granted); - Q_SIGNALS: void extraContextMenuEntriesComponentChanged(); - void featurePermissionRequested(const QUrl &securityOrigin, Feature feature); void loadVisuallyCommitted(); private: diff --git a/src/webengine/doc/src/qquickwebengineview_lgpl.qdoc b/src/webengine/doc/src/qquickwebengineview_lgpl.qdoc index 73c084dab..035d4a382 100644 --- a/src/webengine/doc/src/qquickwebengineview_lgpl.qdoc +++ b/src/webengine/doc/src/qquickwebengineview_lgpl.qdoc @@ -245,6 +245,23 @@ */ /*! + \qmlmethod void WebEngineView::grantFeaturePermission(url securityOrigin, WebEngineView::Feature feature, bool granted) + + Sets the permission for the web site identified by \a securityOrigin to use \a feature. + + \sa featurePermissionRequested() +*/ + +/*! + \qmlsignal void WebEngineView::featurePermissionRequested(url securityOrigin, WebEngineView::Feature feature) + + This is signal is emitted when the web site identified by \a securityOrigin requests + to make use of the resource or device identified by \a feature. + + \sa grantFeaturePermission() +*/ + +/*! \qmlsignal WebEngineView::loadingChanged(loadRequest) This signal is emitted when a page load begins, ends, or fails. @@ -416,3 +433,17 @@ \sa WebEngineView::findText() */ + +/*! + \qmlproperty enumeration WebEngineView::Feature + + This enum describes the platform feature access categories that the user may be asked to grant or deny access to. + + \value Geolocation Access to location hardware or service + \value MediaAudioCapture Audio capture devices such a microphones + \value MediaVideoCapture Video devices, e.g. cameras + \value MediaAudioVideoCapture Both Audio and Video capture devices. + + \sa featurePermissionRequested(), grantFeaturePermission() + +*/ |