summaryrefslogtreecommitdiff
path: root/src/core/api
Commit message (Collapse)AuthorAgeFilesLines
* Update documentation for QWebEngineUrlScheme::FetchApiAllowedYigit Akcay2023-05-161-2/+3
| | | | | | | | Update the documentation to also mention that XMLHttpRequest Web API send method needs this flag if it contains a body. Change-Id: I7588fc0af441c48516e80f6c5f38b8e54771ba9a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Test for presence of local frame in runJavaScriptAllan Sandfeld Jensen2023-05-161-2/+8
| | | | | | | | | It can be missing if we are in the process of shutting down. Pick-to: 6.5 6.2 Fixes: QTBUG-113400 Change-Id: Ib494e479db08d51825c15f54354037c265ba96b0 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix build race condition between data_dep and WebEngineCore.stampMichal Klocek2023-05-031-1/+4
| | | | | | | | | | | | | For v8 context generator data_dep race condition occurs on universal builds. As data_dep is runtime dependency, it will be not included into our linker WebEngineCore.stamp, changing the behavior in gn would look ugly as it would require introducing another flag to just to handle this case to force this dependency for build time. Therefore add extra v8_context_snapshot.stamp to cmake to cover that case. Change-Id: Ia8b2320fc8e615235bde483d282dfca73a38f215 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add v8 context snapshot support/featureMichal Klocek2023-05-032-2/+18
| | | | | Change-Id: I93e615293160d80c8a65b0152d2f820cfadbdb9d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add qWebEngineGetDomainAndRegistry()Benjamin Terrier2023-05-022-0/+15
| | | | | | | | [ChangeLog][WebEngineCore] Add qWebEngineGetDomainAndRegistry() Fixes: QTBUG-105294 Change-Id: Ica40453f807b00c8548f974a495ddf84bbe8e194 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Allow configuration of DNS-over-HTTPSYigit Akcay2023-04-284-0/+179
| | | | | | | | | | | | 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 QWebEngineSettings::DisableReadingFromCanvasAnu Aliyas2023-04-241-0/+1
| | | | | | | | - disables reading from canvas. Fixes: QTBUG-84486 Change-Id: I3e181bfa6e351dea8dfa61f8010bafb94ea8a77d Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Support painting to Direct3D11 using ANGLEAllan Sandfeld Jensen2023-04-201-3/+3
| | | | | | | | Pick-to: 6.5 Task-number: QTBUG-112280 Fixes: QTBUG-109401 Change-Id: Iaebb79921030ce42bcfe8be1ba46d309c93dca6d Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Rework painting integration and support Metal RHI over ANGLEAllan Sandfeld Jensen2023-04-121-1/+2
| | | | | | | | | | | | | Move graphics details into compositor, and add support for a native buffer mode uses ANGLE on the Chromium side. The initially support is for Metal. Pick-to: 6.5 Fixes: QTBUG-112282 Task-number: QTBUG-112280 Change-Id: I066ba1d3e72508e047d259ae5797659d45335fb2 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Better handling of interrupted PDF printingSzabolcs David2023-04-051-0/+5
| | | | | | | | | | | | | | | | | | | | | - Document the fact Stop WebAction can interrupt the in-progress PDF generation. - Update PrintViewManagerQt::PrintPreviewDone(): Normally IsPrintRenderFrameConnected() implies IsRenderFrameLive(), but we have to check both to avoid crash when render process exits. (Like Chrome does.) - Update PrintViewManagerQt::RequestPrintPreview(): Handle that case when print preview params were sent between processes at the beginning, but it was interrupted before RequestPrintPreview() could start PDF generation. - Add a simple auto test to catch crashes Pick-to: 6.5 Task-number: QTBUG-108154 Change-Id: I8a4f9cc97ddcf9a165d66a5981d93a023858fbc1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Require gn for generating docsMichal Klocek2023-03-301-0/+1
| | | | | | | | | | | | | Make sure gn is build before doc target, otherwise parallel top level build might not succeed. As configure runs the gn binary is not compiled so use scripting mode to execute gn call during build time. Pick-to: 6.5 Task-number: QTBUG-108751 Change-Id: I7e851de90e2a3ec52f5259d51f677b23d8245bcb Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Add gn target to code attributions generatorMichal Klocek2023-03-281-13/+12
| | | | | | | | | Use gn_target for code attributions generation. Task-number: QTBUG-88482 Pick-to: 6.5 Change-Id: I4e5d063dec2347c10eb715a467bdd376e39e60af Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Use docs target for chromium code attributionsMichal Klocek2023-03-241-1/+1
| | | | | | | | | | The target docs_WebEngieCore, which in the end calls generate_docs_WebEngineCore, is not a dependency for any other target in generated ninja file. Pick-to: 6.5 Change-Id: Ic2f1c93fed8fbb1a44e2f99365b15b7ec3e636f2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add quotes from removed example to documentationAllan Sandfeld Jensen2023-03-241-0/+14
| | | | | | | | | Task-number: QTBUG-108751 Change-Id: I5560c2104e28cb5ca753f5db3579feabf4723980 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit fb2b93818c7ecd5c025b999b2521801da9f4fbc9) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Remove webui exampleAllan Sandfeld Jensen2023-03-241-3/+16
| | | | | | | | | | | | Doesn't demonstrate anything complicated, the code isn't even worth quoting as snippets. We could consider introducing a help browser to replace it with more functionality. Task-number: QTBUG-108751 Change-Id: I3b796388796a78d017836a10bee18032b2cd4905 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit e4051de7db7b7f0905770280f9a06e133d453cf7) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix syncqt include warningPeter Varga2023-03-161-2/+2
| | | | | | | | | WARNING: qwebengineloadinginfo.h includes QHash when it should include QtCore/QHash Change-Id: I244a9390421ade2344660b66a54d4bf99915f29a Reviewed-by: Yigit Akcay <yigit.akcay@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* QWebEngineUrlResponseInterceptor: Implement new URL response interceptorYigit Akcay2023-03-109-4/+248
| | | | | | | | | | | | | | | | | | | | | This patch adds the QWebEngineUrlResponseInterceptor abstract class, which, when implemented, allows a user to intercept response headers and modify them in any way they like. A response interceptor can be set via QWebEngineProfile::setUrlResponseInterceptor(), QQuickWebEngineProfile::setUrlResponseInterceptor() or QWebEnginePage::setUrlResponseInterceptor(). Also, the QWebEngineUrlResponseInfo class is implemented, which contains the request and response data to be used with the response interceptor. If a response interceptor is set in the profile and page, the one in the profile takes precedence. Fixes: QTBUG-61071 Change-Id: I484d14373ff597b1d531541c066f0102bae28c72 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix initialization of QWebEngineDownloadRequest::totalBytes for WidgetsPeter Varga2023-03-013-29/+24
| | | | | | | | | | | | QQuickWebEngineProfile already initializes totalBytes. Also clean up QWebEngineDownloadRequestPrivate and fix typo in documentation. Pick-to: 5.15 6.4 6.5 Fixes: QTBUG-104869 Change-Id: I8c4b79c076ddc63180960e22a9488b45ff6c4402 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Enable VAAPI and gpu memory buffers on LinuxAllan Sandfeld Jensen2023-02-151-2/+15
| | | | | | | | | | Only seen working in vulkan and EGL modes so far. Does not work with system libvpx Fixes: QTBUG-91677 Change-Id: Ie2956c2b841854c78fc1af3c1010fb877728acb1 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Support LTR and RTL text directions in input fieldsSzabolcs David2023-02-152-0/+15
| | | | | | | | | | Implement WebActions to temporarily change text direction directly from context menu - like Chrome does. They only work for the selected input field. Omit the "default" option since it is always grayed out in Chrome. Task-number: QTWB-67 Change-Id: I4bacbd82c6bd7261ac465eec9da3776613f98074 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* QWebEngineLoadingInfo: Add response headersYigit Akcay2023-02-132-4/+25
| | | | | | | | | | | | | | | | | | | | This change adds a member variable that contains the response headers to QWebEngineLoadingInfo. It is filled when a QWebEngineLoadingInfo instance is constructed inside WebContentsDelegateQt::emitLoadFinished(bool). The response headers are extracted from the navigation handle when WebContentsDelegateQt::DidFinishNavigation(content::NavigationHandle *) is called. The response headers are non-empty when QWebEngineLoadingInfo::status() is equal to QWebEngineLoadingInfo::LoadSucceededStatus or QWebEngineLoadingInfo::LoadFailedStatus. Fixes: QTBUG-106862 Change-Id: I4d196e3cc71725ddad9a5832af72d1b4e50924c8 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Custom URL Schemes usable with HTML5 Fetch ApiYigit Akcay2023-02-092-0/+5
| | | | | | | | | | | | | This change adds the QWebEngineUrlScheme::FetchApiAllowed flag and test cases to test its effect. When FetchApiAllowed flag is set a custom url scheme can be used by the HTML5 fetch api. Fixes: QTBUG-88830 Change-Id: I953dd0504bf508fd8082fae5db08b7b9fc47ea1f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Retire the qt_parse_all_argumentsAmir Masoud Abdol2023-02-081-0/+1
| | | | | | | | | | | To do so, we need to deal with the macros a bit differently, so here, I replaced the macros with available utility functions, and added one for the QTWEBENGINEPROCESS_NAME. Fixes: QTBUG-110873 Task-number: QTBUG-99238 Change-Id: I29b41ffb8059511d2d93bfc01d40308aedaa8ad4 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* QWebEngineUrlRequestJob: Add function to set additional reponse headersYigit Akcay2023-01-262-0/+14
| | | | | | | | | | | | | | | Add additional response headers field to URLRequestCustomJobDelegate. Those fields can be set via QWebEngineUrlRequestJob::setAdditionalResponseHeaders( const QMap<QByteArray, QByteArray> & ). They are added to URLRequestCustomJobProxy::m_client when URLRequestCustomJobProxy::reply(std::string, QIODevice) is called, and added to the response headers within CustomURLLoaderFactory::notifyHeadersComplete(). Fixes: QTBUG-106578 Change-Id: Ie0f0af07a5381c6f24ec0a1ee1b5bcb0e8c4fa5f Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix deprecation of Quota Permission Request APIPeter Varga2023-01-182-3/+5
| | | | | | | | | | | | | Add reason string and version for deprecation. Also mark the constructor of QWebEngineQuotaRequest class deprecated. Amends 8fd7140082e3a752ca80882a29128ffc12d12fa4 Pick-to: 6.5 Task-number: QTBUG-109580 Task-number: QTBUG-56354 Change-Id: Ifa15bb5eaccabd62acbeb05df071c4bdc9584c95 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Remove unused properties from QQuickWebEngineViewPrivatePeter Varga2023-01-091-1/+0
| | | | | | Pick-to: 6.5 Change-Id: I368d53e250cd06908db2c2dfb12d6227f835f136 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix qdoc link failuresMichal Klocek2023-01-061-1/+1
| | | | | | Pick-to: 6.5 6.4 Change-Id: I6b18382a376bf3067323e801f6f39bf4ec09e9dc Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Remove setPushServiceEndpoint from APIMichal Klocek2022-12-222-18/+14
| | | | | | | | | | Use setPushServiceEnabled instead. Update also getter and documentation. Task-number: QTBUG-107442 Pick-to: 6.5 Change-Id: I299ce88b06edef0f1a0088fb10f4a142056039be Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Add touchSelectionMenu for widgetsMartin Negyokru2022-12-122-2/+26
| | | | | | | | | [ChangeLog][QWebEngineWidgets] Added touch selection menu. Task-number: QTBUG-100418 Task-number: QTBUG-91712 Change-Id: Iffb994e429b92389e64cd6a93a0b034d6aa07f66 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Remove webengine-v8-snapshot-support featurePeter Varga2022-12-081-13/+0
| | | | | | | | The correspdonding v8_use_snapshot gn argument has been already removed in the Chromium 79 adaptations. It is useless since then. Change-Id: Ied1df9e8ed3149a0309d90fc026f4158627c0bcc Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Deprecate Quota Permission Request APIPeter Varga2022-12-085-58/+24
| | | | | | | | | | | | | | | | | | | | | | | | Requesting host quota is no longer supported by Chromium. navigator.webkitPersistentStorage has became an alias for navigator.webkitTemporaryStorage after the Chromium 106 update. Requesting quota for temporary storage is needless because the allocation is automatic and storage can't be requested beyond the maximum limit. The logic of the persistent storage will be entirely removed in the next Chromium update so just deprecate the API and remove the corresponding implementations. [ChangeLog][QtWebEngineCore] Deprecate QWebEnginePage::quotaRequested() signal and QWebEngineQuotaRequest class. The signal is not emmitted anymore. [ChangeLog][QtWebEngineQuick] Deprecate QWebEngineView.quoataRequested() signal. The signal is not emitted anymore. Task-number: QTBUG-56354 Change-Id: Ie397598c416d9e811270ba56a97f8984948277f7 Reviewed-by: Szabolcs David <davidsz@inf.u-szeged.hu> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Port d_ptr of QWebEngineUrlRequestInfo to std::unique_ptrPeter Varga2022-12-052-4/+15
| | | | | | | | | Fix compiler warning about deprecated QScopedPointer::take. Pick-to: 6.4 Change-Id: I71f714e0dd301db51580b5e03d860d6d214a84b3 Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Doc: Improve QWebEngineClientCertificateStore documentationMichal Klocek2022-11-181-1/+15
| | | | | | | Fixes: QTBUG-106497 Pick-to: 6.4 Change-Id: Ic10d2d54722b071eaacd9f7cb74b08c8ecedcd65 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Add Vulkan rendering supportPeter Varga2022-11-102-15/+28
| | | | | | | | | | Updates 3rdparty: * 8b7ce4ef70d Make GrVkImage external Task-number: QTBUG-107669 Change-Id: If7fbe1f20538598dd1d4f3a67be17c9f7d06a3cd Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Only warn the user about conditions that are not metMichael Brüning2022-10-181-1/+4
| | | | | | | | | | | | | | | When loaded from a plugin, we printed a warning about setting the application attribute Qt::AA_ShareOpenGLContexts and choosing OpenGLRhi as the scene graph renderer interface even when those conditions were already met. This patch checks if these conditions are already met before printing the warning. Change-Id: Iee06fa4560e022f0611f07a082513dc91c8065c9 Pick-to: 6.4 6.3 Fixes: QTBUG-103958 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Port from container::count() and length() to size() - V4Marc Mutz2022-10-112-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a semantic patch using ClangTidyTransformator as in qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8, but extended to handle typedefs and accesses through pointers, too: const std::string o = "object"; auto hasTypeIgnoringPointer = [](auto type) { return anyOf(hasType(type), hasType(pointsTo(type))); }; auto derivedFromAnyOfClasses = [&](ArrayRef<StringRef> classes) { auto exprOfDeclaredType = [&](auto decl) { return expr(hasTypeIgnoringPointer(hasUnqualifiedDesugaredType(recordType(hasDeclaration(decl))))).bind(o); }; return exprOfDeclaredType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes)))); }; auto renameMethod = [&] (ArrayRef<StringRef> classes, StringRef from, StringRef to) { return makeRule(cxxMemberCallExpr(on(derivedFromAnyOfClasses(classes)), callee(cxxMethodDecl(hasName(from), parameterCountIs(0)))), changeTo(cat(access(o, cat(to)), "()")), cat("use '", to, "' instead of '", from, "'")); }; renameMethod(<classes>, "count", "size"); renameMethod(<classes>, "length", "size"); a.k.a qt-port-to-std-compatible-api V4 with config Scope: 'Container'. Change-Id: I3e6fef8eca212da0c4f0b464545ba96183b4476f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-074-6/+6
| | | | | | | | | | | | | | 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>
* Enable Push MessagingSzabolcs David2022-09-122-0/+38
| | | | | | | | | | | | | | | | | | Use Chrome's implementation of PushMessagingService. This feature relies on notification permissions, so it is not different from Web Notification from end-users perspective. We don't persist push subscriptions, because it seems these have to be consistent with persisting notification permissions. Make address of push service configurable by a profile setting. It is empty by default - which means the feature is disabled until the user sets the address of a push service. Task-number: QTBUG-98904 Task-number: QTBUG-53457 Change-Id: If44f459fecf2da482c28fee5562f62fe40de103e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add touchHandles for widgetsMartin Negyokru2022-08-292-1/+9
| | | | | | | Task-number: QTBUG-100418 Task-number: QTBUG-91712 Change-Id: I69131d3c7c4511ea3114df7a9300bf6ff1a59fee Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-264-4/+4
| | | | | | Task-number: QTBUG-105718 Change-Id: I2ad190e5536cdbdc8d2656e61892545d66911a02 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Add QWebEngineUrlRequestInfo::httpHeaders()Benjamin Terrier2022-08-233-6/+31
| | | | | | Fixes: QTBUG-105399 Change-Id: I6bc64d7f0b5e80b8645d7dbccb224262ff17c1a4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Find GIO submodule of GLIBAllan Sandfeld Jensen2022-08-221-1/+1
| | | | | | | | | Seems casing is important. Task-number: QTBUG-105818 Pick-to: 6.4 Change-Id: I43176b6c1aa21cba7d9145067ffdaec4456e3e67 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Make QWebEngineFileSystemAccessRequest comparisons hidden friendsAllan Sandfeld Jensen2022-08-092-16/+12
| | | | | | | | From API review Pick-to: 6.4 Change-Id: I567767b95852048f56d3ff5b5d0df2b91358f8b1 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Switch QWebEngineFileSystemAccessRequest to std::shared_ptrAllan Sandfeld Jensen2022-08-082-9/+6
| | | | | | | | | | And also inline move constructor From API review Pick-to: 6.4 Change-Id: Ieff59c05df9ca7700579a5d83042f5e98355fe74 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Inline move assign and add swapAllan Sandfeld Jensen2022-07-132-3/+3
| | | | | | | | From API review Pick-to: 6.4 Change-Id: I7c24d4736a14d9b8af52de556523986eea99bc34 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Add license headers to cmake filesLucie Gérard2022-07-074-0/+12
| | | | | | | | | | | | 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>
* Various clean-upsPeter Varga2022-06-243-5/+10
| | | | | | Pick-to: 6.4 Change-Id: I53e04a247a25149d9f29135484c0528c706de7d8 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-2267-2546/+134
| | | | | | | | | | | 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>
* Remove widget from QWebEnginePagePrivateAllan Sandfeld Jensen2022-06-222-7/+5
| | | | | | | | | It is redundant with item->m_widgetDelegate, once a few inconsistencies were ironed out. Pick-to: 6.4 Change-Id: I18a90cc195e5854d8421aa8c0951872322b78d28 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Support HTML5 <datalist> elementPeter Varga2022-06-192-0/+21
| | | | | | | | | | | | | | | | | The datalist uses Chromium's autofill component to fetch and filter predefined options in the list and autocomplete the field with the selected option. Autofill component is added to build and bound to WebEngine. All the unnecessary autofill features for datalist are supposed to be disabled: payment/credit card support, password manager, save profile data, store suggestions in database etc. Custom popups for the dropdown are implemented for Widget and Quick. Scrolling in dropdown is not implemented in this change. Fixes: QTBUG-54433 Pick-to: 6.4 Change-Id: I155d02d6dbc9d88fbca4bc5f55b76c19d0ba7a9d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>