summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets
Commit message (Collapse)AuthorAgeFilesLines
* Select opengl RHI backend while we still use QQuickWidgetAllan Sandfeld Jensen3 days1-0/+2
| | | | | | | QQuickWidget depends on using the OpenGL backend. Change-Id: I3679e90723930b3fd627a0ce03935dcca0372212 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Move scenegraph handling out of coreJüri Valdmann3 days3-35/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace Display{Producer,Consumer,FrameSink} with the new classes Compositor and Compositor::Observer. The Compositor subclasses are implemented by the OutputSurfaces, replacing DisplayProducer in this role. Unlike DisplayProducer, the new classes do not use QtQuick scenegraph types, but rather give access to the software QImage or OpenGL texture directly. The connection to the "other half" is simplified by replacing DisplayConsumer with Compositor::Observer, which is no longer implemented by RenderWidgetHostViewQt, but directly by its delegates in the quick and widgets libraries. RenderWidgetHostViewQt now only provides the delegate with a Compositor::Id which is used to connect the corresponding Compositor and Observer. The delegates are responsible for generating QtQuick scenegraph nodes from the information provided by the Compositor subclasses. Behavior with software and old OpenGL scenegraph backends is unchanged: both continue to work. As for the RHI scenegraph backend, the code here is correct but nonetheless not working: changes are needed in qtbase to make RHI use the global share context for its OpenGL context. Fixes: QTBUG-78682 Change-Id: I837da8860a18ec366ed33f6ecc44c147245e1101 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Adapt to newer dependenciesAllan Sandfeld Jensen3 days1-0/+1
| | | | | | Change-Id: I495880f56fbc10d8f332f26101f8a25c2a1c5631 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Add ; to Q_UNUSEDLars Schmertmann13 days2-4/+4
| | | | | | | | This is required to remove the ; from the macro with Qt 6. Task-number: QTBUG-82978 Change-Id: Id948c173695923a1ea83a2098bafc10cfd4dc22b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Refactor RenderWidgetHostViewQtPeter Varga2020-06-171-0/+2
| | | | | | | | Make RenderWidgetHostViewQtDelegateClient class instantiable and remove its implementation from RenderWidgetHostViewQt. Change-Id: Idcad3a805defe8b910f418b91f14808b6dbf083b Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2020-05-281-7/+23
|\ | | | | | | Change-Id: I40d9ae90a4ea82c6242f5d0a1665af3856ad2f0b
| * Delete unused function editorActionForKeyEventJüri Valdmann2020-05-252-23/+0
| | | | | | | | | | | | | | Change-Id: I5fe08380e297cdf8138df0b49b3c82e741f54dd1 Pick-to: 5.15 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 3472641433d0adab3caea008f047aac9637828c4)
| * Add support for clearing the feature requestAllan Sandfeld Jensen2020-05-201-7/+23
| | | | | | | | | | | | Task-number: QTBUG-83476 Change-Id: I63ad9801e3e97f7fdac959600c69c04d0105be1f Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* | Delete unused function editorActionForKeyEventJüri Valdmann2020-05-202-23/+0
| | | | | | | | | | | | Change-Id: I5fe08380e297cdf8138df0b49b3c82e741f54dd1 Pick-to: 5.15 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2020-05-156-36/+34
|\ \ | |/ | | | | | | | | | | Conflicts: src/pdf/quick/qquickpdfselection_p.h Change-Id: I6eec37a01347c2d47cbfc1114326dfc6b58719ff
| * Switch away from QT_NO_OPENGLAllan Sandfeld Jensen2020-05-112-4/+4
| | | | | | | | | | Change-Id: I310265dacc9b1c8d391e82b6adf52b70c037d9b9 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
| * Document early feature reply for NotificationAllan Sandfeld Jensen2020-05-051-3/+4
| | | | | | | | | | | | | | | | | | Make it easier to get right by normalizing the origin and test it. Task-number: QTBUG-83476 Change-Id: Ie4562e937cbcca5a1cf24e00d340a3ac2e9e2210 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
| * Revive Pointer Lock featureSzabolcs David2020-05-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change fixes several issues: - Accepting mouse lock permission from modal dialog was not working on Linux. XCB needs some time to activate the parent window after accepting the dialog and we expected to have immediate active focus. - Implementation of RenderWidgetHostViewBase::IsMouseLocked() was missing. - Fixed event.movementX/movementY by disabling ConsolidatedMovementXY feature. Calculate movement properties in WebEngine instead of blink. Task-number: QTBUG-83294 Change-Id: Ic03d05c1026a113cf5e8d22544fc508d9f285876 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Merge remote-tracking branch 'origin/5.15.0' into 5.15Allan Sandfeld Jensen2020-04-304-25/+20
| |\ | | | | | | | | | Change-Id: I916838caf8c981d5dac876631a6e510ed2ffbe0e
| | * Restore behavior of OpenURLFromTab if createWindow returns thisJüri Valdmann2020-04-262-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of using QSharedPointer's reference count to communicate adoption/non-adoption, change adoptNewWindow to return a adapter pointer, with null meaning non-adoption. Then change QWebEnginePage's implementation to reuse already existing adapters if possible, restoring previous behavior of OpenURLFromTab when createWindow returns this. Task-number: QTBUG-80596 Change-Id: I8ee7c31e4294aabd3207c504cba67d6171c66cb0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * Fix crash if createWindow returns this for AddNewContentsJüri Valdmann2020-04-262-22/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For a QWebEnginePage subclass where createWindow returns the this-pointer, we get a crash in WebContentsDelegateQt::AddNewContents because AddNewContents expects the adapter to be adopted already, but QWebEnginePage delays adoption. Revert 3855015600 by getting rid of the delayed adoption code path. It's not needed anymore with the delayed initialization of the WebContentsAdapter. Revert 8a4091c210 by forcing adoption of the adapter even when it doesn't have contents. This no longer results in a crash since OpenURLFromTab ensures that the adapter is initialized before use. However, it does result in a behavior change since return-this now consistently overrides the adapter, so, e.g. navigation history is now always cleared whereas previously it was only cleared by the AddNewContents code path. Fixed with new approach in next patch. Fixes: QTBUG-80596 Change-Id: I4d2230c1bffcf2d77fa59ded9be51da49a820474 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
| | * Forward unhandled scroll eventsAllan Sandfeld Jensen2020-04-222-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | Fixes a regression in webengine stealing all wheel events. Fixes: QTBUG-81322 Change-Id: I0176627f3e13d97f55162f70fc7a969f98f4f444 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
| * | Fix missing QWebEnginePage::audioMutedChanged signalJüri Valdmann2020-04-291-2/+4
| |/ | | | | | | | | Change-Id: Ie02da939a37575dd2b0a43440978748fd79874e4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2020-04-277-39/+53
|\ \ | |/ | | | | | | | | | | | | Conflicts: configure.pri src/pdf/api/qpdfpagerenderer.h Change-Id: I7e68277080e29238bbfe8511539ea75b2db89489
| * Move request interceptor to ui threadMichal Klocek2020-04-203-19/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | We use now network service avoid io-ui-io-ui hops, pipe proxying url loader factory directly to ui thread. This solves thread safty issues. Add deprecated request interceptor test cases. Task-number: QTBUG-83082 Task-number: QTBUG-82999 Change-Id: I38778cf1a70789c5e92e04c93d1c93e2cc4c765a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Join some features request and response functionsAllan Sandfeld Jensen2020-04-152-14/+21
| | | | | | | | | | | | | | Will make it easier to expands with more features in the future Change-Id: Ic7c1aca23a543c95a4873471c918f74606be2053 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
| * Merge "Merge remote-tracking branch 'origin/5.14' into 5.15"Allan Sandfeld Jensen2020-04-142-6/+19
| |\
| | * Merge remote-tracking branch 'origin/5.14' into 5.15Allan Sandfeld Jensen2020-04-102-6/+19
| | |\ | | | | | | | | | | | | Change-Id: I75f7bbf5e5a4d4ed3bf7bfbfb76162de8a89e6fa
| | | * Avoid HTML encodings in default JS QMessageBox'es5.14Allan Sandfeld Jensen2020-04-081-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Escape any HTML encodings, as we have no convenient way to set formating to Qt::PlainText. Fixes: QTBUG-83338 Change-Id: I4d8cb05fe643eb018d3e40119c629e7304fe0813 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
| | | * Doc: Fix docs for playbackRequiresUserGesture WebEngine settingLeena Miettinen2020-04-021-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-83101 Change-Id: I7ca8271cc88c7e157c36c79e06fa378f4bce48e4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * | | Fix builds against Qt 5.12v5.15.0-beta4Allan Sandfeld Jensen2020-04-101-0/+7
| |/ / | | | | | | | | | | | | | | | | | | We need to provide the last update possibility for Qt 5.12. Change-Id: I3dbf327ad5ef149046744ed2db57a1d56dc8e7fd Reviewed-by: Michal Klocek <michal.klocek@qt.io>
| * | Adaptations for Chromium 80Allan Sandfeld Jensen2020-04-072-0/+4
| | | | | | | | | | | | | | | Change-Id: Icaf68648cbc2c13a61fc3b208ff1e64ca36c90b6 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | | Fix building dev with newer QtBaseAllan Sandfeld Jensen2020-04-241-1/+0
|/ / | | | | | | | | Change-Id: I0d52e4f6684425cb15319760e0001bdb13846997 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Allan Sandfeld Jensen2020-03-035-5/+39
|\ \ | |/ | | | | | | | | | | Conflicts: tests/auto/quick/qquickwebengineview/BLACKLIST Change-Id: I365daa73d2eb422ac916c32b86c5ad0d3c32086d
| * Invalidate accessible interfaces on destruction of view or pagePeter Varga2020-02-275-5/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RenderWidgetHostViewQtDelegate(Widget|Quick)Accessible interfaces are forwarding their queries to the WebEngineView. In case of widget, the view also forwards the query to the page. The accessible interfaces may outlive the view and page. The interfaces are not supposed to be used after the destruction of the underlying objects. Thus, set the RenderWidgetHostViewQtDelegate and WebEngineView accessible interfaces invalid if the corresponding pointers are null. Also fix querying the root accessible interface of the web page when the render frame host is not available. This fixes crash when QT_LOGGING_RULES="qt.accessibility.cache.debug=true" is set and logger tries to pretty-print QAccessibleInterfaces during destruction. Task-number: QTBUG-78284 Change-Id: If18af0605061fcd82d019d0042dbf1c9d3a910be Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* | Adaptations for Chromium 78Allan Sandfeld Jensen2020-02-281-2/+1
| | | | | | | | | | | | | | | | | | | | Including removal of renderer service. [ChangeLog][QWebEngineSetting] XSS Auditing has been removed, and XSSAuditingEnabled no longer has any effect. Change-Id: I0835e2a76551057f3eea30a343e0373b642192f0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Allan Sandfeld Jensen2020-02-271-4/+3
|\ \ | |/ | | | | | | | | | | | | Conflicts: src/core/renderer_host/web_channel_ipc_transport_host.cpp tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp Change-Id: I47f2b893bc9f27cd9df641f76badc9e53b482ad4
| * Fix docs for page url request interceptorsMichal Klocek2020-02-211-4/+3
| | | | | | | | | | | | | | Profile interceptors run also on ui thread. Change-Id: Iacfce46549e7ffd821033308077ba5f4fa410575 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.14' into 5.15Jüri Valdmann2020-02-034-4/+64
|\ \ | |/ | | | | Change-Id: I349a4ecbbd9d3d121ca6564db77e417872246554
| * Fix widget accessibility on macOSPeter Varga2020-01-244-4/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | macOS Accessibility queries the window for the focused accessibility element. The window forwards the query to the widget with active focus. This widget is the RWHVQtDelegateWidget if a web element is focused in QWebEngineView. Therefore, a QAccessibleWidget interface has been implemented for the RWHVQtDelegateWidget to forward the request to the QWebEngineView. The focused accessibility element expected to be returned by the QAccessibleInterface::focusChild() method. In case of the macOS accessibility backend, it is called by the accessibilityFocusedUIElement() NSAccessibility API function. It expects the focused web accessibility element otherwise VoiceOver won't focus properly. The focused web accessiblity element is looked up by the new BrowserAccessibilityQt::focusChild() method. RenderWidgetHostviewQtDelegateWidget::focusChild() and QWebengineViewAccessible::focusChild() methods have been also implemented to forward it. This patch depends on a focusChild() fix in qtbase: a132e02540 Fix QAccessibleWidget::focusChild() to return focused descendant Microsoft Narrator also uses focusChild() to query the current focused element when it starts but it is still functional without this fix. Task-number: QTBUG-78284 Task-number: QTBUG-81539 Change-Id: I3c4861e58622ccbb5046c60c4efcc19842400a88 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Add getter/signal to get the render process PIDFlorian Bruhin2020-02-013-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | This can useful for e.g. implementing something like the "Task manager" in Chromium or otherwise interacting with the render process (e.g. to kill it for some reason while debugging). [ChangeLog] Add a renderProcessPid() getter to (Q)WebEnginePage which allows getting the process ID of the underlying render process. Change-Id: Id5d59be9b6bd46ffc3a6aa480cb5ff7bd3b8aa31 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Fix deprecation warningsKirill Burtsev2020-01-191-2/+2
|/ | | | | | | | | | | Suggested changes: * endl -> Qt::endl * {} for default QFlags * QString -> QStringLiteral for QStringList::join * QNetworkReply::error -> networkError Change-Id: I03919ab0675a9beb64bd176e6c681a338b08b51e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Rework url changed logicMichal Klocek2020-01-142-9/+13
| | | | | | | | | | | | | | | | | | | | | | Due security changes to prevent url spoofing, our implementation is getting extra invalidate url requests. Unfortunately, this breaks our url handling, which now gets lots of new back and fort url changed signals and make several unit test failures. After tedious investigation of Chromium omnibox handing and trying out different approaches, it seems that only sensible solution is to follow Chromium logic and make NavigationStateChanged to update 'ui' in asynchronous matter. This change tries not break any tests and simplify url handling. The only side effect of this change is that WebEnginePage::setContent will get extra 'url' signal of initial 'urlData' and later 'baseUrl' change is emitted. Fix one of qml tests which did not expect to have url on LoadStartedStatus. Task-number: QTBUG-63388 Task-number: QTBUG-48995 Change-Id: Id347f4325c036e16bfae7bf2f694905e0f21f8d7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix Q(Quick)WebEngineDownloadItem::setDownloadDirectory()Tamas Zakor2019-12-182-5/+10
| | | | | | | | | | | | | | | | | | Keep the custom file name if the calling order of setDownloadDirectory() and setDownloadFileName() changes. Also do not emit patchChanged signal twice if setDownloadDirectory() changes the uniquifier of the file name. Add TempDir for qml auto tests what uses QTemporaryDir() to create temporary directory for downloads. See https://cgit.kde.org/messagelib.git/commit/?id=2c113dcb155b11bf2c0af3c85544962485784b26 for details. Fixes: QTBUG-80566 Change-Id: Ia76f263558eaf55cb297700407948523788c6229 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.14.0' into 5.14Allan Sandfeld Jensen2019-12-043-3/+5
|\ | | | | | | Change-Id: I4f73d4b11bee795185d4eaae718d4cfdb3112100
| * Fix 'setDownloadDirectory' for download item on 'SavePage' actionKirill Burtsev2019-11-293-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Chromium's DownloadManager doesn't create its download items before path for saving page is confirmed. So assert inside updateDownloadPath was not correct. Moreover, the name is confusing because it's not really updating anything. Remove it and use ProfileAdapterClient::DownloadInfo timestamp to determine updated filename after directory change. Ammends recent new api for changing download directory 0884fab3b1. Fixes: QTBUG-80372 Change-Id: If9efb52979deb3cf21fc4e12989173c85e04e090 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Fix regression in alt attribute of copied image urlsAllan Sandfeld Jensen2019-11-301-7/+19
| | | | | | | | | | | | | | | | The linkText hasn't had the alt attribute for a long time, so instead add direct support for contextual title and alt text. Change-Id: I88e1c43374d855da7fb0d1ca42c0eb474012f0f2 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* | Support accept attribute of file inputSzabolcs David2019-11-291-5/+3
|/ | | | | | | | | Set name filters of QFileDialog and QML FileDialog to avoid presenting all file types. Task-number: QTBUG-76564 Change-Id: I321214a30bc7e875ad132b015c63282f4eb482bf Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.13' into 5.14Allan Sandfeld Jensen2019-11-141-26/+16
|\ | | | | | | Change-Id: Id70f0288cb1f2df758c9fd21f02a5c037594b25c
| * Redo scale handling of pdf when printingMichal Klocek2019-10-311-26/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 7f89bad our printer handling produces low quality images, the reason for that is the we first render with pdfium to bitmap which is fixed to twice size of pdf document in points, then it is downscaled/upscaled by qpainter. This issue is even more visible when print preview is requested on hdpi screen. Simplify the code and do the "scaling" already when rendering bitmap with pdfium. Task-number: QTBUG-75092 Fixes: QTBUG-78161 Change-Id: I616ad1f371e7d3457a04b0a254603ed235c387bc Reviewed-by: Michael Brüning <michael.bruning@qt.io>
| * Reuse action for back, forward, reload web actionsMichal Klocek2019-09-261-6/+3
| | | | | | | | | | | | | | | | | | Until now back, forward, reload web action where created for context menu and bind to current webview. This change makes the binding to page instead. Change-Id: Id27db4a110e624f6ea916f31f529c21caa35668b Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Deprecate QWebEngineDownloadItem path API properlyTamas Zakor2019-11-051-2/+6
| | | | | | | | | | | | | | | | Implements suggestion from 5.14 API review: - Replace QT_DEPRECATED with QT_DEPRECATED_SINCE and QT_DEPRECATED_VERSION_X Change-Id: I4d0bf8a2b535c44b5749cbd3bbab7e305bd137c6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.13' into 5.14Allan Sandfeld Jensen2019-10-221-6/+3
| | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/webengine/minimal/main.cpp src/3rdparty src/core/net/url_request_custom_job.cpp tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp Change-Id: I33994024a4be5ed787800c5718a0a443b970c36d Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Rename certificate error's chain API methodKirill Burtsev2019-10-172-5/+5
| | | | | | | | | | | | | | | | Address API review and make the name to be consistent with other methods like localCertificateChain and peerCertificateChain of QSslCertificate Change-Id: I4f115846965d31ea9a20df3b7a27c6c041c52768 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Adaptations for Chromium 77Allan Sandfeld Jensen2019-10-111-2/+2
| | | | | | | | | | | | Fixes: QTBUG-77267 Change-Id: I181e24cf80ebee6991b95dde6c636f0d169b40a4 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>