summaryrefslogtreecommitdiff
path: root/src/webenginequick/api
Commit message (Collapse)AuthorAgeFilesLines
* Test for presence of local frame in runJavaScriptAllan Sandfeld Jensen2023-05-161-1/+5
| | | | | | | | | 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>
* Add QWebEngineSettings::DisableReadingFromCanvasAnu Aliyas2023-04-242-0/+26
| | | | | | | | - disables reading from canvas. Fixes: QTBUG-84486 Change-Id: I3e181bfa6e351dea8dfa61f8010bafb94ea8a77d Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Add WebEngineView::save() convenience APIAnu Aliyas2023-04-203-1/+14
| | | | | | | | | | Add the convenience method QQuickWebEngineView::save for saving pages without the need to explicitly handle download requests. Task-number: QTBUG-56093 Change-Id: I67909fdca6472d1ea9b32e0f89c1ab90219bca3b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Support painting to Direct3D11 using ANGLEAllan Sandfeld Jensen2023-04-201-2/+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/+1
| | | | | | | | | | | | | 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>
* Replace WebEngineAction example with a snippetMichael Brüning2023-03-311-1/+9
| | | | | | | | | Also moves the example to the manual tests directory. Task-number: QTBUG-108751 Change-Id: Ie3fa492cfcaf61ee26ed65fa22954bb6a6532d6e Reviewed-by: Michael Brüning <michael.bruning@qt.io> (cherry picked from commit 23d1131577e1780de0552211a84357bcb1f63de5)
* Move custom dialogs example to manual testsMichal Klocek2023-03-221-0/+29
| | | | | | | | | | | | | This example shows how to use dialogs, however documentation already provides snippets for that added in 3cbe59e29a. The only missing one was tooltip, therefore add missing snippet and move example to manual tests. Task-number: QTBUG-108751 Change-Id: I84eda805455fb0276046ed1089389d605a8af672 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit 6bf30525ee49d270dae6a6440bc607513f21237c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* QWebEngineUrlResponseInterceptor: Implement new URL response interceptorYigit Akcay2023-03-102-0/+15
| | | | | | | | | | | | | | | | | | | | | 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-011-1/+3
| | | | | | | | | | | | 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>
* Fix filesystem request qml namespaceMichal Klocek2023-02-271-1/+9
| | | | | | | | | | Unfortunately in 3494efe5d440 we register request incorrectly which does not work as intended with qml. Fix it and add namespace to qml registry. Pick-to: 6.5 6.4 Change-Id: I6965dd0a9b65021cd9c290aaecef9fb9fd82735a Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Add missing foregin type for QWebEngineFileSystemAccessRequestMichal Klocek2023-02-211-0/+10
| | | | | | | | Add foregin type so it can be use within qml. Pick-to: 6.5 6.4 Change-Id: I8104874f2e898b170c8091a8fdeca450e59ae2a6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* 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>
* 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 deprecation of Quota Permission Request APIPeter Varga2023-01-181-1/+2
| | | | | | | | | | | | | 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>
* Fix build with -no-accessibilityPeter Varga2023-01-092-2/+6
| | | | | | Pick-to: 6.5 Change-Id: I7128608467e4d0ce1b04efa9b82a98f78942d4db Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Remove unused properties from QQuickWebEngineViewPrivatePeter Varga2023-01-092-3/+0
| | | | | | Pick-to: 6.5 Change-Id: I368d53e250cd06908db2c2dfb12d6227f835f136 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Remove setPushServiceEndpoint from APIMichal Klocek2022-12-222-28/+20
| | | | | | | | | | 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>
* Deprecate Quota Permission Request APIPeter Varga2022-12-083-10/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add Vulkan rendering supportPeter Varga2022-11-101-1/+4
| | | | | | | | | | Updates 3rdparty: * 8b7ce4ef70d Make GrVkImage external Task-number: QTBUG-107669 Change-Id: If7fbe1f20538598dd1d4f3a67be17c9f7d06a3cd Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Port from container::count() and length() to size() - V4Marc Mutz2022-10-114-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Enable Push MessagingSzabolcs David2022-09-122-0/+48
| | | | | | | | | | | | | | | | | | 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>
* Fix moc's namespace for qquickwebenginesingletonMichal Klocek2022-09-021-1/+2
| | | | | | | Fixes: QTBUG-106090 Pick-to: 6.4 6.3 Change-Id: If0572c92e5b9fe6ae44c2d93d38dfa0f68289994 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Various clean-upsPeter Varga2022-06-241-1/+0
| | | | | | Pick-to: 6.4 Change-Id: I53e04a247a25149d9f29135484c0528c706de7d8 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Use SPDX license identifiersLucie Gérard2022-06-2237-1406/+74
| | | | | | | | | | | 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-222-43/+39
| | | | | | | | | 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-192-0/+18
| | | | | | | | | | | | | | | | | 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>
* Protect against default profile being deleted before its pagesAllan Sandfeld Jensen2022-06-131-0/+2
| | | | | | | | | Can really only happen in QML on exit. Pick-to: 6.3 6.4 Task-number: QTBUG-99445 Change-Id: I1a04d57b6c4c40ae264b5519d2e41c57bca79a61 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Switch from QT_NO macros to feature checksAllan Sandfeld Jensen2022-06-102-4/+4
| | | | | | | | | | | 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-093-111/+70
| | | | | | | | | | 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-3110-0/+17
| | | | | | | | 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-263-0/+11
| | | | | | | | | | | | 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-152-6/+13
| | | | | | | | | | | | 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>
* Add NavigateOnDrop settingsAllan Sandfeld Jensen2022-05-132-2/+28
| | | | | | | | | | Some applications want this to avoid users navigating away from their app content. [ChangeLog][Settings] NavigateOnDropEnabled added, enabled by default. Change-Id: I2cc370f60ef42c708042cbc2503207f8254cf932 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Cleanup custom touch handles implementationMichal Klocek2022-05-104-93/+40
| | | | | | | | 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-045-22/+239
| | | | | | 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>
* Adaptations for Chrome 98Allan Sandfeld Jensen2022-03-292-0/+6
| | | | | Change-Id: I607604f85a111a69da77ca949dddf3399b9721b3 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix transitive includesShawn Rutledge2022-03-211-1/+2
| | | | | Change-Id: I6c7dfe29305548c3d68f8d26f46c9bea277d101d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add userScript docs for qml landMichal Klocek2022-03-103-1/+112
| | | | | | | | | | | | | | WebEngineScript docs were missing after moving classes to core. Moreover we changed WebEngineScript to be a qml value type and we introduced WebEngineScriptCollection to mirror C++ class. Add the documentation for WebEngineScript, WebEngineScriptCollection and WebEngine.script() method. Task-number: QTBUG-100404 Pick-to: 6.2 6.3 Change-Id: Ifed1bd1fa398a8634df0dc1bd44111e1a09ded04 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Add QML test for basic profiles and fix the docs accordinglyKirill Burtsev2022-02-171-10/+11
| | | | | | | | | 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. Pick-to: 6.2 6.3 Change-Id: I558a77dbec82d7f2b335b1a2ceca74ab66a1a6e9 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix crash on WebEngine(View|Profile).userScripts.collection getKirill Burtsev2022-02-109-20/+178
| | | | | | | | | | | | | | | 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>
* Guard against favicon provider being removed before ViewKirill Burtsev2022-01-281-1/+1
| | | | | | | | | | | Avoid using dangling pointer on view's destruction in case favicon provider was removed first by QML engine. Just use a QPointer since it's not used for anything much else internally in a WebEngineView. Pick-to: 6.2 6.3 Fixes: QTBUG-100032 Change-Id: I0560798a02bed02b0aabee61e1b0ae41a6e87d8a 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>
* FIXUP: Add onTouchSelectionMenuRequested QML handlerBalazs Egedi2021-12-232-3/+5
| | | | | | | | Fixed CodeChecker warnings, added missing documentation. Pick-to: 6.3 Change-Id: I723ea2b0952ded52f513a3cd53ac443b727f1e58 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>
* FaviconImageResponseRunnable: fix -Werror=deprecatedMarc Mutz2021-11-161-2/+2
| | | | | | | | | | C++20 deprecates [=]'s implicit capture of this, but the replacement [=, this] isn't available in C++17. So, need to bite the bullet and list every captured variable manually. Pick-to: 6.2 Change-Id: I47c62f9bf93e5d7b6c64cdbdac73bdcc9ecab8b5 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Fix qdoc warnings and enable zero warning limitVenugopal Shivashankar2021-11-151-4/+4
| | | | | Change-Id: Ifa2914e7bca9c224670a1891785d0ba8262cd61b Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Add onTouchSelectionMenuRequested QML handlerBalazs Egedi2021-10-265-0/+334
| | | | | | Task-number: QTBUG-85043 Change-Id: Iecd2f5ae20fcf031937a1d44cc154f2e2a3ff52f Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix "We mean it." warningsPeter Varga2021-09-231-0/+11
| | | | | | Pick-to: 6.2 Change-Id: I70a491617faff31901162cb382b388a7594816fa Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>