| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QWebEngineView was not receiving any drag 'n drop events anymore since
the switch of RenderWidgetHostViewQtDelegateWidget's base class from
QOpenGLWidget to QQuickWidget. Turn off the default handling of drag 'n
drop events in RenderWidgetHostViewQtDelegateWidget to let its parent
handle those.
Task-number: QTBUG-57006
Change-Id: Icf29b2619e9b0c36641cb31eafdd2ee5cd0ab38a
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Viktor Engelmann <viktor.engelmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-54327
Change-Id: I759598d56aa0a74b64092365b422a743fb508ac6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Defines the qtConfig() test for older Qt versions, and fix
conflict between two QSGRectangle definitions.
Change-Id: Icf4ef2f88d9e98e7aea4e88d777827bf69a4c281
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also blacklist tst_QWebEnginePage::comboBoxPopupPositionAfterChildMove()
and comboBoxPopupPositionAfterMove().
Conflicts:
.qmake.conf
src/3rdparty
src/core/render_widget_host_view_qt.cpp
src/core/resources/resources.gyp
src/webengine/doc/src/qtwebengine-platform-notes.qdoc
src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h
tests/auto/widgets/qwebenginepage/BLACKLIST
tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
tools/qmake/mkspecs/features/functions.prf
Task-number: QTBUG-55158
Change-Id: I1d73ac9b3ca5293ad3c7e3a56f4c395da930e6f4
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/3rdparty
src/core/resources/resources.gyp
src/webengine/doc/src/qtwebengine-overview.qdoc
src/webenginewidgets/api/qwebenginepage.cpp
src/webenginewidgets/api/qwebenginescriptcollection.cpp
src/webenginewidgets/api/qwebenginescriptcollection_p.h
tests/auto/widgets/qwebenginepage/BLACKLIST
And readded newly in 5.6 enabled tests to the BLACKLIST.
Change-Id: I4ab1fc54ebfaaf940df81b0d8d6bdd15cae8b7c4
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Suppose having a QWebEngineView as one of many child widgets in a
layout. Resize some child widget such that the position of the
QWebEngineView changes (without changing the position of the top-level
window). Chromium must be informed of the changed global position,
otherwise popups will be opened at the old position.
Also see commit 7f941a34, which originally introduced the coordinate
propagation for top-level window moves.
Task-number: QTBUG-51244
Change-Id: Ieb372e8d7554700d5e8d1e2148ab778094ea3878
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |\|
| | |
| | |
| | | |
Change-Id: Ic6686df8f82f710a3441501b7eeaffe69fbcbdf7
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
To ensure Chromium is given a chance to handle editor commands,
we must override these short-cuts.
On OS X we must also perform the action afterwards as these are not
handled internally by the Blink Editor.
The patch solves copy/paste in flash plugins and copy/paste on OS X
when no application short-cuts have been defined. The handling of
short-cut override events is based on how it was handled in Qt WebKit
Task-number: QTBUG-54221
Change-Id: I748671c7bfa5662aae16c6a4b9bbe5e2bce1b907
Reviewed-by: Alexandru Croitor <alexandru.croitor@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use the new public QSG classes meant to replace QSGSimpleRectNode and
QSGSimpleTextureNode.
Change-Id: Icdfc3b4ba13dd28258defa955d050927abbae95b
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is essential for set tooltip in Qt Quick part
because the setToolTip function should not be public.
Change-Id: I1ebd0c811504fded8edff1a5a6110ce3512bab4f
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
To support scenegraph-ng we need to switch away from QOpenGLWidget, to
something that will work with any QQuick backend.
Task-number: QTBUG-53283
Change-Id: I476a2c22e35a18cefc2824d5342bcff874c44d28
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
What was previous called QSGImageNode is now
QSGInternalImageNode
Task-number: QTBUG-54312
Change-Id: Iec286765bea5598d86932c81bfd122461a2e9884
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I561c00b3a844ab493a5bf0148a5923662842cf5d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If a QWebEngineView is disabled, input events are still forwarded to
Chromium, thus allowing the user to interact with a web page.
Fix consists in stopping the forwarding of input events in the generic
event handler, just like QWidget::event() does.
Change-Id: Ie822d1f3d640840569a282223d76749686cf3419
Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
|
|\|
| |
| |
| | |
Change-Id: I53645ee5405b1c43807123fd3c196e314cfd1ce9
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently if a < 3.2 OpenGL Compatibility profile is requested on OSX,
a webengine application would crash saying that the global profile
does not match the default profile. That happens because in the Cocoa
QPA any requested OpenGL Compatibility profile or Core profile with
version smaller than 3.2 gets reset to QSurfaceFormat::NoProfile and
version 2.1.
Fix consists in making sure that the QSurfaceFormat check only
considers Core profile with versions >= 3.2. All other combinations
would result in NoProfile 2.1 and thus not cause any issues for
webengine.
Change-Id: I7c9866d761c052e52389022abe8e213d062db41f
Task-number: QTBUG-51058
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|\|
| |
| |
| | |
Change-Id: If884b8b8bc087a6a726476b49cdb48a0efaa173e
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commit 32929885 led to rendering blank pages in QWebEngineView.
Set the OpenGL version only if the core profile is requested.
Change-Id: Ie05c7804afbce26aee63455e27c23219484f535d
Task-number: QTBUG-51032
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp
tests/auto/widgets/widgets.pro
Change-Id: Id9444359ed2e35d469331db96a355c9ea2d095d5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Setting a new default QSurfaceFormat after
QtWebEngineCore::initialize() is called, might lead to a crash.
This happens when the new surface format has a different OpenGL profile,
compared to the profile created by web engine in the
RenderWidgetHostViewQtDelegateWidget constructor. The default
constructed QSurfaceFormat has an OpenGL Compatibility profile.
Inside the Cocoa platform plugin when a new shared OpenGL context is
created, it fails to initialize the new context because of the
difference in profiles, and thus ultimately creates an unshared
context, which leads to a crash.
Fix consists in using the shared context QSurfaceFormat in the
RenderWidgetHostViewQtDelegateWidget constructor, and also printing
a fatal warning to notify the developer only to set the new
QSurfaceFormat before the application instance is declared.
Bottom line, if the QSurfaceFormat OpenGL profile has to be
changed, it should be done before QtWebEngineCore::initialize() is
called. Doing so after initialize() is called, will lead to a crash.
Change-Id: I8a07211b592143d736b001556b944d4759802396
Task-number: QTBUG-50665
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
|
|/
|
|
|
|
|
|
|
| |
Update files using old header.LGPL3 to use header.LGPL
Update files using old header.FLD to use new header.FDL
Update files using old header.BSD to use new header.BSD
Change-Id: I36a67aaa8c3ca6c7946308defc9c03c3571a7d23
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
Change-Id: I451bc61673014db8e87b2a2cf98fb6879ce0e58d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Report the correct device pixel ratio to Chromium, when the
QOpenGLWidget gets initialized. The initial value on startup is
incorrect, because Chromium tries to query the screen information,
before a relevant QWindow handle can be returned, and thus defaults to
1.0f.
Change-Id: Ibbedd7b2915840f9716340e582aedbc13406f11a
Task-number: QTBUG-49727
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Forward WebEngineView visibility to WebContents visibility, and call
WebContentsView visibiliy on actual show/hide events to avoid a recursion
when WebContents visbility triggers it.
Change-Id: I0c336359fb35bf93874aa1092767177d7a5ce341
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This also allows setting a transparent color to see through
the web view's body if its background color isn't specified.
The color is initially held by the top API view and is pulled
by the WebContentsAdapter in order to set it on the RenderView.
Since both blink and our local compositors (in the QOpenGLWidget
case) need to know about this color, RWHVQt takes care of pushing
it to both. The former through an IPC message and the latter
directly on the RWHVQtDelegate.
Task-number: QTBUG-41960
Change-Id: Ie13317b2d087f5612ad9c5fb0e05ca3e91aec9af
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
Notify client about the show() after RWHVQD creation. The
WasShown(...) hack is not necessary anymore in the core layer.
Change-Id: I221b2d027ee83d81d70191419bc4fa8d41231674
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
Notify the RenderWidgetHost about visibility changes so that we
receive updates with non-empty DelegatedFrameData when a page was
loaded in an invisible WebEngineView and then made visible.
Task-number: QTBUG-42789
Change-Id: I4856efcd9c0ce44b66a228d5a414198df46b95eb
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
Adds the QtWebEngineCore namespace to all internal core API. This
ensures we don't export any internal symbols in the global namespace.
Change-Id: I26af888ea7c6c4c4d0f04c24a377c1a9d3c92751
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Change-Id: Ieb6bac7a1be5c25eb7cb917495b58b6a870ca6d4
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
While the mouse is locked, the cursor is hidden from the user and
mouse events are still generated. The movement which is reported
by the event indicates what would be the position change if the
mouse would not have been locked.
Change-Id: I79b3df5d7d644cd675a27e6c5a0da54e00b69da3
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the GPU process fails to initialize, or when the --disable-gpu
switch is provided, the delegating renderer will transfer resource
mailboxes through shared memory pixel data instead of through shared
texture IDs in the GPU process.
Handle this by uploading the pixel data ourselves with
createTextureFromImage, also allowing us to render tiles in the
QtQuick 2D Renderer.
Change-Id: I70ad7122cd0e52dd5ab435ae01e7f032b8e1194e
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use QSGLayer and get rid of RenderPassTexture so that we can render
intermediate layers with the QtQuick 2D Renderer.
This reintroduces the private dependency on QtQuick since the
QSGLayer factory methods aren't available publically, and also that
we need to use QSGImageNode instead of QSGSimpleTextureNode to use
them.
Since we can't subclass QSGLayer to hold a reference to SG objects
directly in the nodes that use them, store them all in the wrapping
DelegatedFrameNode in a SGObjects structs. This works assuming that
the DelegatedFrameNode will always be at the root of our nodes,
layers and textures; if the scene graph destroys the
DelegatedFrameNode all child nodes will be destroyed with it.
Change-Id: Iedeceb8f98eb54fd8228a677c366d6df9a270e11
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
| |
It's faster to use QLatin1String in places where we don't actually need
a QString object (like for comparison, or when creating a string with
QStringBuilder).
Change-Id: I9b8e28040dc2b79a767e15015b85822d06141bbe
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes widgets rendering on HiDPI displays and notifies
about the a potential device pixel ratio change when the window is
moved. This addresses the blurriness when a web view is moved
between an attached LoDPI screen and HiDPI screen resulting from
the device pixel ratio not being updated.
Change-Id: I97af0199c07deac8bbe4688c665aaa6df1608ae9
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
|
|
|
|
|
| |
Change-Id: Idf1cd3990e2cfd9e2ed3b017370e689c1126bb48
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
| |
Change-Id: Idbe0eafb51d77cc00e3a93179b81770724d5bfaa
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a regression after the 37 upgrade where the select popups
would have the wrong position. Adjust to the new behavior and also
avoid doing a mapToGlobal of the position received in InitAsPopup.
RWHV::SetBounds has been giving us screen coordinates since the
Chromium 33 update, but popup locations somehow managed to work
properly through some side-effect sorcery.
This also fixes the value of window.screen[XY] in JavaScript which
wasn't updated when the window was moved.
Change-Id: I544499bafedccfb7d389b4abc48f1386c398473f
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
|
|
|
|
|
|
|
| |
QSGEngine was added in Qt 5.4 to allow using the scene graph
without QQuickWindow. Use it for our FBO as well as for the
QOpenGLWidget rendering.
Change-Id: If4665d4f33c9dad69d2d4269309163bb5ffbd8e3
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
| |
Change-Id: I5554e43b8703864111f37f8b684a47669107512e
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes:
- Make sure that we call SetInitialFocus when giving focus through Tab
This does the same as would WebContents::FocusThroughTabTraversal
- Implement QWebEnginePagePrivate::passOnFocus
- Set each new RWHVQtDelegate as the focus proxy of the QWebEngineView
- Make sure that the widgets delegate accepts the tab focus policy
Cleaups:
- RenderWidgetHostViewQtDelegateQuick doesn't need to be a focus scope,
it doesn't have any children
- We don't need to reimplement QQuickWebEngineView::forceActiveFocus
since the view is now a focus scope
- Do not explicitly setFocus(true) on the QQuickWebEngineView,
the application should decide this through the API
Change-Id: I817dc2c895d4fff4aa3536c71ecc5d306bb3bee0
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
GetViewBounds should return the bounds of the view, not the screen rect.
The view bounds are for example used to calculate the screen position of
accessible objects (which gets fixed with this patch).
Change-Id: I5b342113af737847c1756a13183cd2b8b8db648a
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QPlatformBackingStore still doesn't enable blending when compositing
a QOpenGLWidget with the rest of the widget tree. This means that a
tranparent pixel will show as black.
Until we get to properly go through the work of making it possible to
render a transparent webview, set the glClear color to white in order
to avoid seeing any black background before we get our first frame
from Chromium.
Change-Id: Idf7bb831a3b0d62b02f2527e2a15d830bf1e8ad4
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
QTooltip's documentation states that "rich text displayed in a
tool tip is implicitly word-wrapped". This seems to be a more
desirable behavior for our needs.
To mitigate any potential malicious tooltip contents, we escape
any eventual html entities, and truncate to a reasonable size.
Change-Id: Iae3ea80e7660840aae39d228d1177dcc56f4a032
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since Qt 5.3 QWidget has the same behavior as Qt 4 where it will
replace a second MouseButtonPress event with a MouseButtonDblClick
instead of sending both.
Fix the issue by moving the MouseButtonDblClick ignore code up to the
QtQuick code, assume that upper layers will not send
MouseButtonDblClick events, and re-replace the MouseButtonDblClick
event with a MouseButtonPress in the QtWidgets code.
Change-Id: I529dad2de538f486b00eb900ea6d2ed849a3b1f0
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes two issues:
- The RWHV delegate of the old page would not be detached from the view
when attaching a new page to that view. Call reattachRWHV as we do on
the new page to make sure that the delegate gets unparented from the
view.
- QtWebKit documents that a page having the view as its QObject parent
should be deleted when setPage is called with a new page. This would
cause QupZilla to leak the page when opening a new window through a
link.
This also adds a workaround to avoid a crash when unparenting the
delegate where QOpenGLWidget would try to call paintGL without a valid
QSurface.
Change-Id: Icd2659f441d2220c26dc175d66424e6c26125861
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
| |
The root node doesn't clean itself up immediately inside the SG
renderer when destroyed. Just avoid the issue by destroying the
renderer first.
Change-Id: I833b7fdc411f149631fd13d1c1fca515b9402bf4
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
| |
Now that the widgets view is also using the delegated renderer,
there are no supported configuration that use the BackingStore
rendering path, itself on the way of deprecation in Chromium.
Change-Id: I4ab889f6a7c65e8447c259faf2c7a98b88c1acf5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This means that widgets application now need to setup the GL context
sharing as well. QWebEngineWidgets::initialize() must be called,
which has the same effect as QWebEngine::initialize().
The QtWebEngineWidgets now depends on the QtWebEngine module to make
this happen.
Since QOpenGLWidget is only available in Qt 5.3, this patch also
disables the webenginewidgets module completely when building using
Qt 5.2.
Change-Id: I0e99a779d1eb080f2ccf5a338ff0763ad64e6eba
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts parts of commit 9c198939be1ef064d1a2430a4b9991f2fe16f359.
This does keeps the popup fixes and removes support for
QWebEnginePage::setViewportSize and QWebEnginePage::render until
we can evaluate the needs vs the cost of such feature.
Change-Id: I1b55b751d463717b1462393ea8cd353422f8fdbb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Break up the delegate implementation into two distinct subclasses.
The first one offers a way for the WebPage to tap into the
RenderWidgetHostView directly, while a different implementation
that is backed by a top-level widget can be used to show WebUI
popups on screen.
This has the benefit of not having a child widget in the webview
among other things. It also fixes our popups and allows them to fall
outside the window frame.
Change-Id: I80dc1e4f21bb91ff47c75a626d330f88eacce8c6
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|