From 69d8370f5440854c23d20648c9d35096c12426fe Mon Sep 17 00:00:00 2001
From: Peter Varga <pvarga@inf.u-szeged.hu>
Date: Wed, 10 Oct 2018 16:34:38 +0200
Subject: [PATCH] Avoid chromium assert in desktop capture tests
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

The page need to be visible to use desktop capture.

Task-number: QTBUG-71005
Change-Id: Icf19b68fb9132e528d206ac45245121beb31a1ac
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
---
 .../qwebenginepage/tst_qwebenginepage.cpp     | 20 +++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index cb6e9e405..8ec89a7fa 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -2484,6 +2484,18 @@ void tst_QWebEnginePage::getUserMediaRequestDesktopVideoManyPages()
     const QString constraints = QStringLiteral("{video: { mandatory: { chromeMediaSource: 'desktop' }}}");
     const QWebEnginePage::Feature feature = QWebEnginePage::DesktopVideoCapture;
     std::vector<GetUserMediaTestPage> pages(10);
+
+    // Desktop capture needs to be on a desktop
+    std::vector<QWebEngineView> views(10);
+    for (size_t i = 0; i < views.size(); ++i) {
+        QWebEngineView *view = &(views[i]);
+        GetUserMediaTestPage *page = &(pages[i]);
+        view->setPage(page);
+        view->resize(640, 480);
+        view->show();
+        QVERIFY(QTest::qWaitForWindowExposed(view));
+    }
+
     for (GetUserMediaTestPage &page : pages)
         QTRY_VERIFY_WITH_TIMEOUT(page.loadSucceeded(), 20000);
     for (GetUserMediaTestPage &page : pages)
@@ -2505,6 +2517,14 @@ void tst_QWebEnginePage::getUserMediaRequestDesktopVideoManyRequests()
     const QString constraints = QStringLiteral("{video: { mandatory: { chromeMediaSource: 'desktop' }}}");
     const QWebEnginePage::Feature feature = QWebEnginePage::DesktopVideoCapture;
     GetUserMediaTestPage page;
+
+    // Desktop capture needs to be on a desktop
+    QWebEngineView view;
+    view.setPage(&page);
+    view.resize(640, 480);
+    view.show();
+    QVERIFY(QTest::qWaitForWindowExposed(&view));
+
     QTRY_VERIFY_WITH_TIMEOUT(page.loadSucceeded(), 20000);
     page.settings()->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, true);
     for (int i = 0; i != 100; ++i) {
-- 
GitLab