summaryrefslogtreecommitdiffstats
path: root/src/core/web_contents_view_qt.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Adaptations for 90-basedAllan Sandfeld Jensen2021-07-131-21/+23
| | | | | | Change-Id: I8402b044d8e12d75e144a00984b856f3de10bffd Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> (cherry picked from commit 1d988d971bc4270ba3d148e8e2c143bf8f625b6e)
* Clean up header includes and friend classes in corePeter Varga2021-06-171-9/+3
| | | | | | | Change-Id: I394821d57a9cf379869d3611996c8394fbc6c60e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> (cherry picked from commit 450a491b2d6c74512a3f30c0fb15eabd51e15cbc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Adaptations for Chromium 88Allan Sandfeld Jensen2021-04-151-5/+0
| | | | | Change-Id: Ie66e95dbb9fbcafe961bb98d5c277f8c32d66b96 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2021-03-161-2/+1
|\ | | | | | | Change-Id: I0dd7c64669f4b130047a4a3836f62f7ee5b5f8d9
| * Show PDF viewer in a guest viewSzabolcs David2021-03-061-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the basic support of guest views, implemented based on Chrome. - Embed PDF as a child frame instead of navigating to its extension WebUI. Keep the original URL (pointing to the file) to extend functionality of PDF viewer with URL parameters. - Make RenderWidgetHostInputEventRouter to work and modify most of the event forwarding logic to use that. This way WebEngine supports pages with multiple RenderWidgetHost and guest views can be interactive with user input. [ChangeLog] PDF files are opened as embedded objects, WebEngine will not navigate the content away from the requested file to present it. PDF viewer can accept URL parameters (e.g. to control zooming or fitting to view). Also, PDF viewer is interactive when displayed in a subframe. Task-number: QTBUG-80463 Task-number: QTBUG-86152 Task-number: QTBUG-90712 Change-Id: Ib1591fbd9a594891cdeace8e9dae0d3cc21a9f8e Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2021-02-171-5/+0
|\| | | | | | | Change-Id: Idee0142b0e33fdf8ca663f1ef1bcd8b932985043
| * Match Chrome behavior closer with extensionsAllan Sandfeld Jensen2021-02-051-5/+0
| | | | | | | | | | | | | | | | | | | | | | Set most of the exceptions chrome does, and register the performance manager earlier where chrome does. Needed for future extensions. Change-Id: I0d16882d87096bedb24abe1341a008d1fdacf6db Reviewed-by: Szabolcs David <davidsz@inf.u-szeged.hu> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2021-01-251-27/+29
|\| | | | | | | | | | | Including update to 87-based Change-Id: I36b6054e00de97ab055d0bc800cff08d0408fac6
| * Register PerformanceNode early enoughAllan Sandfeld Jensen2021-01-151-0/+12
| | | | | | | | | | | | | | Must be created before RenderFrame. Change-Id: I4ee121f6ad6a77fc48d12bc56b1fdb82ec97139b Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
| * Adaptations for Chromium 87Allan Sandfeld Jensen2021-01-131-7/+7
| | | | | | | | | | Change-Id: Ic4ffd98e02f986dbaf986405360e727c813e696e Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
| * Adaptations for Chromium 85Allan Sandfeld Jensen2021-01-131-7/+8
| | | | | | | | | | Change-Id: I33c1af7c431055d95e0fb540246765cce684de15 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
| * Adaptations for Chromium 84Allan Sandfeld Jensen2021-01-131-4/+0
| | | | | | | | | | Change-Id: I359805d0bea84147fca6de2e2c7b17b4dcb17bc7 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Small refactor of startDraggingMichal Klocek2020-11-131-2/+3
| | | | | | | | | | | | | | This is required to decouple 'view' logic from page. Change-Id: I84ef8cf729ef87d9339cae3f1bb1f0c709035ccf Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2020-09-141-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty src/core/certificate_error_controller.cpp src/core/certificate_error_controller.h src/core/compositor/compositor.cpp src/core/compositor/compositor.h src/core/compositor/display_gl_output_surface.cpp src/core/content_browser_client_qt.cpp src/core/core_chromium.pri src/core/delegated_frame_host_client_qt.cpp src/core/ozone/gl_share_context_qt.h src/core/ozone/surface_factory_qt.cpp src/core/permission_manager_qt.cpp src/core/render_widget_host_view_qt.cpp src/core/render_widget_host_view_qt.h src/core/web_engine_context.cpp src/core/web_engine_settings.cpp src/core/web_event_factory.cpp tests/auto/widgets/qwebenginedownloadrequest/tst_qwebenginedownloadrequest.cpp Change-Id: Ice14c3c350b139e800c7c7011b7cef1fc7010669
| * Adaptations for Chromium 83Allan Sandfeld Jensen2020-09-091-1/+1
| | | | | | | | | | Change-Id: I63ed851426b18623d549ceaf87f1b6eeec527966 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Merge all webenginecontextmenudata wrappers into one classMichal Klocek2020-08-121-66/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce new class qwebenginecontextmenurequest in core which merges: * qquickwebenginecontextmenurequest * qwebenginecontextmenudata * implictly shared webenginecontextdata Unfortunately new class has to be QObject, since we want to reuse it qml. Q_GADGET can be used only as a value type, however we need to know if request is accepted or not in qml, therefore it must be passed as pointer. Since we use QObject now, class is no longer implicitly shared, however we only allocate request once and reuse the object for every new request (it is still copied in qml just to keep it aligned with other request handlers) [ChangleLog] QWebEngineContextMenuRequest is replacement for QWebEngineContextMenuData Change-Id: Ib387ec2065361a4bacc20675ca7352ab75a0e436 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | Refactor RenderWidgetHostViewQtPeter Varga2020-06-171-3/+3
|/ | | | | | | | Make RenderWidgetHostViewQtDelegateClient class instantiable and remove its implementation from RenderWidgetHostViewQt. Change-Id: Idcad3a805defe8b910f418b91f14808b6dbf083b Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Adaptations for Chromium 80Allan Sandfeld Jensen2020-04-071-18/+20
| | | | | Change-Id: Icaf68648cbc2c13a61fc3b208ff1e64ca36c90b6 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Adaptations for Chromium 79Allan Sandfeld Jensen2020-02-281-1/+1
| | | | | | | | Fixes: QTBUG-80737 Fixes: QTBUG-81556 Fixes: QTBUG-81614 Change-Id: Ie6a69cdbf46d0508bff226f1b8fed28a618e1949 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix regression in alt attribute of copied image urlsAllan Sandfeld Jensen2019-11-301-0/+2
| | | | | | | | 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>
* Merge remote-tracking branch 'origin/5.12' into 5.13Allan Sandfeld Jensen2019-03-281-13/+27
|\ | | | | | | | | | | | | | | | | | | | | 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-13/+27
| | | | | | | | | | | | | | | | | | 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>
* | Remove hack with passing WebContentsAdapterClient as NativeViewAllan Sandfeld Jensen2019-02-181-10/+19
| | | | | | | | | | | | | | | | Instead delay creating our render view just a little bit further in WebContentImpl::OpenWindow until it calls delegate->WebContentsCreated() Change-Id: Idd911d208bbfe419a2567220933eccb2ba726347 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Delete WebContentsAdapterClient::dpiScale()Jüri Valdmann2019-02-011-1/+1
| | | | | | | | | | | | | | 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/+6
| | | | | | | | | | | | | | | | 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>
* | Adaptations for Chromium 71Allan Sandfeld Jensen2019-01-281-2/+5
|/ | | | | | | Change-Id: Ib650113b05dfd4771240804f94e33c07aa317bf2 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Stop showing speculative framesJüri Valdmann2018-10-291-2/+0
| | | | | | | | | | | | | | | | | | | | | 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>
* Cleanup web_contents_view_qt.hAllan Sandfeld Jensen2018-10-211-0/+3
| | | | | | | It had too many headers, and many files depending on its over inclusion. Change-Id: I5add1c4e07a14e017ac60db75efab5fc11e4166f Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* General adaptations for Chromium 69Allan Sandfeld Jensen2018-09-221-11/+0
| | | | | Change-Id: Ifeaf0ee13213dc5a24d2f2b4655cf7f405cddef7 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Rename BrowserContextAdapter to ProfileAdapterMichal Klocek2018-07-091-2/+2
| | | | | | | | | 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>
* Migrate from BUILDFLAG to QT_CONFIGMichal Klocek2018-07-021-2/+2
| | | | | | | | | | | During configuration we mapped qt webengine fetures to chromium ones and passed them to gn. We used BUILDFLAG to optionally compile code in core. Use QT_CONFIG directly for qt files and add config sanity checks to make sure requested features are present. Change-Id: I930df114ac9aec8e73139ea9135925fc3ad8e39c Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Adaptations for Chromium 67Allan Sandfeld Jensen2018-06-261-1/+1
| | | | | Change-Id: I13cedba56012f74651a044d6fa8f0957487bf3eb Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Adaptations for Chromium 66Allan Sandfeld Jensen2018-06-261-6/+0
| | | | | Change-Id: Iee88721a50036d4ef85a23dd1708d4fb84218708 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Disable drag&drop on eglfs for qml appMichal Klocek2018-05-041-0/+6
| | | | | | | | | | | | | | | | | | | | | 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>
* Make sure we can build with -no-feature-draganddropJoerg Bornemann2018-04-171-0/+4
| | | | | | Change-Id: Ib6763a8a3e1ac1ac98caef39f7e6e75c18344424 Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Basic adaptations for 64-basedAllan Sandfeld Jensen2018-03-151-0/+15
| | | | | Change-Id: I11e2da206e4e59872a38c178f57a5879c1bbf229 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Make default context menus look more like chrome's oneValentin Fokin2018-02-021-0/+12
| | | | | | | | | | | | | | - Implement EditFlags in ContextMenuData - Unify Quick and Widget default context menus - Add workaround for QTBUG-65044 - Update the SimpleBrowser example and its documentation [ChangeLog][QtWebEngine][QtWebEngineWidgets] Unify Quick and Widget default context menus Task-number: QTBUG-62414 Change-Id: I16a380f9f17e160497dfb8ac9c172341eb28c6c8 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.9' into 5.10Allan Sandfeld Jensen2017-09-141-0/+3
|\ | | | | | | Change-Id: I0860a46b981c1f711bec45d7a495bcec2a80ee1f
| * Set referrer on download requestsJüri Valdmann2017-09-121-0/+3
| | | | | | | | | | | | | | | | | | Note that the Referer header still won't be sent if the download is triggered via an anchor element with the 'download' attribute: crbug.com/455987 . Task-number: QTBUG-61354 Change-Id: I5af971af916b2190756e3e58f19736072a213922 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Adaptations for Chromium 59Allan Sandfeld Jensen2017-09-111-22/+22
| | | | | | | | | | Change-Id: I472053e316bfa782d0a6fb8903f4901be12247ae Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Fix copying JavaScript URLsSzabolcs David2017-06-071-0/+1
|/ | | | | | | | | | | | | | Wire unfiltered link URL to the API layer. [ChangeLog][QtWebEngine] linkUrl member of QWebEngineContextMenuData and ContextMenuRequest was previously returning with "about:blank" in case of non-standard URLs. Now it contains the unvalidated URL and CopyLinkToClipboard action has been fixed to handle such URLs (like javascript:) correctly. Task-number: QTBUG-59307 Change-Id: I2e49767e1cc9ec8324d230c1bf346e21d7b8d9bb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add two nullpointer checksViktor Engelmann2017-04-151-2/+4
| | | | | | | | | The two nullpointer checks prevent crashes that happened when one clicked on a link with target="_blank" in 56-based. Task-number: QTBUG-46713 Change-Id: I1f8a20a52726ab05a85dbca2ec49784985384d06 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix spellcheck feature checkAllan Sandfeld Jensen2017-04-041-2/+3
| | | | | | | | | Was changed to generated buildflag headers instead of command line defines. Task-number: QTBUG-59687 Change-Id: Iead64f5321d000c07172ee27a0032394527ec501 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Adaptations for Chromium 56Allan Sandfeld Jensen2017-03-271-1/+2
| | | | | Change-Id: I78240d7956de4716757761fc6517f031b4adb822 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Simple adaptations to Chromium 55Allan Sandfeld Jensen2017-03-011-0/+7
| | | | | | | The simplest adaptations to API and build changes in Chromium 55 Change-Id: I923fa188690a04902492317807f72f006bcab9c6 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix conversion from blink::WebDragOperation to Qt::DropActionJoerg Bornemann2017-01-181-12/+1
| | | | | | | | | | | | | | | | | | blink::WebDragOperation is a bit field, even if it is not used in its blink::WebDragOperationsMask incarnation. In particular, WebDragOperationGeneric can be set in addition to other operations. This fixes situations where UpdateDragCursor is called with multiple bits set in its WebDragOperationArgument and the drag action will be spuriously ignored. Also directly pass the WebDragOperation we get from UpdateDragCursor to chromium's API without converting to QDropAction and then converting it back. Task-number: QTBUG-58037 Change-Id: I5c85699de534771f84db69abf7b98e779872a0f7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Check RWHV for NULL before dereferencing itViktor Engelmann2017-01-031-2/+5
| | | | | | | | | | | Under exotic circumstances, the RenderWidgetHostView pointer returned by m_webContents->GetRenderWidgetHostView() can be NULL. Therefore, it must be tested for NULL, before its SetBackgroundColor method is called. Task-number: QTBUG-57826 Change-Id: I30e0d2174e80d7971f4e2b6f315a771dc1577814 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Add context menu request to qml apiMichal Klocek2016-08-311-13/+13
| | | | | | | | | | | Introduce qml APIs to support custom context menus. [ChangeLog][QtWebEngine][QML] Added ability to show custom context menu. Task-number: QTBUG-52554 Change-Id: Ief0cbbbf221f4c6849e16bbba7417dccee59ad61 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Allan Sandfeld Jensen2016-05-311-0/+2
|\ | | | | | | Change-Id: I561c00b3a844ab493a5bf0148a5923662842cf5d
| * Disabled WebEngine views should not receive focus.Alexandru Croitor2016-05-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently if a QWebEngineView or a QQuickWebEngineView is disabled using setEnabled(false), after loading a web page, the views are automatically focused, and a user might see a blinking caret in an html input for example, even though the user can't interact with it. Fix consists in not calling the Focus() method whenever a view is disabled. Change-Id: I1014fb5898a5ddf01a4e9b14c3eaf5d4006e5131 Task-number: QTBUG-53159 Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>