summaryrefslogtreecommitdiffstats
path: root/tests/auto/httpserver
Commit message (Collapse)AuthorAgeFilesLines
* Fix async request calls in test httpserverMichal Klocek7 days2-1/+2
| | | | | | | | | | | | | | | | When we create in tests request handler and process responses, the httpserver checked response isClosed() to bail out from further processing. However, disconnecting from the client is an async process, therefore proper check should be isClosing(). Leave also isClosed() in case handler does some re-entry into qt message loop. Note this change can have side affects if given test case relied on further processing. Pick-to: 6.10 Change-Id: I056c0da74000e1801ca756225db03b0f0209f360 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Do not add magic header web_engine_logging.hMichal Klocek2024-10-313-6/+6
| | | | | | | | | | | | | | | | | | | | | | | Importing headers with relative paths going out of source component is evil. Remove web_engine_logging.h header as it is referred from the code base, but build system has no clue about it as it is specified as include with relative path. Moreover, it introduces weird implicit dependency of components like qtpdf on qtwebenginecore. Add required macro to private globals. Note for qtpdf it is unnecessary as we do not support compiling qtpdf against latest lts, however our release infra requires it. This commit amends d11709f18d692f4a3431999e90dddf0d7cdf15df. Task-number: QTBUG-127975 Change-Id: I89163a29db4e601cfb607928f796343ba522037b Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix static logging category deprecation warningsKaloyan Chehlarski2024-08-271-1/+3
| | | | | | | | | | | | | | | | | | | | | This is a second attempt at getting rid of the deprecation warnings caused by the new logging category macros in 6.9. These cause build failures on warnings-as-errors configurations, and need to be fixed properly without affecting backwards compatibility. The change introduces a new Q_WEBENGINE_LOGGING_CATEGORY macro, intended to be used across the WebEngine sources. The macro is not exported to users, so the QtPdf example that declares its own logging category uses an #ifdef instead. The new macro is placed in its own header inside src/core/, and is intended to be removed whenever the next LTS release allows us to break compatibility with 6.8, and just directly use Q_STATIC_LOGGING_CATEGORY everywhere. Fixes: QTBUG-127975 Change-Id: I9174dab21bd597c862e569e170161782cc108ece Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Permission manager: separate tracking of transient permissionsKaloyan Chehlarski2024-08-241-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following the rewrite of the permissions API, transient (a.k.a non-persistent) permissions still passed through the persistent store sometimes, but were filtered out when using user-facing APIs. Unfortunately, thisstill presented some edge cases in the AskEveryTime permission policy mode. This change modifies the PermissionManagerQt class to store a second set of permissions, and associate them with a RenderFrameHost the way the Chromium API is designed to do anyway. This way, a permission will be kept around for the lifetime of a web page, and calling JavaScript APIs that trigger checks for permission state will work properly (e.g. navigator.mediaDevices.enumerateDevices). The new store is regularly cleaned up to make sure expired permissions are purged before they impact performance. As a side effect, this change also introduces pre-granting of non-persistent permissions, which was the biggest omission in the permissions rewrite. In those cases, the permissions will be temporarily stored inside the persistent store, and moved to the transient one the next time they're queried (and can thus be associated with a RenderFrameHost). This also fixes some extremely broken test cases that relied on invalid web API. Fixes: QTBUG-127951 Pick-to: 6.8 Change-Id: Ic084af7673ea0b255d98d94382e77323bb5e7ab0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Revert "Use static logging categories everywhere"Kaloyan Chehlarski2024-07-251-1/+1
| | | | | | | | | | | | This reverts commit bd6e209152d042a08fc226a9e92ee1c04cf1954a. The change broke backwards compatibility with 6.8, because the relevant macros were introduced after the feature freeze, and are thus not part of the 6.8 release. This revert fixes the impeding backwards incompatibility whenever WebEngine 6.9 is released. Change-Id: I4626c4fe2647a5eb2a0729696cb80db6a47569a7 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use static logging categories everywhereKaloyan Chehlarski2024-07-021-1/+1
| | | | | | | | | | | | Following fa4bd30caa079a3b1e5eac1bb4f17365f456b8f9 all usage of the Q_LOGGING_CATEGORY macro triggers a deprecation warning, and may even block certain build configurations. This change replaces all usages of the macro with Q_STATIC_LOGGING_CATEGORY instead, since none of the logging categories in WebEngine are meant to be exported to users. Change-Id: Icdebb7a3a8c987db3f34945cd0311aee52667a88 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Correct license for test filesLucie Gérard2024-06-197-7/+7
| | | | | | | | | | | | | According to QUIP-18 [1], all test files should be LicenseRef-Qt-Commercial OR GPL-3.0-only [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: I7ba480e5d9b9095ad6686c8b1c857f35caf17d04 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Add API to override User Agent Client HintsSzabolcs David2023-12-142-0/+6
| | | | | | | | | | | Implement QWebEngineClientHints class to provide API for each user agent client hints. Task-number: QTBUG-112826 Task-number: QTBUG-112825 Change-Id: I3091d60fb363bbafc16c8e48195c1fd82e8a81bb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Allow configuration of DNS-over-HTTPSYigit Akcay2023-04-282-2/+12
| | | | | | | | | | | | Implement QWebEngineGlobalSettings, a singleton class that contains global web engine settings (currently only for DoH). Allow the user to configure the stub host resolver to enable DNS-over-HTTPS. Fixes: QTBUG-98284 Change-Id: I1b06737c84e1b8d613aa257f4a891f82cac21013 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Add client SSL authentication testMichal Klocek2022-11-221-3/+16
| | | | | | | | | | | | | | | | Our qwebenginecertificatestore unit test so far only tested adding/removing custom certificates into the memory. However, it never actually initialized certificate store and did not test if ssl certificate client authentication really works. Cover that case and client authentication test. Note ca and client certificates in the test are self signed to be able to run test without network connection, however we ignore the errors. Pick-to: 6.4 Change-Id: I4df4fdfabed5abd8f8bde7d4c0c79b5fd7f6f3a9 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Use QSslServer in certificate testMichal Klocek2022-11-172-36/+29
| | | | | | | | | | | | | | | | | We had our own implementation for the HTTPS server. However, the way it worked involved adding for every incoming connection a socket to the list of pending connections, which resulted in unnecessary logging noise due to socket connect/disconnected signals during the SSL handshake negotiations. It also resulted in memory leaks. Since 6.4 we have now QSslServer which adds socket to the pending connection list only after encryption got established. Pick-to: 6.4 Change-Id: I3c8a2a0684e3f0760a56d4b4aaf7b777700e334b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-071-1/+1
| | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace. Task-number: QTBUG-99313 Change-Id: I4b5f85df579532c2af938fe70db945ba273782fb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-262-2/+2
| | | | | | Task-number: QTBUG-105718 Change-Id: I2ad190e5536cdbdc8d2656e61892545d66911a02 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Add license headers to cmake filesLucie Gérard2022-07-072-0/+6
| | | | | | | | | | | | CMakeLists.txt and .cmake files of significant size (more than 2 lines according to our check in tst_license.pl) now have the copyright and license header. Existing copyright statements remain intact Task-number: QTBUG-88621 Change-Id: I118bd63694cfe2c9a413af4a38828a31727f8e86 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-227-189/+14
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. License files are organized under LICENSES directory. Pick-to: 6.4 Task-number: QTBUG-67283 Change-Id: I869ffda1080e283f231eb0dc4477b260f2054d99 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Include moc filesAllan Sandfeld Jensen2022-05-313-0/+6
| | | | | | | | Faster to build and gives smaller binaries Fixes: QTBUG-103291 Change-Id: Iab52995e03c13a4c5b185750028c449a19d98d93 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Improve local scheme access rulesAllan Sandfeld Jensen2022-01-281-0/+1
| | | | | | | Pick-to: 6.3 6.2 Task-number: QTBUG-96849 Change-Id: Ieb24da12a61e5e37b29ccf2d1a11b7bd863b842e Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix automoc for test in case of topLevel buildMichal Klocek2021-09-041-4/+3
| | | | | | | | | | In top level build , main configure can complain that moc does not exist during generator phase. Mark moc as enabled. Pick-to: 6.2 Change-Id: I55db6ada209939cc4cbedab4654b654cd741c535 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Simplify test examples target includesMichal Klocek2021-08-311-3/+3
| | | | | | | | | | | | | | Fix condition to include examples and tests based on targets. We are no longer behind external project so we can simply check for targets. Fix issue for including automoc call when running qt configure when doing top level build. Pick-to: 6.2 Task-number: QTBUG-95590 Change-Id: I0cd2d8016e14ddf296455277e968b43a923a7217 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Refactor and create gn targetMichal Klocek2021-05-221-1/+2
| | | | | | | | | | | | | | | | | Refactor the gn handling and add: * the gn target for encapsulating resources needed to run chromium builds * the support for SOURCES, INCLUDES, DEFINES, COMPILE OPTIONS. * the multi config support for cmake and enable debug, release builds * CONDITION evaluation for the gn target and the gn arg list * the linux specific config and all missing source sets * use REALPATH instead of ABSOLUTE, this fixes missing drive letter on windows Task-number: QTBUG-91760 Change-Id: Ib283d8ab817ff36ee9c94c2b8f44785709c45258 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add tests to the cmake buildMichal Klocek2021-05-2222-0/+1036
Use QT_TESTCASE_SOURCEDIR instead of TESTS_SOURCE_DIR. Introduce Test::HttpServer and Test::Util targets. Query shared data location from server. Clean up "shared" resources. Note QT_TESTCASE_SOURCEDIR must be turned into the canonical form since the user can call on windows: "cmake \path\to\foo" instead of "cmake c:\path\to\foo" which will break all file:// urls. Note this patch breaks qmake builds. Task-number: QTBUG-91760 Change-Id: Ibc1f904ac9acd375d1ff70ff80f0c533497e3f20 Reviewed-by: Michael Brüning <michael.bruning@qt.io>