summaryrefslogtreecommitdiffstats
path: root/src/webenginequick/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginequick/api')
-rw-r--r--src/webenginequick/api/qquickwebengineforeigntypes_p.h24
-rw-r--r--src/webenginequick/api/qquickwebengineprofile.cpp2
-rw-r--r--src/webenginequick/api/qquickwebengineprofile.h2
-rw-r--r--src/webenginequick/api/qquickwebenginescriptcollection.cpp18
-rw-r--r--src/webenginequick/api/qquickwebengineview.cpp82
-rw-r--r--src/webenginequick/api/qquickwebengineview_p_p.h6
6 files changed, 55 insertions, 79 deletions
diff --git a/src/webenginequick/api/qquickwebengineforeigntypes_p.h b/src/webenginequick/api/qquickwebengineforeigntypes_p.h
index be10af081..c2892d33c 100644
--- a/src/webenginequick/api/qquickwebengineforeigntypes_p.h
+++ b/src/webenginequick/api/qquickwebengineforeigntypes_p.h
@@ -36,6 +36,11 @@
#include <QtWebEngineCore/qwebenginedesktopmediarequest.h>
#include <QtWebEngineCore/qwebengineclienthints.h>
+#if QT_CONFIG(webengine_extensions)
+#include <QtWebEngineCore/qwebengineextensioninfo.h>
+#include <QtWebEngineCore/qwebengineextensionmanager.h>
+#endif
+
QT_BEGIN_NAMESPACE
// To prevent the same type from being exported twice into qmltypes
@@ -284,6 +289,25 @@ struct ForeignWebEngineClientHints : public QObject
QML_UNCREATABLE("")
};
+#if QT_CONFIG(webengine_extensions)
+struct ForeignWebEngineExtensionInfo
+{
+ Q_GADGET
+ QML_VALUE_TYPE(webEngineExtension)
+ QML_FOREIGN(QWebEngineExtensionInfo)
+ QML_ADDED_IN_VERSION(6, 10)
+};
+
+struct ForeignWebEngineExtensionManager
+{
+ Q_GADGET
+ QML_NAMED_ELEMENT(WebEngineExtensionManager)
+ QML_FOREIGN(QWebEngineExtensionManager)
+ QML_ADDED_IN_VERSION(6, 10)
+ QML_UNCREATABLE("")
+};
+#endif
+
QT_END_NAMESPACE
#endif // QQUICKWEBENGINEFOREIGNTYPES_H
diff --git a/src/webenginequick/api/qquickwebengineprofile.cpp b/src/webenginequick/api/qquickwebengineprofile.cpp
index dce3c8822..80e4ec5ac 100644
--- a/src/webenginequick/api/qquickwebengineprofile.cpp
+++ b/src/webenginequick/api/qquickwebengineprofile.cpp
@@ -1229,7 +1229,7 @@ QWebEnginePermission QQuickWebEngineProfile::queryPermission(const QUrl &securit
return QWebEnginePermission(new QWebEnginePermissionPrivate());
}
- auto *pvt = new QWebEnginePermissionPrivate(securityOrigin, permissionType, nullptr, d->profileAdapter());
+ auto *pvt = new QWebEnginePermissionPrivate(securityOrigin, permissionType, d->profileAdapter());
return QWebEnginePermission(pvt);
}
diff --git a/src/webenginequick/api/qquickwebengineprofile.h b/src/webenginequick/api/qquickwebengineprofile.h
index 899d431a1..0995538be 100644
--- a/src/webenginequick/api/qquickwebengineprofile.h
+++ b/src/webenginequick/api/qquickwebengineprofile.h
@@ -44,7 +44,7 @@ class Q_WEBENGINEQUICK_EXPORT QQuickWebEngineProfile : public QObject {
Q_PROPERTY(bool isPushServiceEnabled READ isPushServiceEnabled WRITE setPushServiceEnabled NOTIFY pushServiceEnabledChanged FINAL REVISION(6,5))
Q_PROPERTY(QWebEngineClientHints *clientHints READ clientHints FINAL REVISION(6,8))
#if QT_CONFIG(webengine_extensions)
- Q_PROPERTY(QWebEngineExtensionManager *extensionManager READ extensionManager REVISION(6, 10))
+ Q_PROPERTY(QWebEngineExtensionManager *extensionManager READ extensionManager CONSTANT REVISION(6, 10))
#endif
QML_NAMED_ELEMENT(WebEngineProfile)
QML_ADDED_IN_VERSION(1, 1)
diff --git a/src/webenginequick/api/qquickwebenginescriptcollection.cpp b/src/webenginequick/api/qquickwebenginescriptcollection.cpp
index 09a8d181e..546633fb1 100644
--- a/src/webenginequick/api/qquickwebenginescriptcollection.cpp
+++ b/src/webenginequick/api/qquickwebenginescriptcollection.cpp
@@ -59,7 +59,7 @@
webEngineView.userScripts.insert(list)
\endcode
\endlist
- \sa WebEngineScript WebEngineScriptCollection
+ \sa webEngineScript WebEngineScriptCollection
*/
@@ -115,7 +115,7 @@ QQuickWebEngineScriptCollection::QQuickWebEngineScriptCollection(QQuickWebEngine
QQuickWebEngineScriptCollection::~QQuickWebEngineScriptCollection() { }
/*!
- \qmlmethod bool WebEngineScriptCollection::contains(WebEngineScript script)
+ \qmlmethod bool WebEngineScriptCollection::contains(webEngineScript script)
\since QtWebEngine 6.2
Returns \c true if the specified \a script is in the collection, \c false
otherwise.
@@ -128,7 +128,7 @@ bool QQuickWebEngineScriptCollection::contains(const QWebEngineScript &value) co
}
/*!
- \qmlmethod list<WebEngineScript> WebEngineScriptCollection::find(string name)
+ \qmlmethod list<webEngineScript> WebEngineScriptCollection::find(string name)
\since QtWebEngine 6.2
Returns a list of all user script objects with the given \a name.
\sa contains()
@@ -139,7 +139,7 @@ QList<QWebEngineScript> QQuickWebEngineScriptCollection::find(const QString &nam
}
/*!
- \qmlmethod void WebEngineScriptCollection::insert(WebEngineScript script)
+ \qmlmethod void WebEngineScriptCollection::insert(webEngineScript script)
\since QtWebEngine 6.2
Inserts a single \a script into the collection.
\sa remove()
@@ -150,9 +150,9 @@ void QQuickWebEngineScriptCollection::insert(const QWebEngineScript &s)
}
/*!
- \qmlmethod void WebEngineScriptCollection::insert(list<WebEngineScript> list)
+ \qmlmethod void WebEngineScriptCollection::insert(list<webEngineScript> list)
\since QtWebEngine 6.2
- Inserts a \a list of WebEngineScript values into the user script collection.
+ Inserts a \a list of webEngineScript values into the user script collection.
\sa remove()
*/
void QQuickWebEngineScriptCollection::insert(const QList<QWebEngineScript> &list)
@@ -161,7 +161,7 @@ void QQuickWebEngineScriptCollection::insert(const QList<QWebEngineScript> &list
}
/*!
- \qmlmethod bool WebEngineScriptCollection::remove(WebEngineScript script)
+ \qmlmethod bool WebEngineScriptCollection::remove(webEngineScript script)
\since QtWebEngine 6.2
Returns \c true if a given \a script is removed from the collection.
\sa insert()
@@ -182,11 +182,11 @@ void QQuickWebEngineScriptCollection::clear()
}
/*!
- \qmlproperty list<WebEngineScript> WebEngineScriptCollection::collection
+ \qmlproperty list<webEngineScript> WebEngineScriptCollection::collection
\since QtWebEngine 6.2
This property holds a JavaScript array of user script objects. The array can
- take WebEngineScript basic type or a JavaScript dictionary as values.
+ take webEngineScript basic type or a JavaScript dictionary as values.
*/
QJSValue QQuickWebEngineScriptCollection::collection() const
{
diff --git a/src/webenginequick/api/qquickwebengineview.cpp b/src/webenginequick/api/qquickwebengineview.cpp
index ade8b451c..619cbaef6 100644
--- a/src/webenginequick/api/qquickwebengineview.cpp
+++ b/src/webenginequick/api/qquickwebengineview.cpp
@@ -521,22 +521,30 @@ static QQuickWebEngineView::Feature toDeprecatedFeature(QWebEnginePermission::Pe
QT_WARNING_POP
#endif // QT_DEPRECATED_SINCE(6, 8)
-void QQuickWebEngineViewPrivate::runFeaturePermissionRequest(QWebEnginePermission::PermissionType permissionType, const QUrl &securityOrigin)
+void QQuickWebEngineViewPrivate::runFeaturePermissionRequest(
+ QWebEnginePermission::PermissionType permissionType,
+ const QUrl &securityOrigin,
+ int childId, const std::string &serializedToken)
{
Q_Q(QQuickWebEngineView);
- if (QWebEnginePermission::isPersistent(permissionType)) {
- Q_EMIT q->permissionRequested(createFeaturePermissionObject(securityOrigin, permissionType));
-#if QT_DEPRECATED_SINCE(6, 8)
- QT_WARNING_PUSH
- QT_WARNING_DISABLE_DEPRECATED
- Q_EMIT q->featurePermissionRequested(securityOrigin, toDeprecatedFeature(permissionType));
- QT_WARNING_POP
-#endif // QT_DEPRECATED_SINCE(6, 8)
+ if (permissionType == QWebEnginePermission::PermissionType::MouseLock) {
+ // Not supported in Qt Quick
+ auto permission = QWebEnginePermission(
+ new QWebEnginePermissionPrivate(securityOrigin, permissionType, profileAdapter(), childId, serializedToken));
+ permission.deny();
return;
}
- Q_UNREACHABLE();
+ Q_EMIT q->permissionRequested(QWebEnginePermission(
+ new QWebEnginePermissionPrivate(securityOrigin, permissionType, profileAdapter(), childId, serializedToken)));
+#if QT_DEPRECATED_SINCE(6, 8)
+ QT_WARNING_PUSH
+ QT_WARNING_DISABLE_DEPRECATED
+ Q_EMIT q->featurePermissionRequested(securityOrigin, toDeprecatedFeature(permissionType));
+ QT_WARNING_POP
+#endif // QT_DEPRECATED_SINCE(6, 8)
+ return;
}
void QQuickWebEngineViewPrivate::showColorDialog(QSharedPointer<ColorChooserController> controller)
@@ -809,54 +817,6 @@ void QQuickWebEngineViewPrivate::authenticationRequired(QSharedPointer<Authentic
ui()->showDialog(controller);
}
-void QQuickWebEngineViewPrivate::runMediaAccessPermissionRequest(const QUrl &securityOrigin, WebContentsAdapterClient::MediaRequestFlags requestFlags)
-{
- Q_Q(QQuickWebEngineView);
- if (!requestFlags)
- return;
- QWebEnginePermission::PermissionType permissionType;
- if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture) && requestFlags.testFlag(WebContentsAdapterClient::MediaVideoCapture))
- permissionType = QWebEnginePermission::PermissionType::MediaAudioVideoCapture;
- else if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture))
- permissionType = QWebEnginePermission::PermissionType::MediaAudioCapture;
- else if (requestFlags.testFlag(WebContentsAdapterClient::MediaVideoCapture))
- permissionType = QWebEnginePermission::PermissionType::MediaVideoCapture;
- else if (requestFlags.testFlag(WebContentsAdapterClient::MediaDesktopAudioCapture) &&
- requestFlags.testFlag(WebContentsAdapterClient::MediaDesktopVideoCapture))
- permissionType = QWebEnginePermission::PermissionType::DesktopAudioVideoCapture;
- else // if (requestFlags.testFlag(WebContentsAdapterClient::MediaDesktopVideoCapture))
- permissionType = QWebEnginePermission::PermissionType::DesktopVideoCapture;
- Q_EMIT q->permissionRequested(createFeaturePermissionObject(securityOrigin, permissionType));
-
-#if QT_DEPRECATED_SINCE(6, 8)
- QT_WARNING_PUSH
- QT_WARNING_DISABLE_DEPRECATED
- QQuickWebEngineView::Feature deprecatedFeature;
-
- if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture)
- && requestFlags.testFlag(WebContentsAdapterClient::MediaVideoCapture))
- deprecatedFeature = QQuickWebEngineView::MediaAudioVideoCapture;
- else if (requestFlags.testFlag(WebContentsAdapterClient::MediaAudioCapture))
- deprecatedFeature = QQuickWebEngineView::MediaAudioCapture;
- else if (requestFlags.testFlag(WebContentsAdapterClient::MediaVideoCapture))
- deprecatedFeature = QQuickWebEngineView::MediaVideoCapture;
- else if (requestFlags.testFlag(WebContentsAdapterClient::MediaDesktopAudioCapture)
- && requestFlags.testFlag(WebContentsAdapterClient::MediaDesktopVideoCapture))
- deprecatedFeature = QQuickWebEngineView::DesktopAudioVideoCapture;
- else // if (requestFlags.testFlag(WebContentsAdapterClient::MediaDesktopVideoCapture))
- deprecatedFeature = QQuickWebEngineView::DesktopVideoCapture;
-
- Q_EMIT q->featurePermissionRequested(securityOrigin, deprecatedFeature);
- QT_WARNING_POP
-#endif // QT_DEPRECATED_SINCE(6, 8)
-}
-
-void QQuickWebEngineViewPrivate::runMouseLockPermissionRequest(const QUrl &securityOrigin)
-{
- // TODO: Add mouse lock support
- adapter->grantMouseLockPermission(securityOrigin, false);
-}
-
void QQuickWebEngineViewPrivate::runRegisterProtocolHandlerRequest(QWebEngineRegisterProtocolHandlerRequest request)
{
Q_Q(QQuickWebEngineView);
@@ -1523,12 +1483,6 @@ void QQuickWebEngineViewPrivate::showWebAuthDialog(QWebEngineWebAuthUxRequest *r
Q_EMIT q->webAuthUxRequested(request);
}
-QWebEnginePermission QQuickWebEngineViewPrivate::createFeaturePermissionObject(const QUrl &securityOrigin, QWebEnginePermission::PermissionType permissionType)
-{
- auto *returnPrivate = new QWebEnginePermissionPrivate(securityOrigin, permissionType, adapter, profileAdapter());
- return QWebEnginePermission(returnPrivate);
-}
-
bool QQuickWebEngineView::isLoading() const
{
Q_D(const QQuickWebEngineView);
diff --git a/src/webenginequick/api/qquickwebengineview_p_p.h b/src/webenginequick/api/qquickwebengineview_p_p.h
index d78157597..8fe98145b 100644
--- a/src/webenginequick/api/qquickwebengineview_p_p.h
+++ b/src/webenginequick/api/qquickwebengineview_p_p.h
@@ -105,8 +105,6 @@ public:
bool passOnFocus(bool reverse) override;
void javaScriptConsoleMessage(JavaScriptConsoleMessageLevel level, const QString& message, int lineNumber, const QString& sourceID) override;
void authenticationRequired(QSharedPointer<QtWebEngineCore::AuthenticationDialogController>) override;
- void runMediaAccessPermissionRequest(const QUrl &securityOrigin, MediaRequestFlags requestFlags) override;
- void runMouseLockPermissionRequest(const QUrl &securityOrigin) override;
void runRegisterProtocolHandlerRequest(QWebEngineRegisterProtocolHandlerRequest) override;
void runFileSystemAccessRequest(QWebEngineFileSystemAccessRequest) override;
QObject *accessibilityParentObject() override;
@@ -114,7 +112,8 @@ public:
void allowCertificateError(const QWebEngineCertificateError &error) override;
void selectClientCert(const QSharedPointer<QtWebEngineCore::ClientCertSelectController>
&selectController) override;
- void runFeaturePermissionRequest(QWebEnginePermission::PermissionType permissionType, const QUrl &securityOrigin) override;
+ void runFeaturePermissionRequest(QWebEnginePermission::PermissionType permissionType, const QUrl &securityOrigin,
+ int childId, const std::string &serializedToken) override;
void renderProcessTerminated(RenderProcessTerminationStatus terminationStatus, int exitCode) override;
void requestGeometryChange(const QRect &geometry, const QRect &frameGeometry) override;
void updateScrollPosition(const QPointF &position) override;
@@ -139,7 +138,6 @@ public:
const QRect &bounds, bool autoselectFirstSuggestion) override;
void hideAutofillPopup() override;
void showWebAuthDialog(QWebEngineWebAuthUxRequest *request) override;
- QWebEnginePermission createFeaturePermissionObject(const QUrl &securityOrigin, QWebEnginePermission::PermissionType permissionType) override;
void updateAction(QQuickWebEngineView::WebAction) const;
bool adoptWebContents(QtWebEngineCore::WebContentsAdapter *webContents);