diff options
-rw-r--r-- | src/webengine/api/qquickwebengineview.cpp | 13 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineview_p_p.h | 5 | ||||
-rw-r--r-- | tests/quicktestbrowser/FeaturePermissionBar.qml | 2 |
3 files changed, 16 insertions, 4 deletions
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp index 3a6b8cb21..ac172fa9d 100644 --- a/src/webengine/api/qquickwebengineview.cpp +++ b/src/webengine/api/qquickwebengineview.cpp @@ -218,6 +218,11 @@ void QQuickWebEngineViewPrivate::allowCertificateError(const QExplicitlySharedDa Q_UNUSED(errorController); } +void QQuickWebEngineViewPrivate::runGeolocationPermissionRequest(const QUrl &url) +{ + Q_EMIT e->featurePermissionRequested(url, QQuickWebEngineViewExperimental::Geolocation); +} + void QQuickWebEngineViewPrivate::runFileChooser(FileChooserMode mode, const QString &defaultFileName, const QStringList &acceptedMimeTypes) { ui()->showFilePicker(mode, defaultFileName, acceptedMimeTypes, adapter); @@ -723,9 +728,13 @@ void QQuickWebEngineViewExperimental::grantFeaturePermission(const QUrl &securit d_ptr->adapter->grantMediaAccessPermission(securityOrigin, WebContentsAdapterClient::MediaVideoCapture); break; case MediaAudioVideoDevices: - d_ptr->adapter->grantMediaAccessPermission(securityOrigin, WebContentsAdapterClient::MediaRequestFlags(WebContentsAdapterClient::MediaAudioCapture - | WebContentsAdapterClient::MediaVideoCapture)); + d_ptr->adapter->grantMediaAccessPermission(securityOrigin, WebContentsAdapterClient::MediaRequestFlags(WebContentsAdapterClient::MediaAudioCapture | WebContentsAdapterClient::MediaVideoCapture)); break; + case Geolocation: + d_ptr->adapter->runGeolocationRequestCallback(securityOrigin, granted); + break; + default: + Q_UNREACHABLE(); } } diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h index 7deba4ce7..7d2b75b22 100644 --- a/src/webengine/api/qquickwebengineview_p_p.h +++ b/src/webengine/api/qquickwebengineview_p_p.h @@ -90,7 +90,8 @@ public: enum Feature { MediaAudioDevices, MediaVideoDevices, - MediaAudioVideoDevices + MediaAudioVideoDevices, + Geolocation }; enum FindFlag { @@ -178,7 +179,7 @@ public: virtual QObject *accessibilityParentObject() Q_DECL_OVERRIDE; virtual WebEngineSettings *webEngineSettings() const Q_DECL_OVERRIDE; virtual void allowCertificateError(const QExplicitlySharedDataPointer<CertificateErrorController> &errorController); - virtual void runGeolocationPermissionRequest(QUrl const&) Q_DECL_OVERRIDE { } + virtual void runGeolocationPermissionRequest(QUrl const&) Q_DECL_OVERRIDE; virtual BrowserContextAdapter *browserContextAdapter() Q_DECL_OVERRIDE; diff --git a/tests/quicktestbrowser/FeaturePermissionBar.qml b/tests/quicktestbrowser/FeaturePermissionBar.qml index dd2e0f714..d25ca5021 100644 --- a/tests/quicktestbrowser/FeaturePermissionBar.qml +++ b/tests/quicktestbrowser/FeaturePermissionBar.qml @@ -75,6 +75,8 @@ Rectangle { return "your camera" if (feature === WebEngineViewExperimental.MediaAudioVideoDevices) return "your camera and microphone" + if (feature === WebEngineViewExperimental.Geolocation) + return "your position" } } |