summaryrefslogtreecommitdiffstats
path: root/src/webengine/api
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-04-27 10:03:12 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-04-27 10:03:43 +0200
commit10e66c6dd0b8a8dd17252d6408c13b689fac6995 (patch)
treefbdddb33a818b5495b24f3949f7406b0b916e78c /src/webengine/api
parentd0852f90a24673ccc9ef0b93e224ba37b674644d (diff)
parent75412200db05ddc5ee2b9aea367b580d8b0c438e (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts: configure.pri src/pdf/api/qpdfpagerenderer.h Change-Id: I7e68277080e29238bbfe8511539ea75b2db89489
Diffstat (limited to 'src/webengine/api')
-rw-r--r--src/webengine/api/qquickwebenginecertificateerror.cpp4
-rw-r--r--src/webengine/api/qquickwebenginecertificateerror_p.h1
-rw-r--r--src/webengine/api/qquickwebenginesettings.cpp8
-rw-r--r--src/webengine/api/qquickwebengineview.cpp23
-rw-r--r--src/webengine/api/qquickwebengineview_p_p.h3
5 files changed, 28 insertions, 11 deletions
diff --git a/src/webengine/api/qquickwebenginecertificateerror.cpp b/src/webengine/api/qquickwebenginecertificateerror.cpp
index 855e61817..63beb1bae 100644
--- a/src/webengine/api/qquickwebenginecertificateerror.cpp
+++ b/src/webengine/api/qquickwebenginecertificateerror.cpp
@@ -200,6 +200,10 @@ QUrl QQuickWebEngineCertificateError::url() const
\value WebEngineCertificateError.CertificateTransparencyRequired
Certificate Transparency was required for this connection, but the server
did not provide CT information that complied with the policy. (Added in 5.8)
+ \value WebEngineCertificateError.CertificateKnownInterceptionBlocked
+ The certificate is known to be used for interception by an entity other
+ the device owner. (Added in 5.15)
+
*/
QQuickWebEngineCertificateError::Error QQuickWebEngineCertificateError::error() const
{
diff --git a/src/webengine/api/qquickwebenginecertificateerror_p.h b/src/webengine/api/qquickwebenginecertificateerror_p.h
index 77fbe27aa..4a8ef6ae0 100644
--- a/src/webengine/api/qquickwebenginecertificateerror_p.h
+++ b/src/webengine/api/qquickwebenginecertificateerror_p.h
@@ -85,6 +85,7 @@ public:
CertificateNameConstraintViolation = -212,
CertificateValidityTooLong = -213,
CertificateTransparencyRequired = -214,
+ CertificateKnownInterceptionBlocked = -217,
};
Q_ENUM(Error)
diff --git a/src/webengine/api/qquickwebenginesettings.cpp b/src/webengine/api/qquickwebenginesettings.cpp
index 9a102a504..78fbe16e8 100644
--- a/src/webengine/api/qquickwebenginesettings.cpp
+++ b/src/webengine/api/qquickwebenginesettings.cpp
@@ -404,10 +404,14 @@ bool QQuickWebEngineSettings::showScrollBars() const
\qmlproperty bool WebEngineSettings::playbackRequiresUserGesture
\since QtWebEngine 1.7
Inhibits playback of media content until the user interacts with
- the page. Disabled by default.
+ the page.
+
+ By default, Qt WebEngine uses Chromium settings, as described in
+ \l {Autoplay Policy Changes}. To overwrite the default behavior,
+ this property must be set to \c false.
\note The behavior is similar to Chrome on Android when enabled,
- and similar to Chrome on desktops when disabled (default).
+ and similar to Chrome on desktops when disabled.
*/
bool QQuickWebEngineSettings::playbackRequiresUserGesture() const
{
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 238ad25b2..afb0fbd25 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -316,16 +316,25 @@ void QQuickWebEngineViewPrivate::selectClientCert(const QSharedPointer<ClientCer
#endif
}
-void QQuickWebEngineViewPrivate::runGeolocationPermissionRequest(const QUrl &url)
+static QQuickWebEngineView::Feature toFeature(QtWebEngineCore::ProfileAdapter::PermissionType type)
{
- Q_Q(QQuickWebEngineView);
- Q_EMIT q->featurePermissionRequested(url, QQuickWebEngineView::Geolocation);
+ switch (type) {
+ case QtWebEngineCore::ProfileAdapter::NotificationPermission:
+ return QQuickWebEngineView::Notifications;
+ case QtWebEngineCore::ProfileAdapter::GeolocationPermission:
+ return QQuickWebEngineView::Geolocation;
+ default:
+ break;
+ }
+ Q_UNREACHABLE();
+ return QQuickWebEngineView::Feature(-1);
}
-void QQuickWebEngineViewPrivate::runUserNotificationPermissionRequest(const QUrl &url)
+
+void QQuickWebEngineViewPrivate::runFeaturePermissionRequest(QtWebEngineCore::ProfileAdapter::PermissionType permission, const QUrl &url)
{
Q_Q(QQuickWebEngineView);
- Q_EMIT q->featurePermissionRequested(url, QQuickWebEngineView::Notifications);
+ Q_EMIT q->featurePermissionRequested(url, toFeature(permission));
}
void QQuickWebEngineViewPrivate::showColorDialog(QSharedPointer<ColorChooserController> controller)
@@ -1629,7 +1638,7 @@ void QQuickWebEngineView::grantFeaturePermission(const QUrl &securityOrigin, QQu
d_ptr->adapter->grantMediaAccessPermission(securityOrigin, WebContentsAdapterClient::MediaRequestFlags(WebContentsAdapterClient::MediaAudioCapture | WebContentsAdapterClient::MediaVideoCapture));
break;
case Geolocation:
- d_ptr->adapter->runGeolocationRequestCallback(securityOrigin, granted);
+ d_ptr->adapter->runFeatureRequestCallback(securityOrigin, ProfileAdapter::GeolocationPermission, granted);
break;
case DesktopVideoCapture:
d_ptr->adapter->grantMediaAccessPermission(securityOrigin, WebContentsAdapterClient::MediaDesktopVideoCapture);
@@ -1642,7 +1651,7 @@ void QQuickWebEngineView::grantFeaturePermission(const QUrl &securityOrigin, QQu
WebContentsAdapterClient::MediaDesktopVideoCapture));
break;
case Notifications:
- d_ptr->adapter->runUserNotificationRequestCallback(securityOrigin, granted);
+ d_ptr->adapter->runFeatureRequestCallback(securityOrigin, ProfileAdapter::NotificationPermission, granted);
break;
default:
Q_UNREACHABLE();
diff --git a/src/webengine/api/qquickwebengineview_p_p.h b/src/webengine/api/qquickwebengineview_p_p.h
index 6f9b552ec..5c884e36e 100644
--- a/src/webengine/api/qquickwebengineview_p_p.h
+++ b/src/webengine/api/qquickwebengineview_p_p.h
@@ -148,8 +148,7 @@ public:
QtWebEngineCore::WebEngineSettings *webEngineSettings() const override;
void allowCertificateError(const QSharedPointer<CertificateErrorController> &errorController) override;
void selectClientCert(const QSharedPointer<ClientCertSelectController> &selectController) override;
- void runGeolocationPermissionRequest(QUrl const&) override;
- void runUserNotificationPermissionRequest(QUrl const&) override;
+ void runFeaturePermissionRequest(QtWebEngineCore::ProfileAdapter::PermissionType permission, const QUrl &securityOrigin) override;
void renderProcessTerminated(RenderProcessTerminationStatus terminationStatus, int exitCode) override;
void requestGeometryChange(const QRect &geometry, const QRect &frameGeometry) override;
void updateScrollPosition(const QPointF &position) override;