summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Fix flakiness of jsServiceWorker testMichal Klocek2022-06-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This is an interesting issue as in the test sometimes first party url of intercepted request has "sw.js" instead of "sw.html". After deep debug of the issue the reason behind is that a service worker registration job checks the registration for given scope and the key, this in the turn will check storage in ServiceWorkerStorage::FindRegistrationForScope. Now if registration is found this will trigger service worker update checker, which fires the request check for newer version for sw.js and makes an intercepted request with sw.js as first party url. This of course brakes the test. Do not use the storage in that test, and let the service worker registration job do full "install" & "register" cycle instead of running "update" phase. As a side note , using off the record profile makes test run faster as opening the storage and closing it is costly. Change-Id: If13a4fcf0014cc5c76cb8ed14e60f2e5e29c67ef Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 53f3775a532c8a926f3c7ba7d1daf8ada72be306) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix local->remote user navigationAllan Sandfeld Jensen2022-05-261-0/+65
| | | | | | | | | | Specifically allow user initiated navigation of the mainframe. Fixes: QTBUG-103778 Change-Id: I4e3d6b4fb606bd0c3cf66e090fba3c97c8c535b4 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 2ba1f04b4589e5883a399b022b7795266c4d4646) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Keep page's zoom level on loading new urlsKirill Burtsev2022-05-162-19/+67
| | | | | | | | | | | | | Ammends d236c5a8a3. Zoom level was set as a temporal one, which is invalidated each time when a renderer process or widget are changed (on new navigation, for example), so it needs to be reapplied. Fixes: QTBUG-101030 Change-Id: Iecff9686fbe2b79e99b46f67cab92f66127be085 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 1e27d42a8071532b6cc30a9bcc5f700edc56952a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix touch input for html's popup in quick implKirill Burtsev2022-05-124-39/+132
| | | | | | | | | | | | | | | Ammends 292f573f4e. Now that touch events are forwarded to popup delegate also instead of synthesized mouse events, the bug with touch event being ignored became present. Also extend testing of touch events for html popups. Task-number: QTBUG-79254 Fixes: QTBUG-103217 Change-Id: I097a6617493355c7603fef8eb41025e299a6e809 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 9334feb682db6e6e35bc98dce377a091eb640438) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix navigation to non-local URLsAllan Sandfeld Jensen2022-05-022-2/+10
| | | | | | | | | They are passed in another part of the DropItem object. Task-number: QTBUG-102192 Change-Id: If52a88ce2688c25ea0edcc0d1e8f962f2cdd29dd Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io> (cherry picked from commit 742e6786aeb500ef9bc850bf84803d5f388e3927)
* Fix granted file access after local/remote access cleanupAllan Sandfeld Jensen2022-04-302-0/+33
| | | | | | | | | | | We forgot to check for files specifically granted access to. This blocked a number of features including dropping local files. Task-number: QTBUG-102192 Change-Id: I5d34d9ba5351ec179df5896e64cc95c5481c7dc2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io> (cherry picked from commit 9a44b6ea5c60f83d841881b5ddbbaba79228fdea)
* Resolve status code for http response with failureKirill Burtsev2022-04-081-13/+61
| | | | | | | | | | | | | | All non-default https status codes are hidden under net::ERR_HTTP_RESPONSE_CODE_FAILURE error of network stack. Handle successful load case and set the real http status code for error. Also set localized load error description only for http codes. Fixes: QTBUG-46860 Fixes: QTBUG-61100 Task-number: QTBUG-94963 Change-Id: I81e083441d1814fb530f39ea3da1c4ef52b7da59 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit a4e32eac5cb858ffa5668b01cef10cc42854713b)
* Avoid crashing on context free web actionsAllan Sandfeld Jensen2022-03-252-0/+39
| | | | | | | | | | | If a web action that depends on a context is called, do nothing instead of crashing. Fixes: QTBUG-101724 Change-Id: I7a0040a58e9dc7fa14f0cae71cf1bcd086b61c54 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io> (cherry picked from commit e8e381119ca5b08add50d13ab9d275d9ab55471c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add test for blocking of remote contentAllan Sandfeld Jensen2022-03-102-0/+47
| | | | | | | | Task-number: QTBUG-50686 Change-Id: Ie176bece1a44a6df608646e91171d02ceeea7e8f Reviewed-by: Michael Brüning <michael.bruning@qt.io> (cherry picked from commit b8603c148c6cd53bdd82d0b712971cfc1b747780) Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add qml user script collection unit testMichal Klocek2022-03-032-0/+153
| | | | | | | | | | | | | Adds overlooked unit test to test collection API. Note this test throws bunch of warnings "Can't open user script ..." and it would require dummy js files just to suppress those. Change-Id: Iddf8150c5fee7a29b3dba75066fa51070053d69b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit af190c9d05d2a5afc2de4dd9b2172fec8e4ce3b7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Blacklist CertificateError::test_errorMichal Klocek2022-02-281-0/+3
| | | | | | | | | | | This test started to fail in ci, however c++ counterpart works fine. Task-number: QTBUG-101215 Change-Id: Ic94409b6db06f285d11ab10295d5ebaa831c0fa5 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 123394142c887e049131b823933de88f258152b0) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add QML test for basic profiles and fix the docs accordinglyKirill Burtsev2022-02-182-0/+116
| | | | | | | | | | Amends d0ff107c00. Ensure default values for profile settings match the docs. Also fix doc's issues after off-the-record toggle to off by default. Change-Id: I558a77dbec82d7f2b335b1a2ceca74ab66a1a6e9 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit f34292d147bfde094d8ec4a58f7b0e5f77a1fd0b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add testing of default constructed profile backKirill Burtsev2022-02-181-24/+17
| | | | | | | | | | Amends d0ff107c00. Re-add test of default user created profile without storage name. Also remove duplicated test for profile with storage name. Change-Id: I5d404e06a8ea9a349d5122c7bf138cde768e8391 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 6de032c11537c9d89a52cece5912ac46f3a40f0d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Improve local scheme access rulesAllan Sandfeld Jensen2022-02-114-63/+292
| | | | | | | | Task-number: QTBUG-96849 Change-Id: Ieb24da12a61e5e37b29ccf2d1a11b7bd863b842e Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 3071de1e07be28d763164a037d946281146bf31d) Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix crash on WebEngine(View|Profile).userScripts.collection getKirill Burtsev2022-02-101-6/+36
| | | | | | | | | | | | | | | | To create a javascript list on 'collection' method qml engine is needed for a qml scope, but it's only available for objects, which are created by the QML Engine itself. The only object in hierarchy of classes is an actual WebEngineView, so get it from there on collection init. Also implement delayed initialization of scripts collection for the usage of default profile through WebEngine singleton, and for the reason that it's not really needed until really asked by user code. Fixes: QTBUG-96597 Change-Id: I61e76652a5d0fd5609070fd541816503908f2dc8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit f5fbc34fc16fc9c6e7f7e8bbbf60f5b343b9466d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Cleanup code and clang build warningsKirill Burtsev2022-01-044-18/+14
| | | | | | | | | | Fix build noise as reported by clang for issues like api deprecation, unused variables, sign/unsigned mismatch and other non critical issues. Change-Id: I4fba25406eea8170e3283c42e908ae86bd512e3a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 02d58a067fb5f0db32c254e783170f9f283aeb9d) Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Increase timeout to help slow CIAllan Sandfeld Jensen2021-12-231-3/+3
| | | | | | | Change-Id: I5f0dd43e0c1eb6bc43f263227b12ec0e1b9f7a20 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 4cc4f765a9cfc11668c6274dfe77153a68ff1ec5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Blacklist failing tests on macosAllan Sandfeld Jensen2021-12-201-0/+6
| | | | | | | | | Seems to have started failing while the team is on holiday Change-Id: Id47f5c328ae105305c883f9ce00fea36199830d6 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io> (cherry picked from commit 4b6d5daf527a565bd659668d63a1d14fad0acb27) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix race condition on layout (take2)Michal Klocek2021-12-091-2/+0
| | | | | | | | | | | | | | | | | | | | | Even if layout is 'meaningful' it can still require update before toPlainTextSync call can proceed. Simply wait for frame being loaded in stead of tracking layout update. Depending on DidLoadFinish will brake default toHtml call for empty not loaded page, therefore return expected value if there is no load. This fixes crashes/asserts on certificateError (stacktrace in bug report). Remove blacklist on certificateError as bad certificate is back on line and toPlainTextSync works without issues. Fixes: QTBUG-97414 Change-Id: Ib702bbe813f6061eef446e2d87d7e9e455d715c5 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 1cf45eed088bd1ef1c89a9812c6f69d16bce56f7)
* Remove certificateerror qml unit test leftoverMichal Klocek2021-11-103-94/+0
| | | | | | | | | | Since 40a7fe0 we no longer have certifiacteerror qml test, however there were some leftovers. Change-Id: I1a5fd0756b3e6c0ff6766a6495509f6c174da095 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io> (cherry picked from commit 1140a69b246a97f0a4216c40ccebfb02a808d79e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix some issues with icu for dict toolMichal Klocek2021-10-281-1/+0
| | | | | | | | | | | | | | | | | The dict tool can be run during the build, therefore copy just in case icu data file to tool application path, so it does not require installation and can run no matter if it is a prefix non prefix build. Guard for webengine_system_icu since there is no icu file in that case. Remove awesome looking genex from examples. Change-Id: I2fd5ecf6c99ae1d003a1ac1c7bce2bb61a05f73f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit f2dc94aca3ca8417e73bf914fe3fd3b59eefc19f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Extend schemes access test with LocalContentCanAccess* flagsKirill Burtsev2021-10-281-69/+124
| | | | | | | | Change-Id: I2124d6eef038157e0664a96dfa333b14064541c1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 6b66108d2604d70f357e20a480eb127266fe7e24) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix warnings in QML tests regarding parameter injectionBalazs Egedi2021-10-187-8/+12
| | | | | | | | | | | Parameter "param" is not declared. Injection of parameters into signal handlers is deprecated. Use JavaScript functions with formal parameters instead. Change-Id: Iea3583feb10fc56424ebb070e9b19e605c252773 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit ae74f9f488e32ba60ee58718c90ea911565776d7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Block CORS from local URLs when remote access is not enabledAllan Sandfeld Jensen2021-10-141-1/+1
| | | | | | | Task-number: QTBUG-96849 Change-Id: I0e0a1530b8b31341c632a1fd00abd339b5152da0 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io> (cherry picked from commit f6f8f258be09fef90585b0228bd82a9708ef34a6)
* Blacklist certificate test until certicates have been renewedAllan Sandfeld Jensen2021-10-123-1/+6
| | | | | | | | Task-number: QTBUG-97414 Change-Id: I6f899a5f62b1a37345281a9c6467ed3b059cd2bd Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io> (cherry picked from commit 0fde0da27cd8541199741010eaf9ad3bac6d3f1b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix WebChannel when JavaScript is disabledSzabolcs David2021-09-271-0/+31
| | | | | | | | | | | | | | WebChannel was not working in ApplicationWorld with JavaScript disabled in MainWorld, because WebChannelIPCTransport::DidClearWindowObject() is called only when the window object was cleared in the main world. Moving the WebChannelTransport installation logic to DidCreateScriptContext() works in other worlds, so fixes the problem. Task-number: QTBUG-88875 Change-Id: Ia75613b66a1e049f617f0664684b153b6875e9de Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 70abc0b2eebc777309d372203df5ca1e785402d8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* CMake: Bump almost all cmake_minimum_required calls to 3.16Alexandru Croitor2021-09-241-1/+1
| | | | | | | | | | | | | | Needed for subsequent change that will check and error out if the version is lower than 3.16. We do that to ensure all policies introduced by CMake up to version 3.16 have their behavior set to NEW. Task-number: QTBUG-95018 Change-Id: I6385d1fc83af8a937f0e7987fade1178bfc9c487 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 48ec455571260a3ed8dd07879e0d220e6d5b533e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove our handling of IME hidden text supportAllan Sandfeld Jensen2021-09-231-5/+8
| | | | | | | | | | | QtBase should be disabling it now, if not supported. Change-Id: I79bae11764d3cbaba1ae1e0987bf0a472eee3325 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 89814a321dfeb3ef161a8bb85539a4614ec279ff) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix qrc sources for QWebEngineScriptAllan Sandfeld Jensen2021-09-162-1/+6
| | | | | | | Pick-to: dev 6.2.0 Fixes: QTBUG-96525 Change-Id: I39d6247c0dd0e55e4fb91b176f34e676eeabbcdd Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Ensure load in newly created page first before checking for UserAgentKirill Burtsev2021-09-152-3/+2
| | | | | | | | | | | Condition to use UserAgent override 'ShouldUseUserAgentOverride' is only activated when DocumentLoader is set. This happen only after load, so test should check that before checking UserAgent. Pick-to: dev Task-number: QTBUG-76249 Change-Id: I3b966f8a2141ed656890ce922667e55be09c8676 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Rename Quick examples' folder from webengine to webenginequickBalazs Egedi2021-09-131-4/+4
| | | | | | | | | Fix webengine directory path in project files and comments Change-Id: I06ed9ee41111e7135fa9feb152ad2a5eb2262b76 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit a32ef7057c01fbcadcf451e7f2b785f7b3dd3942) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix handling of new window requestKirill Burtsev2021-09-062-30/+84
| | | | | | | | | | | | | | | | | | | | | Fixes heap-use-after-free for WebContentsAdapter, which is replaced in the case, when new window set to be opened and adopted by the same page, which triggered this request: for example, when 'this' is returned by 'createWindow' override. Achieve this by scheduling 'deleteLater' on an old adapter. This was already implemented that way for internal 'adoptWebContents', but was overlooked for page's 'createWindow' API. So just unify handling logic. Also, adapt 'customUserAgentInNewTab' test, since adopting existing WebContents from different profile is not supposed to work, and now enforced by the check in 'adoptWebContents'. Unfortunately, test should also be blacklisted, since it's appeared that custom user agent is still not reliably set for newly created window. Task-number: QTBUG-76249 Fixes: QTBUG-94772 Change-Id: Ic9dff33eae99cc242a294d45a92be96306cef93d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit e04d8c65b350146fc4458ded5576c4a07601d041) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Enable no widgets buildsMichal Klocek2021-09-053-3/+0
| | | | | | | | | This enables compilation on one more coin node. Change-Id: I4e8079c6efd7476ce62fc9512de211e91b101a82 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 93ad0ad43a9df9226a7ea1bbc902a9a43d2fbde3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix automoc for test in case of topLevel buildMichal Klocek2021-09-051-4/+3
| | | | | | | | | | | In top level build , main configure can complain that moc does not exist during generator phase. Mark moc as enabled. Change-Id: I55db6ada209939cc4cbedab4654b654cd741c535 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 7e2016039132538fedfe51e4be51998f9b7be929) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix target name collision for top level buildMichal Klocek2021-09-012-2/+2
| | | | | | | | | | | When doing top level build we have tests and examples which have same target name as in other modules. Task-number: QTBUG-95590 Change-Id: I94662b3b8f71583213dea664df35b86e24dc7579 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit eb06977c7a8d4afb4b15e02f818dd658c04d1cc8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Simplify test examples target includesMichal Klocek2021-09-012-12/+8
| | | | | | | | | | | | | | | 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. Task-number: QTBUG-95590 Change-Id: I0cd2d8016e14ddf296455277e968b43a923a7217 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit faa74f9b402f6b5d78acdb71b05ca340684b3591) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Nuke all qmake files from testsMichal Klocek2021-09-0173-737/+0
| | | | | | | Change-Id: Ibad2e50d840a2eb0ccb9ac65158e512249a2bc79 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 24a695b4b7fda581c15600b111d6b6c3459ca1d9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Restore enums for QQuickWebEngineView from old-new API classesKirill Burtsev2021-08-311-0/+13
| | | | | | | | | | Restore SC, but at least deprecate these enums in view Change-Id: Ic2a263b0ec175c56b8bf450fae9576bfefca2928 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 97eb62fe8ff83ae77103f5d8ae10debb1a5ff16b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix issue of not working dictionary conversionMichal Klocek2021-08-301-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test and examples are no longer included as external projects, this created and issue that convert_dict tool does not work during build time due to not installed resources. Before we supported converting dictionaries in a prefix build, by supplying the path to the ICU data file located in the Qt build path. The tool had wrapper script generated which set QT_WEBENGINE_ICU_DATA_DIR. This was done using QT_TOOL_ENV: icu_data_dir.name = QT_WEBENGINE_ICU_DATA_DIR icu_data_dir.value = $$OUT_PWD/../../../src/core/$$getConfigDir() QT_TOOL_ENV = icu_data_dir load(qt_tool) Add workaround for that issue with cmake by setting env variable with relative path to resources in build tree. Make example more exciting for new comers and add generator expression which guards the setting based on module build. Note this is temporary solution and webengine cmake api should be introduced to wrap the conversion tasks in some nice look public api based on qt_internal_wrap_tool_command. Disable example on windows, since on one of coin winodws machines we get error "Exit code 0xc0000135". Task-number: QTBUG-95590 Change-Id: I44664cbcc85b00ec66657e583929a0fba7bde65b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit b4915805b9527864e2475acfb29f7a029f3325ca) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Rewrite gn-cmake integrationMichal Klocek2021-08-301-28/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous gn-cmake integration was driven towards having the complete cmake build tree which included gn build artifacts. These were marked as IMPORTED in cmake build files, this way cmake "knew" all object files and static libs coming from gn. To achieve that we needed to run the cmake configure twice. First to feed gn with the build information from cmake and then the second run to import all the build information to cmake based on gn run. As a side effect of this the first run cmake was creating incomplete targets, so we could use generator expressions to gather all the data needed for gn run. The second run of cmake was able to create fully initialized targets. We used 'external project' to run cmake the second time. This approach worked well when doing "module" builds and having two targets, one in the main project and one in external was not an issue. Moreover, this approach could be integrated nicely since CI does only "module" builds. Unfortunately "top level" builds are implemented to import all qt targets into one build tree. This created issue for qtwebengine since fully initialized targets were 'hidden' by 'external project' and including half baked (dummy) targets from the main project resulted in bunch of issues related to the dependency tracking and build race conditions. Also using 'external project' complicated installation rules and in the end installation worked differently than in other modules. With current approach we use response files, so we hide all build artifacts coming from gn and feed cmake with those response files. This way we run the cmake configure once and we create all the targets once. Using rsp files hacks linker options in cmake, so this approach is sub-optimal, however allows to have working "top level" builds. It is worth mentioning here that the final module linking has to take place with cmake's part of build since doing one static lib in gn is not possible due to the toolchain limitation (msvc is not able to process static libs over 4Gb and has no support for thin archives, so only a shared lib is doable at time of writing) Following changes are made: * remove 'external project' for qtwebengine target, we keep it however for ninja ,gn and a host project * call gn from cmake in a scripting mode during build and not configure run, this way BUILD.gn is assembled as a build step so after generator expressions are executed * BUILD.gn is assembled now from 4 files: - root template BUILD.root.gn.in - compiler data gn_config_c.cmake, gn_config_cxx.cmake - sources data gn_cofnig_target.cmake * since we use gn wrapper script use gn.args file to pass arguments instead of a command line, so this file can be now easily modified when running gn and ninja 'manually' * since a script mode does not support handling of properties with TARGET as such, use the DIRECTORY scope in some of our functions which handle GN_TARGET * use qt_build_repo() in main CMakeFile and remove all coin and top level build hacks * remove 'external project' for examples and tests, this is no longer required as all qt targets are not hidden by external project * remove leftovers from gn feedback call used for GN_TARGET * improve installation rules, WebEgineCore target is not by default installed during build, therefore we need to copy resources and translations to root so tests and examples still can be built without a module being installed first * adjust GN lookup paths, we look for gn in main configure and during scripting mode when gn is executed Fixes: QTBUG-94349 Fixes: QTBUG-94709 Fixes: QTBUG-94922 Fixes: QTBUG-94997 Fixes: QTBUG-95051 Fixes: QTBUG-95152 Fixes: QTBUG-95158 Fixes: QTBUG-95972 Task-number: QTBUG-95231 Task-number: QTBUG-95590 Change-Id: I5e7a34287ee59d904103fe310fc7c6a36a8dfbc9 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit bd75c51f2a7f7384d3303e86764211cb3e32f03d)
* Rename quick's 'newViewRequested' to 'newWindowRequested'Kirill Burtsev2021-08-195-21/+21
| | | | | | | | | Match new api within the page API. Change-Id: Ib2af2f5270f368813cecab8f1c6b7366d3b7172f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 339017523ed418a9dc48d9343e5dc63eb1f29ec1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove import versions from Quick auto testsBalazs Egedi2021-08-1943-126/+126
| | | | | | | | Task-number: QTBUG-93666 Change-Id: I502c240ba541c1c13505f0e78a4098e2aa229af8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit fc18c6b42fab945b7bca044511a23eab7726e8fa) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Hide unneeded Quick C++ APIsKirill Burtsev2021-08-181-2/+2
| | | | | | | | | They are not supposed to be a part of public Quick API Change-Id: Ib04ea022192d0eec559c28a48bc87fabda932564 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit e264ac67505312a352d55a35b11192d60375f63a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Add QtPdf to cmake buildMichal Klocek2021-08-188-4/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Port QtPdf to Qt6: * QtPdf,QtPdfWidgets,QtPdfQuick libs * QtPdfQuickPlugin, QtPdfPlugin (imageformat) plugins * widget and quick examples * qtpdf tests To fit gn cmake integration and new repo layout code is a bit reshuffled. Compared to qmke build following features are not ported yet: * ios fat libs * qtbase 3rdparty static dependencies WebEngine build can be skipped with setting QT_FEATURE_qtwebengine_build=OFF Note this patch needs follow up for 6.2 branch to disable qtpdf builds by default, since this should not part of qt 6.2 release. Task-number: QTBUG-95353 Change-Id: I4dd9f3934bdd478fb6d2fa686074a24d91f09953 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 79d04aa9e3e9aa84d7378260519f9e9a6759dc41) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove local-access-allowed from qrcAllan Sandfeld Jensen2021-08-121-2/+2
| | | | | | | Change-Id: I120f4e4e167d621efb6c13f5d16cc13134540352 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit a3a330a9ae031bd19796d62f5e91bc25f5f97769) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Ensure certificate error callback call for all typesKirill Burtsev2021-08-105-32/+53
| | | | | | | | | | | | | Amends a2a9ea11f9. Actually reject certificate when it's considered to be fatal. Adapt tests for possible regression but checking if load really failed (due to missing internet access) or was just halted by missing callback call internaly. Change-Id: I656525c353ce410f7bda8c55227a29fcd617bfdd Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 3acfd3b1cd39e89fb6bc2f0da3412f07d68de7b6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Revert "Remove certificate fatal error test"Kirill Burtsev2021-08-102-0/+34
| | | | | | | | | | | This reverts commit 3cdf6827de796b49fb49f94a18906303732bb93f. Reason for revert: The test didn't work and was skipped due to real regression Change-Id: I6f3c87a0d1561a32465da61a811edc753e69c24b Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 8427a3e370291598ccd7f6f3a843cc1ba90109ae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove QWebEngineCallbackAllan Sandfeld Jensen2021-08-101-1/+0
| | | | | | | | | | Was no longer used in exposed APIs Fixes: QTBUG-74588 Change-Id: Iaf4943983655fc79e67df28f5cd4c4961b360579 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit c4d794898394d7d0f79001a04c8cff50dbc4fba7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Return printToPdf to QWebEnginePageAllan Sandfeld Jensen2021-08-101-5/+7
| | | | | | | | | | It doesn't use QPrinter and can be done using QtGui classes only. Change-Id: I0e14563c1bb5e93d9803bb1a807f702b1a2a5315 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io> (cherry picked from commit b405ed26336a44ad4f359cdb4e1909e31c113cd4) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Reintroduce File Picker controlBalazs Egedi2021-08-101-4/+2
| | | | | | | | | | | - Using FileDialog from QuickDialogs2 - Enabled the UIDelegates test Task-number: QTBUG-93666 Change-Id: I8438a2498e864bc93abf26f2527d7883ac26ca9b Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 47d57eaa2756a108ae28d9e6226577fe66868cee) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>