summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/webengine/api/qquickwebengineview.cpp13
-rw-r--r--src/webengine/api/qquickwebengineview_p_p.h5
-rw-r--r--tests/quicktestbrowser/FeaturePermissionBar.qml2
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"
}
}