summaryrefslogtreecommitdiff
path: root/src/webengine/api/qquickwebengineview.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Refactor findText handlingPeter Varga2019-08-221-23/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move most of the findText logic to the QtWebEngineCore::FindTextHelper class. This change also separates findText callbacks in the new class for getting rid of the request ID conversion and make it easier to remove them in Qt6. Task-number: QTBUG-50420 Change-Id: I348cedd0f90a49f9b360165c46319aeed2c236c0 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | | Adaptations for Chromium 75Allan Sandfeld Jensen2019-07-101-4/+4
| | | | | | | | | | | | | | | Change-Id: Idad08244e0c749a9f70f5eb9f8cd236039b941b3 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | | Disable Cut/Copy/Unselect actions when there's no selectionJüri Valdmann2019-07-081-1/+8
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-76666 Change-Id: I74b9a26cd7be9a830f4eecd36db69777412ab316 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | | Merge remote-tracking branch 'origin/5.13' into devJüri Valdmann2019-07-021-0/+22
|\ \ \ | |/ / | | | | | | Change-Id: I806417dd7a6d2594a86ee49feedc4ad9ee48add2
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Allan Sandfeld Jensen2019-06-111-0/+22
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/3rdparty src/core/configure.json src/core/profile_io_data_qt.cpp tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp Change-Id: Ie8ae4aa03881a0733ff497fff46e3f7040735650
| | * Disable edit actions when content has no focused framePeter Varga2019-05-271-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-75505 Change-Id: Ia1329ff554a86e307aa7995e9af1665ea6c5e64c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Remove usages of deprecated QLatin1LiteralSona Kurazyan2019-06-251-1/+1
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-76491 Change-Id: I19762b1d04fd7225963ac4e0e90cac6ca01256f7 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | | Implement page lifecycle APIJüri Valdmann2019-05-241-6/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtWebEngine][WebEngineView] WebEngineView now supports lifecycle states that can be used for reducing CPU and memory consumption of invisible views. [ChangeLog][QtWebEngineWidgets][QWebEnginePage] QWebEnginePage now supports lifecycle states that can be used for reducing CPU and memory consumption of invisible pages. Fixes: QTBUG-74166 Fixes: QTBUG-55079 Change-Id: I7d70c85dc995bd17c9fe91385a8e2750dbc0a627 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | | Merge remote-tracking branch 'origin/5.13' into devAllan Sandfeld Jensen2019-05-161-0/+1
|\ \ \ | |/ / | | | | | | Change-Id: Idd02779e2910a792d50bb703ab92cd4da47f45fc
| * | Place popups in correct locations for transformed webengine viewsAllan Sandfeld Jensen2019-05-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Transform between global coordinates have the relative position to the window transforms and coordinates where they are not. Note, the content of the popup is not transformed yet. Task-number: QTBUG-73244 Change-Id: I74b75771e8b60b409ab82c6238308b2497c435ef Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devAllan Sandfeld Jensen2019-03-291-2/+6
|\ \ \ | |/ / | | | | | | Change-Id: Iab8e05beb7ede38bacaa35322d1f79cfc85cd470
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Allan Sandfeld Jensen2019-03-281-2/+6
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/3rdparty src/core/render_widget_host_view_qt.cpp src/core/web_contents_view_qt.h src/core/web_engine_context.cpp Change-Id: I17f3a4814e88a5680dc61a6d734c171ccba00e8c
| | * Fixup focus implementationAllan Sandfeld Jensen2019-03-211-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Follow the other implementation and pass TakeFocus to WebContents Delegate, and hook to our UI from there. Also fixes use of Blur instead of LostFocus, which means we now render unfocused more correctly. Change-Id: I34a1882489bc68b9ff36ed5139af0ee8a3a95b79 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devAllan Sandfeld Jensen2019-03-211-2/+2
|\ \ \ | |/ / | | | | | | Change-Id: If771fabe97c4d75edc4627999f04f70ca1901060
| * | Merge remote-tracking branch 'origin/5.12' into 5.13Allan Sandfeld Jensen2019-03-041-2/+2
| |\ \ | | |/ | | | | | | Change-Id: I1dd136df7004b11e2f38a2ec4e82a6fa81627479
| | * Force destruction of webcontent client before profile adapterMichal Klocek2019-03-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently users might forget to delete webcontent client before profile adapter. This might be nasty if users are not aware of default profile. Instead of asserting badly in chromium, clean up and release chromium resources. This avoids the crash, but might leak memory if users never deletes page. Task-number: QTBUG-74021 Change-Id: I66f466f169d12f7ee08866d505260dca47800bb0 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * Doc: Always treat \brief as full sentenceKai Koehne2019-02-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure all \brief descriptions start with an upper-case letter and end with a . Also start descriptions of \class with the name of the class or struct. Change-Id: Ifd2656201f9c1dff092085508a5423ce516e2d3f Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | | Add a way to customize tooltips in WebEngineViewSzabolcs David2019-02-191-1/+7
|/ / | | | | | | | | | | | | | | | | Implement a tooltipRequested signal and a corresponding request class to expose tooltip information to the users. Task-number: QTBUG-59290 Change-Id: I4e31773c62a65d6f340aaa74237cb0076252cd5b Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Web Notifications APIKirill Burtsev2019-02-061-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements API for end-user notifications. Co-authored by Allan Sandfeld Jensen [ChangeLog][Profile] Support for Web Notifications API for end-user notifications through QWebEngineNotification Task-number: QTBUG-50995 Fixes: QTBUG-51191 Change-Id: Icebaaa05275a713e801f1f8ecdaaec725fa264c8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Delete WebContentsAdapterClient::dpiScale()Jüri Valdmann2019-02-011-6/+0
| | | | | | | | | | | | | | It's always 1. Change-Id: I1c3d5bc3080da90379f03b6d0819c5656334751e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Implement touch text selection for QQuickWebEngineViewPeter Varga2019-01-311-0/+73
| | | | | | | | | | | | | | | | Touch handle and touch selection menu are not implemented for widget. Task-number: QTBUG-59999 Change-Id: Ia492e58b83d3ad38cdf6877d468724c399f34367 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Add support for client-certificate selection to QMLAllan Sandfeld Jensen2019-01-241-2/+11
| | | | | | | | | | | | Task-number: QTBUG-69363 Change-Id: I54d1df17d82bf2297f43762b0ba86a080bafee23 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Add configure for webengine and webenginewidgetsMichal Klocek2019-01-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Add possibility to build without widgets or qml support. Move module related options to webengine's subconfigure. Make proper dependencies between qml_module and qml_plugins. Cleanup headers. Fixes: QTBUG-68956 Task-number: QTBUG-70784 Change-Id: I4605d98b0d2c83c99af37e2186b5fbf10f8a6049 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devMichael Brüning2018-12-181-1/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | Conflicts: src/core/compositor/delegated_frame_node.cpp src/core/profile_adapter.cpp src/core/profile_io_data_qt.cpp src/webengine/api/qquickwebengineprofile.cpp src/webenginewidgets/api/qwebengineprofile.cpp Change-Id: I35ec8480e758bbcb6c5942a5401cb1b6dbdcc428
| * Avoid binding loops caused by default context menuSzabolcs David2018-11-291-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | When a WebEngineAction is tied to a UI element and a context menu request modifies its enabled state, the users get a warning: 'Binding loop detected for property "enabled"' Avoid triggering the action's notifier signal when the default context menu is being built. Change-Id: Ie23087f0b879399cf1cb88c44a42cd0be537a750 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Move printing operation to a new threadSzabolcs David2018-12-101-2/+2
|/ | | | | | | | | | | Printing operations were blocking the UI thread, so applications were irresponsive when printing in large size or high resolution. Introduce a new worker for the painting logic and use shared pointers to carry the data around and avoid copying PDF data between threads. Task-number: QTBUG-68561 Change-Id: I30633380b75acd14f1a1df87985c99540168a9f1 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Add standard icon names to Quick web actionsSzabolcs David2018-11-141-2/+21
| | | | | | | | | | | | Freedesktop.org has provided an icon naming specification to standardize access to system themes in various desktop environments. Add standard names where it is possible and remove non-standard ones. https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Change-Id: Ib0ea2364eb45e05bad6a521b8af7263283893198 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix quicknanobrowser crash on exitJüri Valdmann2018-11-021-4/+8
| | | | | | Fixes: QTBUG-71513 Change-Id: If3dfa048cfce57a1f10fa7bde3e7892e00fc8fa9 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Stop showing speculative framesJüri Valdmann2018-10-291-5/+55
| | | | | | | | | | | | | | | | | | | | | Chromium creates "speculative" frames (RenderFrameHost and company) for pending cross-process navigations (and maybe other navigations too). For example, a redirect from http://qt.io to https://qt.io will trigger this, as described in the bug report. These speculative frames are loading in the background and only shown once they are officially ready (as decided by the RenderFrameHostManager and signaled to WebContentsObserver::RenderViewHostChanged). At least, this is how it's supposed to work and how it works in Chrome. In WebEngine, however, we actually show these speculative frames as soon as they are created and before they are ready. This runs into the problem that the if the speculative frame is dropped (instead of committed), then Chromium will not ask us to re-show the old frame (since it hasn't actually asked to us to show the new frame, it naturally assumes we are still showing the old one). Fixes: QTBUG-68727 Change-Id: I9d53035ce60e3a002d5412d4473d940a32644b5d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Unify updating navigation actionsSzabolcs David2018-10-231-0/+9
| | | | | | | | | | On the Quick side, navigation actions were dependent on the context menu. They were only updated when requesting a new context menu and this is obviously wrong if an action is tied to a button or another type of UI element. Change-Id: I5f14b019b66215f16d027fb57d76f052b1604365 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Clean up WebEngineAction APIPeter Varga2018-09-201-7/+7
| | | | | | | | | - Rename iconText to iconName - Remove unused QQuickWebEngineAction::toggled signal - Remove argument of QQuickWebEngineAction::enabledChanged signal Change-Id: I37172c096003eea58e567753265abd91679dacf1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix issues with qml bindings accessing non-existing adapterMichal Klocek2018-09-121-72/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | We have currently two levels of initialization for WebEngineView: the profile initialization and the adapter initialization. The adapter initialization is delayed to first navigation request to pick the right initial site instance and avoid creating dummy/blank WebContents, which in turn would start unnecessary render process. Profile initialization is delayed to make sure we avoid unnecessary default profile creations. Created profiles use filestorage. Unfortunately qml will call QQuickItem::componentComplete() only when the root element is completed and the bindings can be already in use by that time. Profile initialization has to take place before adapter initialization. Construct adapter together with WebEngineView, but create and initialize profile before adapter initialization. Go through WebEngineView and fix emitting signals based on adapter initialization. Most of the signals are emitted on initializationFinished(). Task-number: QTBUG-70248 Change-Id: I2acd8bff761c692a360733cbf537de53e1295695 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Return http status code for successfully loaded pagesErwin Kandler2018-08-291-2/+2
| | | | | | | | | WebEngineView supports getting the http status code (error code) for failed loading requests only. This patch lets the user access the status code for successfully loaded pages as well. Change-Id: Ib8dbdfe94eed4d62e731c736c13f60ebd62a23fa Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix build without webchannelKai Koehne2018-08-281-0/+2
| | | | | | | Amends c4cded3fd5ba64. Change-Id: Ie0e01440e071ca01c6677a793ce0cc5f3f640ec7 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Do not force default profile on WebEngineViewMichal Klocek2018-08-251-19/+51
| | | | | | | | | Do lazy initialization for WebEngineProfile on WebEngineView. Fix unnecessary creation on default profile on destruction. Task-number: QTBUG-66068 Change-Id: I9a5889387ac64f0dc718a9e105c8d498aed47a43 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.11' into 5.12Michael Brüning2018-08-211-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf configure.json examples/webenginewidgets/markdowneditor/resources/3rdparty/marked.js examples/webenginewidgets/markdowneditor/resources/3rdparty/qt_attribution.json examples/webenginewidgets/markdowneditor/resources/markdowneditor.qrc mkspecs/features/platform.prf src/3rdparty src/core/media_capture_devices_dispatcher.cpp src/core/net/url_request_context_getter_qt.cpp src/core/net/url_request_context_getter_qt.h src/core/web_contents_adapter.cpp Change-Id: I467133ba455b1f85f6bb61793794c31cb1094541
| * Forward mouse and keyboard modifiers from QDropEventJüri Valdmann2018-07-131-1/+1
| | | | | | | | | | | | | | Task-number: QTBUG-69231 Change-Id: I35b503dae7e2d90b26b6e61a4c7c260e45df2b62 Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Make WebChannel an optional featureMichal Klocek2018-08-091-0/+18
| | | | | | | | | | | | | | Add webengine-webchannel feature. Change-Id: I600572180f8169aafe79cf0408527cc087d9a007 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Add printRequest()Michal Klocek2018-08-091-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Adds printRequested() signal for web content. This signal is emitted on javascript window.print(). This change updates also qt printview manager implementation, fixes a corner case and warnings about ipc unconsumed attachments. Task-number: QTBUG-69237 Task-number: QTBUG-53745 Change-Id: I0c47b732e27e929ac6db237fb562b7d5f9b959c2 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Introduce WebEngineAction in Quick APIValentin Fokin2018-08-021-46/+236
| | | | | | | | | | | | | | | | | | | | | | Also implement QQuickWebEngineView::action() method similar to the Widget API to access the WebEngineActions. [ChangeLog][QtWebEngine] Introduce WebEngineAction in Quick API Task-number: QTBUG-56117 Change-Id: I758cd4703db4c111c1ed9187e091d4c845486c46 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Create WebContents with initially_hidden = trueJüri Valdmann2018-07-161-0/+3
| | | | | | | | | | | | | | Task-number: QTBUG-69360 Change-Id: Ia17ce79a8221aa339c72763a984bf1958935ef96 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Rename BrowserContextAdapter to ProfileAdapterMichal Klocek2018-07-091-8/+8
| | | | | | | | | | | | | | | | | | Follow change of BrowserContextQt to ProfileQt. Fix wrong naming usage of browserContext instead of browserContextAdapter. Change-Id: I75fdac685d9bffd44f0144921d3e87305d6d44c9 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Enable client certificate storeAllan Sandfeld Jensen2018-07-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | Creates the default client cerficate store for the platform and when given a choice of client certificates forwards to the choice to the application. Only a Widgets API for now. Task-number: QTBUG-54877 Change-Id: Ie15152398d5769579fa0c07e3e3035c2374e9940 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Finalize change from BrowserContext to ProfileMichal Klocek2018-07-061-1/+1
| | | | | | | | | | | | | | | | | | | | Changes 6c319ce and af313cb splited BrowserContextQt into ProfileQt and ProfileIODataQt. Finalize the change and rename leftover browserContext references to follow the initial change. Change-Id: I845142b1edb67ec4b94439be1e6cfc841dd3f55c Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Fine tune configure and clean up header includesMichal Klocek2018-06-121-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously configure was generating two config headers qtwebengine-config.h and qtwebengine-config_p.h, however those headers were never installed or included as dependency in Makefiles. Moreover, due to the name clash all features were included into qt_lib_webengine_*.pri which is QtWebEngine QML module. Move configure to core so all features belong now to qt_lib_webenginecore*.pri. Fix global includes to include qtwebenginecore-config*.h. Drop all DEFINES and use QT_CONFIG instead. Cleanup all evil looking includes in headers for webengine and webenginewidgets. Change-Id: Iddbc8bf4487d9a5f0c19a71a9569535083507756 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Use range-based for instead of Q_FOREACHJüri Valdmann2018-06-061-2/+3
| | | | | | | | | | Change-Id: Ibf016b795ff98fddfa29fb5dc63924a2d2159d71 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.11' into dev" into ↵Michal Klocek2018-05-181-0/+7
|\ \ | |/ | | | | refs/staging/dev
| * Disable drag&drop on eglfs for qml appMichal Klocek2018-05-041-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The drag creates raster window, which on eglfs platform can be problematic. In case of running qml based browser without backing store, this will try to create a backing store during drag event, which will abort on eglfs. Therefore avoid the drag in qml in case the platform does not support multiple windows. This patch has the side effect of disabling drag even when qml runs with backing store, i.e. using QQuickWidget and therefore creating another raster window is not an issue. [ChangeLog][Behavior Changes] Drag&Drop is now disabled for QML based applications, when platform does not support multiple top-level windows (like EGLFS). Task-number: QTBUG-57516 Change-Id: I0c2685ba90914fe1f7168c79744c55e07e589488 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Change BrowserContextAdapter to be QPointerMichal Klocek2018-05-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BrowserContextAdapter is living and accessed only in UI thread, remove QSharedPointer usage and change QWebengineProfile to use QPointer. Prevent BrowserContextAdapter outliving WebEngineContext by setting globalObject as a parent to track WebEngineContext destruction. This commits tries to simplify the life cycle handling of browser context, it removes profile shutdown methods and QWebEngineBrowserContext, which was used to track profile destruction. Task-number: QTBUG-62147 Change-Id: I79f2c38a123cd053e3a59f4900afbdc759a396fe Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Remove keeping browser context as shared pointer in web context adapterMichal Klocek2018-05-181-5/+16
|/ | | | | | | | | | | | | | | | | | | In widgets we document that web contents can not out live browser context ie. WebEngineProfile can not be deleted before WebEnginePage which uses it. In qml we can not be sure the order in which objects are garbage collected. We used shared pointers to keep order of destruction. Unfortunately shared pointers do not work well with corner cases, and we added more and more code to deal with that (shutdown methods + qpointers wrapping qsharedpointers). In order to remove growing complexity remove usage of shared pointers to keep strict deletion order. Remove shared pointer from WebContentsAdapter and simply track the WebContents, that is used by the given BrowserContext. Force deletion of webcontents first. Change-Id: I05f886a0094d971b03f9a35e12c4b4672f0fe4ce Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>