From d62cb919722f0baad4d0826e566b9a63f7fc7488 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Thu, 2 Aug 2018 09:55:22 +0200 Subject: Fix failing mouseMovementProperties auto test on Windows and macOS The view did not get all the movement events if the mouse was moved onto the view after it had loaded the page. Fix this by placing the mouse onto the view before setting the html content. Task-number: QTBUG-66527 Change-Id: I6d6847d5215005fe9490250b5b4f0c01ce317c23 Reviewed-by: Alexandru Croitor --- tests/auto/widgets/qwebenginepage/BLACKLIST | 5 ----- tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) (limited to 'tests/auto/widgets/qwebenginepage') diff --git a/tests/auto/widgets/qwebenginepage/BLACKLIST b/tests/auto/widgets/qwebenginepage/BLACKLIST index 50f275eb4..04a151b53 100644 --- a/tests/auto/widgets/qwebenginepage/BLACKLIST +++ b/tests/auto/widgets/qwebenginepage/BLACKLIST @@ -6,8 +6,3 @@ [macCopyUnicodeToClipboard] osx - -[mouseMovementProperties] -windows -osx-10.11 -osx-10.12 diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index ee2c36012..47a94374a 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -4081,6 +4081,7 @@ void tst_QWebEnginePage::mouseMovementProperties() ConsolePage page; view.setPage(&page); view.resize(640, 480); + QTest::mouseMove(&view, QPoint(10, 10)); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); -- cgit v1.2.3 From 410c22978c2add5f9427af08d97356d6e959e412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCri=20Valdmann?= Date: Tue, 7 Aug 2018 09:15:53 +0200 Subject: MediaCaptureDevicesDispatcher: Disable getDefaultScreenId on X11 Not needed and triggers race condition. Task-number: QTBUG-69007 Change-Id: Id57ba527387e5dbe44a8dd6c5a49e7278403ce64 Reviewed-by: Michal Klocek --- .../widgets/qwebenginepage/tst_qwebenginepage.cpp | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'tests/auto/widgets/qwebenginepage') diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 47a94374a..7bdad1bda 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -125,6 +125,8 @@ private Q_SLOTS: void getUserMediaRequest(); void getUserMediaRequestDesktopAudio(); void getUserMediaRequestSettingDisabled(); + void getUserMediaRequestDesktopVideoManyPages(); + void getUserMediaRequestDesktopVideoManyRequests(); void savePage(); void crashTests_LazyInitializationOfMainFrame(); @@ -2447,6 +2449,44 @@ void tst_QWebEnginePage::getUserMediaRequestSettingDisabled() QTRY_VERIFY(!page.jsPromiseFulfilled() && page.jsPromiseRejected()); } +// Try to trigger any possible race condition between the UI thread (permission +// management) and the audio/device thread (desktop capture initialization). +void tst_QWebEnginePage::getUserMediaRequestDesktopVideoManyPages() +{ + const QString constraints = QStringLiteral("{video: { mandatory: { chromeMediaSource: 'desktop' }}}"); + const QWebEnginePage::Feature feature = QWebEnginePage::DesktopVideoCapture; + std::vector pages(10); + for (GetUserMediaTestPage &page : pages) + QTRY_VERIFY_WITH_TIMEOUT(page.loadSucceeded(), 20000); + for (GetUserMediaTestPage &page : pages) + page.settings()->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, true); + for (GetUserMediaTestPage &page : pages) + page.jsGetUserMedia(constraints); + for (GetUserMediaTestPage &page : pages) + QTRY_VERIFY(page.gotFeatureRequest(feature)); + for (GetUserMediaTestPage &page : pages) + page.acceptPendingRequest(); + for (GetUserMediaTestPage &page : pages) + QTRY_VERIFY(page.jsPromiseFulfilled() || page.jsPromiseRejected()); +} + +// Try to trigger any possible race condition between the UI or audio/device +// threads and the desktop capture thread, where the capture actually happens. +void tst_QWebEnginePage::getUserMediaRequestDesktopVideoManyRequests() +{ + const QString constraints = QStringLiteral("{video: { mandatory: { chromeMediaSource: 'desktop' }}}"); + const QWebEnginePage::Feature feature = QWebEnginePage::DesktopVideoCapture; + GetUserMediaTestPage page; + QTRY_VERIFY_WITH_TIMEOUT(page.loadSucceeded(), 20000); + page.settings()->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, true); + for (int i = 0; i != 100; ++i) { + page.jsGetUserMedia(constraints); + QTRY_VERIFY(page.gotFeatureRequest(feature)); + page.acceptPendingRequest(); + QTRY_VERIFY(page.jsPromiseFulfilled() || page.jsPromiseRejected()); + } +} + void tst_QWebEnginePage::savePage() { QWebEngineView view; -- cgit v1.2.3 From 5fdc38a3c1f059755e362feac612a465e9becde3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Wed, 15 Aug 2018 11:31:57 +0200 Subject: [Windows] Reblacklist flaky mouseMovementProperties auto test Although the test should have been fixed by the change and did succeed during local tests and CI runs, it still fails on the CI. This prevents a merge to dev. Partially reverts commit: d62cb919722f0baad4d0826e566b9a63f7fc7488 Task-number: QTBUG-66527 Change-Id: I1571c918034d84bd969ca0d401d4cfb17a10fd68 Reviewed-by: Kai Koehne --- tests/auto/widgets/qwebenginepage/BLACKLIST | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tests/auto/widgets/qwebenginepage') diff --git a/tests/auto/widgets/qwebenginepage/BLACKLIST b/tests/auto/widgets/qwebenginepage/BLACKLIST index 04a151b53..9c7572b40 100644 --- a/tests/auto/widgets/qwebenginepage/BLACKLIST +++ b/tests/auto/widgets/qwebenginepage/BLACKLIST @@ -6,3 +6,6 @@ [macCopyUnicodeToClipboard] osx + +[mouseMovementProperties] +windows -- cgit v1.2.3