summaryrefslogtreecommitdiff
path: root/src/webenginequick/api/qquickwebengineview.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Support LTR and RTL text directions in input fieldsSzabolcs David2023-02-151-0/+12
| | | | | | | | | | 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>
* Add WebChannelQuick dependencyMichal Klocek2023-02-151-1/+1
| | | | | | | Reflect latest changes to qtwebchannel. Change-Id: I10bc1690dc32ce1bb61ed9dabc7f31a44d2fdf7e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix build with -no-accessibilityPeter Varga2023-01-091-1/+6
| | | | | | Pick-to: 6.5 Change-Id: I7128608467e4d0ce1b04efa9b82a98f78942d4db Reviewed-by: Allan Sandfeld Jensen <allan.jensen@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>
* Deprecate Quota Permission Request APIPeter Varga2022-12-081-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | 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 from container::count() and length() to size() - V4Marc Mutz2022-10-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix logic in bindViewAndDelegateItemMartin Negyokru2022-10-071-3/+9
| | | | | | | | | | | Updating adapterClient is required to Bind correctly. Bring back old logic from 6.3. Fixes: QTBUG-105953 Pick-to: 6.4 Change-Id: I8845948db379c24902df0dd2dad96982a1455531 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-221-38/+2
| | | | | | | | | | | 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>
* Cleanup item delegate logicAllan Sandfeld Jensen2022-06-221-39/+35
| | | | | | | | | Remove two indirect values we can calculate without tracking, and clean up naming in webenginequick. Pick-to: 6.4 Change-Id: Ibfab7013f314b428dca707036fe5f027558dff72 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Support HTML5 <datalist> elementPeter Varga2022-06-191-0/+14
| | | | | | | | | | | | | | | | | 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>
* Switch from QT_NO macros to feature checksAllan Sandfeld Jensen2022-06-101-2/+2
| | | | | | | | | | | This is safer by ensuring we are checking for a feature that is defined. For some reason, the openssl feature is a private feature, so we need to include the private header to access it. Pick-to: 6.4 Change-Id: Idf7f3baba33e5188f206f5be1b8a0bfd75e79d03 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Create a RWHV delegate in coreAllan Sandfeld Jensen2022-06-091-81/+65
| | | | | | | | | | This is adapting the Quick code for shared use with widgets, and allows us to use it from QWebEnginePage. Pick-to: 6.4 Fixes: QTBUG-96377 Change-Id: I3f09c1a949eff86d80fbe6c513dc66e3f9f2f611 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Include moc filesAllan Sandfeld Jensen2022-05-311-0/+1
| | | | | | | | Faster to build and gives smaller binaries Fixes: QTBUG-103291 Change-Id: Iab52995e03c13a4c5b185750028c449a19d98d93 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Implement File System Access permission APISzabolcs David2022-05-261-0/+8
| | | | | | | | | | | | Allow web pages to safely access the local file system by exposing a permission API. Permissions are stored in-memory. The built-in access rules are the same as the behavior of Chrome: JS can't request access to system libraries, sensitive directories and the application itself. Task-number: QTBUG-97829 Change-Id: Ic675422cafbad5a90243b4fa8f0749c46afa192c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Keep page's zoom level on loading new urlsKirill Burtsev2022-05-151-6/+12
| | | | | | | | | | | | 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. Pick-to: 6.3 6.2 5.15 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>
* Cleanup custom touch handles implementationMichal Klocek2022-05-101-36/+6
| | | | | | | | Do not introduce extra class nor dummy QML element. Fix docs. Change-Id: I9848f6865cd585779d89fe387ad97c27e7450eb9 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Quick: Add support for replacing touch handles with delegatesBalazs Egedi2022-05-041-19/+52
| | | | | | Task-number: QTBUG-85043 Change-Id: I1c87aff352e07eb309d5ba8747b9e50a191d478e Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix a few code checker warningsAllan Sandfeld Jensen2022-03-301-1/+1
| | | | | Change-Id: I0eb2cb362759e9a02a61993574906fc1e4b8ffeb Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Fix crash on WebEngine(View|Profile).userScripts.collection getKirill Burtsev2022-02-101-6/+28
| | | | | | | | | | | | | | | 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. Pick-to: 6.2 6.3 Fixes: QTBUG-96597 Change-Id: I61e76652a5d0fd5609070fd541816503908f2dc8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* webenginequick: Avoid deprecated QQmlListReference ctorFabian Kosmale2022-01-261-1/+2
| | | | | | | | | This doesn't modify the signature of appendExtraItems (which no longer requires the engine pointer) to keep the change minimal. Pick-to: 6.3 Change-Id: I2a649cd8d8e68c4c6e1a607d881f9180ac931032 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Do not access accessibility from qt post routinesMichal Klocek2021-11-161-1/+5
| | | | | | | | | | | | | | | | | | | It seems accessing accessibility from qt post routines ends badly since caches are gone already. Add closingDown() function to web context, which is similar to QCoreApplication::closingDown(), however return true on post routine. Guard delete accessibility calls. Note the widget part is not necessary, but added for completeness, since only qml can release profiles due to garbage collection. Fixes: QTBUG-90904 Pick-to: 6.2 6.2.2 5.15 Change-Id: Ic0e7115cd17eb58f3d58f70fefbc197dfb7a6493 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Add onTouchSelectionMenuRequested QML handlerBalazs Egedi2021-10-261-0/+11
| | | | | | Task-number: QTBUG-85043 Change-Id: Iecd2f5ae20fcf031937a1d44cc154f2e2a3ff52f Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix drag and drop againAllan Sandfeld Jensen2021-09-101-4/+4
| | | | | | | | | | Return the right QObjects Fixes: QTBUG-96308 Change-Id: If04be10fe19db6b8c0552c7df588961c711c1250 Reviewed-by: Michael Brüning <michael.bruning@qt.io> (cherry picked from commit e85e4ab275fb0a0c072f19ed3d5c5b5b46de8321) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Fix handling of new window requestKirill Burtsev2021-09-051-12/+8
| | | | | | | | | | | | | | | | | | | | 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 Pick-to: 6.2 Change-Id: Ic9dff33eae99cc242a294d45a92be96306cef93d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Restore enums for QQuickWebEngineView from old-new API classesKirill Burtsev2021-08-261-0/+18
| | | | | | | | | Restore SC, but at least deprecate these enums in view Pick-to: 6.2 Change-Id: Ic2a263b0ec175c56b8bf450fae9576bfefca2928 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Rename quick's 'newViewRequested' to 'newWindowRequested'Kirill Burtsev2021-08-181-10/+10
| | | | | | | | Match new api within the page API. Pick-to: 6.2 Change-Id: Ib2af2f5270f368813cecab8f1c6b7366d3b7172f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Hide unneeded Quick C++ APIsKirill Burtsev2021-08-171-1/+1
| | | | | | | | They are not supposed to be a part of public Quick API Pick-to: 6.2 Change-Id: Ib04ea022192d0eec559c28a48bc87fabda932564 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* WebEngineNavigationRequest: add accept/reject and deprecate setActionKirill Burtsev2021-07-211-5/+6
| | | | | | | | | | | | Match naming with others and use accept/reject methods to handle request. Also, allow to use request object after call scope in QML. [ChangeLog][QWebEngineQuick][WebEngineNavigationRequest] setAction(action) is deprecated in favor of new accept/reject methods Pick-to: 6.2 Change-Id: I83252370e2e83017008f6951f98b7ecad119e232 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Get rid of Quick's TestSupport APIPeter Varga2021-07-201-53/+4
| | | | | | | | | | | - Moved TestInputContext and TestInputEvent APIs to tst_qmltests. - Removed loadVisuallyCommitted and use Item.grabToImage to check if page is rendered. - Removed windowCloseRejected signal and use a hidden callback instead. Pick-to: 6.2 Change-Id: Ica6e4c6017426e0171d738a6a59afa557c786698 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Clean up quick APIPeter Varga2021-07-191-44/+50
| | | | | | Pick-to: 6.2 Change-Id: I9407d407b203b8e2bb13768e5a899624ea47282a Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Merge UI2DelegatesManager into UIDelegatesManagerBalazs Egedi2021-07-181-1/+1
| | | | | | | | | | Drop Quick Controls 1 support. Task-number: QTBUG-93666 Pick-to: 6.2 Change-Id: I68580ef4649141d3d1507fd207088794e7764d2a Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Get rid of private methods of QWebEngineNewWindowRequestPeter Varga2021-07-121-4/+6
| | | | | | Pick-to: 6.2 Change-Id: I40072b45ceffa1a2c92027a4c01239974b8ac498 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Remove outdated QT_VERSION_CHECKsAllan Sandfeld Jensen2021-07-091-4/+0
| | | | | | Pick-to: 6.2 Change-Id: I4c4b78af0bd7da5912b5e0136f9cfdb3c4268a7e Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Restore WebEngineNewViewRequest::openIn methodAllan Sandfeld Jensen2021-07-061-7/+7
| | | | | | | Pick-to: 6.2 Change-Id: Ib765970d4c57f742a53cd4d2c870b00628d527aa Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Remove Quick Controls 1 UIDelegates and introduce UIDelegates testBalazs Egedi2021-07-011-22/+1
| | | | | | | | | | | - Renamed Controls2Delegates to ControlsDelegates - Removed option to use Quick Controls 1 delegates - Added test to check if controls are shown Task-number: QTBUG-93666 Change-Id: Iccca948615309285db7fc57d14fb1cdcdef28051 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Use new qml registration system and new qml cmake apiMichal Klocek2021-06-231-1/+1
| | | | | | | | | | | | | | | | | To be able to use the new qml cmake api, which can also now generate plugin stubs and do the metatype registration, a project has to use specific project file structure, otherwise the meta type registration generator will fail to include properly headers. Shuffle a bit file locations for test_support and change how qml modules are built. We still need to keep plugin.cpp for ithe quick module plugin, because we use image providers and this requires the qml engine instance to register. Pick-to: 6.2 Change-Id: I083b58dac4edc586efca9fae821e5ea645cc2092 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add QPageRanges to PDF printingAllan Sandfeld Jensen2021-06-221-2/+5
| | | | | | | Pick-to: 6.2 Task-number: QTBUG-73497 Change-Id: I0a66c4f1767c54b0bcc9f9a3b61e29c43ec20177 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Clean up header includes and friend classes in corePeter Varga2021-06-171-0/+1
| | | | | | Pick-to: 6.2 Change-Id: I394821d57a9cf379869d3611996c8394fbc6c60e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Replace Q_NULLPTR and pointer 0 with nullptrAllan Sandfeld Jensen2021-06-101-3/+3
| | | | | | Pick-to: 6.2 Change-Id: Ifd7acf49b22be1532ba98371982af4b14f08e6fc Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Replace testsupport's QQuickWebEngineErrorPage with isErrorPageAllan Sandfeld Jensen2021-06-061-40/+6
| | | | | | | | | | | | | | | | Merge and unify handling of loading started/finished for quick and widgets by removing separate quick's type for monitoring error page load and replace it with an isErrorPage method in WebEngineLoadRequest to indicate, that load ended with an error page being displayed. Effectively this only slightly changes when loading finished gets emitted: now the signal is just postponed until error page is finished loading after initial failure. [ChangeLog][QWebEngineQuick][WebEngineLoadingInfo] New property 'isErrorPage' which indicates that the load resulted in an error page Change-Id: I3e59dc488429d776f7c8e083b6d0489fb30a65fc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Rename WebEngineLoadRequest to WebEngineLoadingInfoKirill Burtsev2021-06-041-8/+8
| | | | | | | | | | | | Rename it, since it's not a real request (in a sense that there is nothing to accept or reject), and it is also emitted on loading start and failure. [ChangeLog][QWebEngineQuick] WebEngineLoadRequest is renamed to WebEngineLoadingInfo Change-Id: I75b25da456eb4507451014070525a6a8e9d6753d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* WebEngineView: rename navigationHistory to historyKirill Burtsev2021-06-041-1/+1
| | | | | | | | | | Match widgets API name for the same QWebEngineHistory class [ChangeLog][QWebEngineQuick][WebEngineView] 'navigationHistory' property is now just 'history' Change-Id: I78507929baa84c8be08f79050568d04868171b3f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge WebEngineHistory's quick implementation into QWebEngineHistoryKirill Burtsev2021-06-041-3/+5
| | | | | | | | | | [ChangeLog][QWebEngineCore][QWebEngineHistory] New methods to access navigation history as a model through new class QWebEngineHistoryModel. [ChangeLog][QWebEngineQuick] QQuickWebEngineHistory is merged into QWebEngineHistory. Task-number: QTBUG-74585 Change-Id: I9f9a73bbaf3954282dfc220cfc2c4cb08a37fb73 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Replace FaviconManager with Chromium's Favicon ComponentPeter Varga2021-06-041-17/+14
| | | | | | Task-number: QTBUG-51184 Change-Id: Ie050cb23f2c86841a66ec384bfbcdf0713cffa7c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Move QQuickWebEngineNavigationRequest to CoreAllan Sandfeld Jensen2021-06-041-2/+2
| | | | | | | | | Adds navigationRequested() to QWebEnginePage and exposes more information about navigation requests than the old acceptNavigationRequest() method. Change-Id: Ibb8d750bacd1060c3086ffe2c85336abd216bab0 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Move createWindow to a signalAllan Sandfeld Jensen2021-06-031-32/+42
| | | | | | | | | | | | | | Ports QQuickWebEngineNewViewRequest to QtWebEngineCore. [ChangeLog][QtWebEngineQuick][WebEngineView] WebEngineView::NewViewRequested is now handled with WebEngineView::acceptAsNewView() instead of with WebEngineNewViewRequest::openIn(). Task-number: QTBUG-74587 Change-Id: I9b27128948076e13f2c228458e1e7491df12153d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Add WebEngineWidgets, WebEngineQuick modules cmake buildMichal Klocek2021-05-191-1/+1
| | | | | | | | | Fix some library dependencies and make proper header includes in core. Task-number: QTBUG-91760 Change-Id: I415361dd42ef2cc39716ce3f5f56e6e8556ac4c8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2021-05-121-3/+1
| | | | | | | | | | | | | | | | | | Conflicts: examples/webenginewidgets/printme/printhandler.cpp src/3rdparty src/core/api/qwebenginepage_p.h src/core/content_browser_client_qt.h src/core/web_contents_adapter_client.h src/core/web_contents_delegate_qt.cpp src/core/web_contents_delegate_qt.h src/webenginequick/api/qquickwebengineview_p_p.h tests/auto/quick/qmltests/data/tst_download.qml tests/auto/quick/qmltests/data/tst_viewSoure.qml tests/auto/widgets/loadsignals/tst_loadsignals.cpp tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp Change-Id: I9c1819ec15e13d4f8e244defe860e26274b5d4be
* Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2021-04-131-0/+5
| | | | Change-Id: Ia01415e5a44b1df9ed8b3966ff3b39a414b1563c
* Fix 'WebEngine' ambiguity for Qt6Michal Klocek2021-04-131-0/+2457
'WebEngine' is a qml module, however name itself is ambiguous. Thefore now with Qt6 and with cmake port name the module as WebEngineQuick. Change-Id: I948672dd5d389a01c6a31ec871459164fd989c0f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>