summaryrefslogtreecommitdiffstats
path: root/src/core
Commit message (Collapse)AuthorAgeFilesLines
* macOS GN integrationAlexandru Croitor2017-01-278-76/+128
| | | | | Change-Id: I89850d43c8f11ec54b3a47318ef0b3f083ae3dee Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* GN configuration cleanup and preparationAllan Sandfeld Jensen2017-01-263-14/+49
| | | | | | | | Reintroduces the shared linux.pri configuration and moves configuration shared by all architectures to common.pri Change-Id: Iff4d1e6e3d98280223cce0c2c0b74d71ef99df5f Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.8' into dev" into refs/staging/devLiang Qi2017-01-257-21/+32
|\
| * Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-257-21/+32
| |\ | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp Change-Id: I070173576fc4be53689ce0dd9e1fd4133f5814da
| | * Fix handling of empty input method eventsPeter Varga2017-01-221-1/+4
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-55766 Change-Id: I4e6ade8f000f66ff1bb28f3b856ae140834292f1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * Make input method hints available via RWHV delegate widgetPeter Varga2017-01-202-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Moreover, set ImHiddenText hint for password fields and add back the corresponding widget auto test. Task-number: QTBUG-55766 Change-Id: I3f76e19c8c33e11f3d9f515b6dc7d6e998c3c9a4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * Disable Q_ASSERTs for a release buildKai Koehne2017-01-181-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt WebEngine uses the core_gyp_generator.pro and the gyp_generator.prf files to extract defines set by Qt. Anyhow, only one core_generated.gyp file is written for debug and release builds, which hence misses the QT_NO_DEBUG define specific to debug builds. Work around this by explicitly adding back the define. Task-number: QTBUG-58103 Change-Id: I8684aa08417efc93878d70817211e9f66623c78c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * Fix conversion from blink::WebDragOperation to Qt::DropActionJoerg Bornemann2017-01-184-19/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | blink::WebDragOperation is a bit field, even if it is not used in its blink::WebDragOperationsMask incarnation. In particular, WebDragOperationGeneric can be set in addition to other operations. This fixes situations where UpdateDragCursor is called with multiple bits set in its WebDragOperationArgument and the drag action will be spuriously ignored. Also directly pass the WebDragOperation we get from UpdateDragCursor to chromium's API without converting to QDropAction and then converting it back. Task-number: QTBUG-58037 Change-Id: I5c85699de534771f84db69abf7b98e779872a0f7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Add gn build of qtwebengine for linuxMichal Klocek2017-01-259-96/+468
|/ / | | | | | | | | | | | | | | | | | | | | This commit uses gn instead of gyp to build on desktop linux. Use WEBENGINE_CONFIG+=use_gn to use gn during the build instead of gyp. Change-Id: Ifd3d8d0835b47c323a8d39c320eb55e5e1024dee Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.8' into devAllan Sandfeld Jensen2017-01-186-10/+30
|\| | | | | | | Change-Id: If16bfc6f0fbfd0040e13a8a3cbaa113fda10f387
| * QWebEngineDownloadItem::path() should not be percentage encodedAllan Sandfeld Jensen2017-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the name of the download item is derived from the URL, we currently end up reporting a partially percentage encoded name. This is problematic if our users try to undo the the percentage encoding and opens them out to download-folder escaping files that can install hooks in the user's home directory. [ChangeLog][DownloadItem] (QWebEngine)DownloadItem::path() was previously incorrectly returning percentage encoded file-names when the suggested path was based on URL. This has been corrected. Note percentage decoding the path generally before is not just incorrect when the path is not based on URL, but also dangerous as it can lead to downloads that escape the download folder. Task-number: QTBUG-58155 Change-Id: Ie23a4ff5d4e4c353df72e617bb2b00e1935cd6c1 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Avoid overriding new and deleteAllan Sandfeld Jensen2017-01-061-1/+3
| | | | | | | | | | | | | | | | As a minimum this produces valgrind warnings of mismatched new and delete. No runtime issues have been observed outside of valgrind though. Change-Id: I5ebb6b380f25f117434633e55dd7fdf04260f0bc Reviewed-by: David Faure <david.faure@kdab.com>
| * Replace ASSERT in FaviconManager::setIcon by returnViktor Engelmann2017-01-051-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The ASSERT in FaviconManager::setIcon can be triggered by what seems to be a race condition. Apparently the old request can be gone (so m_inProgressRequests.contains(id) is false), but m_inProgressRequests can still be non-empty, because of a new request to the same URL, so this case is not covered by checking m_inProgressRequests.isEmpty() before. Task-number: QTBUG-57900 Change-Id: I2f26c05e5c97e4bd8d1cea03e8005cf61f2b0c98 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
| * Check RWHV for NULL before dereferencing itViktor Engelmann2017-01-031-2/+5
| | | | | | | | | | | | | | | | | | | | | | Under exotic circumstances, the RenderWidgetHostView pointer returned by m_webContents->GetRenderWidgetHostView() can be NULL. Therefore, it must be tested for NULL, before its SetBackgroundColor method is called. Task-number: QTBUG-57826 Change-Id: I30e0d2174e80d7971f4e2b6f315a771dc1577814 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Prevent accessing d when view closed during DnD operationViktor Engelmann2017-01-021-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When a WebEngineView is closed while a Drag-n-Drop operation is in progress, the this pointer and its d-pointer become invalid, so the accesses after drag->exec must be prevented from being executed. To achieve this, a lambda function is connected to dragSources &QObject::destroyed signal, which invalidates a bool on the stack (and cancels the Drag-n-Drop operation). Task-number: QTBUG-57713 Change-Id: I9cbb5e6aba99e307d62773bc18f4fec5f79cf703 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * Enable viewport-meta setting againAllan Sandfeld Jensen2016-12-291-0/+5
| | | | | | | | | | | | | | | | | | | | We enabled this using a command-line argument in 5.6, but that argument is no longer available in 5.7, so instead set it to match viewport enabled. Task-number: QTBUG-57206 Change-Id: Ibef9e93bc96f74429870fdb340d6ea0c0030159c Reviewed-by: Jocelyn Turcotte (Woboq GmbH) <jturcotte@woboq.com>
* | Add pepper-plugins feature to new configure systemMichal Klocek2017-01-166-17/+25
| | | | | | | | | | | | | | | | Task-number: QTBUG-57731 Task-number: QTBUG-58108 Change-Id: I253dab52361afd411dcf545fab752836c19ee3c7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Add print and pdf feature to new configure systemMichal Klocek2017-01-168-31/+36
| | | | | | | | | | | | | | | | | | | | | | | | Currently printing and pdf are bounded together. Make compilation optional by adding it as a feature. Fix formatting of embedded_linux.pri Task-number: QTBUG-57731 Task-number: QTBUG-58108 Change-Id: I53a2baea656df0a5b6139365ed06385c9ebc5830 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Add methods for textual description of DownloadInterruptReasonViktor Engelmann2017-01-124-38/+180
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A method was added to get a textual description of a Q(Quick)WebEngineDownloadItem::DownloadInterruptReason. Basically returns the same description from the QDoc entry, but shortened where that was to long. Also moved the ASSERT_ENUMS_MATCHes from download_manager_delegate_qt.cpp to the newly created browser_context_adapter_client.cpp. Task-number: QTBUG-56839 Change-Id: I17c68987b7f12fcaeb71fd27f7ebb35c0ac87bac Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Add methods to issue various types of HTTP requestsViktor Engelmann2017-01-115-6/+575
| | | | | | | | | | | | | | | | | | | | | | | | | | Added class QWebEngineHttpRequest, which describes a GET or POST HTTP Request. Also added overloads of method "load" to QWebEngineView, QWebEnginePage and WebContentsAdapter, which issue such a request. These can be used for example to simulate form-submissions. Task-number: QTBUG-53314 Task-number: QTBUG-53372 Change-Id: I85ac8cdd3d1557905b35e3172b922aba356d1c41 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Optimize scene graph rendering by reusing old nodes if possibleMichael Brüning2017-01-113-98/+438
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, Qt WebEngine always dropped all existing scene graph nodes that were created for previous frames and built up a whole new tree. The main reason for this was that the render pass structure is not guaranteed to remain the same across two frames. This resulted in a full repaint of every new frame, even if only a small area had changed. We now check first if the structure of the frame data has changed across two sequential frames. We only discard the old nodes if there actually has been a change. Otherwise, we reuse the scene graph nodes and only update the nodes that have changed. A general exception to this at the moment is video. In case any streaming video or yuv video nodes are found in the render pass, all nodes get recreated. Task-number: QTBUG-57720 Change-Id: I8998577af48a163d54144f205c316ee427ed0307 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Emit a new signal when printing to a PDF file finishesMichael Brüning2017-01-104-29/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Important Changes] Printing to a PDF file will now emit signal the signal pdfPrintingFinished in both QQuickWebEngineView and QWebEnginePage. The boolean passed with the signal to indicate if the printing and saving of the PDF was successful. The path of the created file is also passed to enable the user to map the signal to a print request. Task-number: QTBUG-56677 Change-Id: Ifab5a20b048f33a8cd872165bd4d453b01708037 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Merge branch '5.8' into devAllan Sandfeld Jensen2016-12-216-13/+49
|\| | | | | | | | | | | | | Conflicts: configure.json Change-Id: I658a02de96b45b382f0f6c383964501b794b5eb6
| * Warn on wayland if compiled with x11 support, however no xwaylandMichal Klocek2016-12-201-0/+7
| | | | | | | | | | | | | | | | Add a warning message for builds with aura and x11, when run on wayland wihout xwayland support. This will be fixed properly in 55-based. Change-Id: I7482c7989087b5702634aff5d43409ae8728cd94 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Fix compilation, add getApplicationLocale() method implementationMichal Klocek2016-12-201-1/+9
| | | | | | | | | | | | | | | | This is workaround to not include web_engine_library_info.h for qtwebengine_sources. Change-Id: Idbc86e8e5281a514199ebcd80af045e11f554362 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Merge remote-tracking branch 'origin/5.8.0' into 5.8Liang Qi2016-12-154-12/+33
| |\ | | | | | | | | | Change-Id: I1f2068d52104764a1ac75354cbe7d90f6293ec7d
| | * Fix Linux audio library detectionAllan Sandfeld Jensen2016-12-151-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | The configure checks where moved to QtMultimedia which we do not depend on, therefore we need to now duplicate the checks ourselves. Task-number: QTBUG-57620 Change-Id: I6f7319c7e91e3f51baf012c669121389cd6e1360 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
| | * Use surfaceless context if necessaryAkihiko Odaki2016-12-081-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The support for surfaceless context was disabled in commit 9cc97f0c63049a8076476acc89c875c9e240abfb, which says: > Using surfaceless EGL surface on imx6 embedded device crashes webengine > with backtrace in gpu driver. It was added in commit bfcbdc3ab42880dc37ffa7174af96928ccf25f03, which says: > This patch is a port of commit 4b0cac9dfeebb73f21a11e10e6a2bc7bddbe889b > in Chromium for Qt WebEngine. > The based commit says: > (snip) > > the creation of a dummy offscreen surface. This would also enable > > support for offscreen rendering on platforms (i.e Ozone-Wayland) which > > donot support pbuffer surfaces. > > Some platforms supported by QPA, such as Mesa 3D DRI2 with drm and > wayland backend also don't support pbuffer surfaces. Considering those cases, this change enables surfaceless context only if pseudo surfaceless context made of surface context is not available. Change-Id: I015421ebbbc357d48313e09d4f7a0369bb956521 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
| | * Avoiding accessing null QMimeData from missing clipboardsAllan Sandfeld Jensen2016-12-071-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | Not every Linux QPA has the selection clipboard, and will return a null QMimeData when one is requested for Selection. Task-number: QTBUG-57425 Change-Id: Ib63a0c3589df299ce4a2a5e30cbe6efb0727b5f1 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
| | * Merge remote-tracking branch 'origin/5.7.1' into 5.8.0Liang Qi2016-12-071-2/+3
| | |\ | | | | | | | | | | | | Change-Id: I4f73844c730d52b00194ab6ff4abe35c59f7ef68
| | | * Disable surfaceless context supportv5.7.1Michal Klocek2016-12-011-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using surfaceless EGL surface on imx6 embedded device crashes webengine with backtrace in gpu driver. Since this feature requires a bit more testing on embedded platforms disable support for the 5.7.1 release. Task-number: QTBUG-57290 Change-Id: I3ed5b6fc173d184486316a2c3d899a88d4b1de76 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * | Do not disable thumb instructions on ARMv7+Allan Sandfeld Jensen2016-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Chromium in particular the bundled FFMPEG does not build on ARMV7 with thumb disabled. Since thumb should always be available on ARMv7 just ignore possible -marm in QMAKE_CFLAGS in that case. Task-number: QTBUG-57037 Change-Id: I09380839dddb97f64fb35ed749e5af0d002fa5fa Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | | | Add gn generator for pro filesMichal Klocek2016-12-164-16/+32
| | | | | | | | | | | | | | | | | | | | Change-Id: I5f28314d79b4aad587b323b027eb6d74ad422a73 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | | Make QQuickWebEngineNewViewRequest::requestedUrl readable for QMLViktor Engelmann2016-12-151-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added Q_PROPERTY and getter for QQuickWebEngineNewViewRequest::m_requestedUrl so that it can be read from QML. Task-number: QTBUG-55590 Change-Id: I39e89690f996a1db7c9ce39103429186b26811f8 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | | Add GN files to other filesAllan Sandfeld Jensen2016-12-141-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This will help QtCreator find them for us. Change-Id: I9ec27f75f7153427d16ebe62b79a283e287ff829 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | | | Fix unused-function error for callbackOnPrintingFinishedMichal Klocek2016-12-091-0/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: I689cb8564ce04067499e4c252a6d36e70ee51930 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | | Fix grit/net_resources.h includeMichal Klocek2016-12-081-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: Ibe2e622c4c4a16b4e572af7057ec9ba23a98bb8a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | | Add gn bootstrap to build systemMichal Klocek2016-12-082-29/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bootstraps gn wihout rebuild. Change-Id: I09ee4d6b6f458f16f0d9ac18433823153ab75995 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | | Merge "Merge remote-tracking branch 'origin/5.8' into dev" into refs/staging/devLiang Qi2016-12-0726-220/+204
|\ \ \ \
| * | | | Merge remote-tracking branch 'origin/5.8' into devMichael Brüning2016-12-0726-220/+204
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty Change-Id: Ie7b7c469aa24716816a23b8fe7a8df9f477a9f67
| | * | | Report size to UrlRequestJob for qrcAllan Sandfeld Jensen2016-12-061-0/+1
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already added this custom url jobs, but it was missing for qrc. Task-number: QTBUG-57447 Change-Id: I5f832b083bdadc86a4bd0124f92a970d2df8be27 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
| | * | Add environment variable to set chromium flagsAllan Sandfeld Jensen2016-12-011-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is not always possible to pass random flags to any QtWebEngine application, so we should allow another way of setting Chromium flags. Among other things this makes it easy to set flags when running auto tests. Change-Id: I7ffb3bf8c9ceafc7d6b1bd2ba135643a687e480f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| | * | Rework and fix loadVisuallyCommitted signalPeter Varga2016-11-258-26/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove RenderViewObserverHostQt_DidFirstVisuallyNonEmptyLayout message and use WebContentsObserver::DidFirstVisuallyNonEmptyPaint instead. - The order of the DidFirstVisuallyNonEmptyPaint and OnSwapCompositorFrame events is not guaranteed. Check for both events to do not miss to send any loadVisuallyCommitted signal. Change-Id: Ic733b3e9a6fae64b1d827e8e07514f180273cf8c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * | Move the QPrinter and QtWidgets related code out of the PDFium wrapperMichael Brüning2016-11-2511-162/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This moves the actual printing using QPrinter to the WebEngineWidgets part of the API. The printsupport module depends on the widgets module and therefore QtWebEngineCore also had a dependency to widgets. This is removed by this change. Change-Id: If6e5745709a59de18f2123b930cbe6e64390c867 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
| | * | Merge remote-tracking branch 'origin/5.7' into 5.8Allan Sandfeld Jensen2016-11-258-11/+88
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty Change-Id: Ib9c9eca457c1c42dab948e6cb56d44b57d5da32a
| | | * \ Merge branch '5.6' into 5.7Allan Sandfeld Jensen2016-11-246-10/+77
| | | |\ \ | | | | |/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/core/api/qwebengineurlrequestinfo.cpp src/core/api/qwebengineurlrequestinfo.h src/core/core_gyp_generator.pro Change-Id: I5c78f0c86f6dcd61697148f0729d3d3a2cb2c76f
| | | | * ResourceType ABI/API fixupAllan Sandfeld Jensen2016-11-234-10/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][Important Changes] The enum value ResourceTypeUnknown has changed value since there was a mismatch between 5.6 and 5.7+ definitions. In general any unknown ResourceType value should handled as unknown for forward compatibility, since more types are and can be added in later Qt versions. Change-Id: I0a9f8a2129d4549deeae01e199f432fbbf1bbb9e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
| | | | * Fix IPC message loggingPeter Varga2016-11-222-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Register Qt IPC messages for logging. The usage of content::RegisterIPCLogger function adds the content_common.content_ipc_logging.o to the link dependency. Thus it will register the Chromium Content IPC messages too. Task-number: QTBUG-57224 Change-Id: I2c45691feb22a34f6074940cc35b8a4ba7804370 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | | * | Merge remote-tracking branch 'origin/5.7.1' into 5.7Allan Sandfeld Jensen2016-11-211-1/+8
| | | |\ \ | | | | | | | | | | | | | | | | | | Change-Id: Ifcf7423fa8d892ddad595300e33a09c7f63f5e6e
| | | | * | Fix crash in WebEngineContext when using WaylandAllan Sandfeld Jensen2016-10-121-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For some reason the OpenGL context wayland QPA sets has no nativeHandle, so we end up crashing in strcmp. Assume a context without nativeHandle is Wayland or other GLES2 platform and also force GLES2 when using Ozone. Change-Id: Ia3fc524f3ffbb278d86f9153ec96c7258ef86656 Reviewed-by: Michal Klocek <michal.klocek@qt.io>