diff options
3 files changed, 28 insertions, 4 deletions
diff --git a/examples/webenginequick/quicknanobrowser/BrowserWindow.qml b/examples/webenginequick/quicknanobrowser/BrowserWindow.qml index a6cdc9012..968456556 100644 --- a/examples/webenginequick/quicknanobrowser/BrowserWindow.qml +++ b/examples/webenginequick/quicknanobrowser/BrowserWindow.qml @@ -49,6 +49,8 @@ ApplicationWindow { property alias devToolsEnabled: devToolsEnabled.checked property alias pdfViewerEnabled: pdfViewerEnabled.checked property int imageAnimationPolicy: WebEngineSettings.ImageAnimationPolicy.Allow + property alias javascriptCanAccessClipboard: javascriptCanAccessClipboard.checked + property alias javascriptCanPaste: javascriptCanPaste.checked } Action { @@ -380,7 +382,6 @@ ApplicationWindow { checkable: true checked: WebEngine.settings.pdfViewerEnabled } - Menu { id: imageAnimationPolicy title: "Image Animation Policy" @@ -419,6 +420,18 @@ ApplicationWindow { } } + MenuItem { + id: javascriptCanAccessClipboard + text: "JavaScript can access clipboard" + checkable: true + checked: WebEngine.settings.javascriptCanAccessClipboard + } + MenuItem { + id: javascriptCanPaste + text: "JavaScript can paste" + checkable: true + checked: WebEngine.settings.javascriptCanPaste + } } } } @@ -581,6 +594,8 @@ ApplicationWindow { settings.pdfViewerEnabled: appSettings.pdfViewerEnabled settings.imageAnimationPolicy: appSettings.imageAnimationPolicy settings.screenCaptureEnabled: true + settings.javascriptCanAccessClipboard: appSettings.javascriptCanAccessClipboard + settings.javascriptCanPaste: appSettings.javascriptCanPaste onWindowCloseRequested: function() { tabBar.removeView(webEngineView.index); diff --git a/src/webenginequick/api/qquickwebengineforeigntypes_p.h b/src/webenginequick/api/qquickwebengineforeigntypes_p.h index 58e9a5561..72f6d05d6 100644 --- a/src/webenginequick/api/qquickwebengineforeigntypes_p.h +++ b/src/webenginequick/api/qquickwebengineforeigntypes_p.h @@ -33,6 +33,7 @@ #include <QtWebEngineCore/qwebenginefilesystemaccessrequest.h> #include <QtWebEngineCore/qwebenginewebauthuxrequest.h> #include <QtWebEngineCore/qwebenginepermission.h> +#include <QtWebEngineCore/qwebenginedesktopmediarequest.h> QT_BEGIN_NAMESPACE @@ -265,6 +266,14 @@ struct ForeignWebEnginePermission QML_UNCREATABLE("") }; +struct ForeignWebEngineDesktopMediaRequest +{ + Q_GADGET + QML_FOREIGN(QWebEngineDesktopMediaRequest) + QML_ANONYMOUS + QML_ADDED_IN_VERSION(6, 10) +}; + QT_END_NAMESPACE #endif // QQUICKWEBENGINEFOREIGNTYPES_H diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index e76a28aa7..7551230e5 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -1171,7 +1171,7 @@ void tst_QWebEngineView::focusOnNavigation() #define triggerJavascriptFocus()\ evaluateJavaScriptSync(webView->page(), "document.getElementById(\"input\").focus()"); #define loadAndTriggerFocusAndCompare()\ - QTRY_COMPARE(loadSpy.count(), 1);\ + QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 1, 10000);\ triggerJavascriptFocus();\ QTRY_COMPARE(webView->hasFocus(), viewReceivedFocus); @@ -1230,7 +1230,7 @@ void tst_QWebEngineView::focusOnNavigation() // Manually forcing focus on web view should work. webView->setFocus(); - QTRY_COMPARE(webView->hasFocus(), true); + QTRY_COMPARE_WITH_TIMEOUT(webView->hasFocus(), true, 10000); // Clean up. @@ -1460,7 +1460,7 @@ void tst_QWebEngineView::inputMethodsTextFormat() page.setHtml("<html><body>" " <input type='text' id='input1' style='font-family: serif' value='' maxlength='20'/>" "</body></html>"); - QTRY_COMPARE(loadFinishedSpy.size(), 1); + QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpy.size(), 1, 10000); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); |