| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
Faster to build and gives smaller binaries
Fixes: QTBUG-103291
Change-Id: Iab52995e03c13a4c5b185750028c449a19d98d93
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Earlier fix cf8bc1899a introduced the logic, where all system
synthesized mouse events are ignored. But after c56169f7a1 this is
undesired since for widget with Qt::Popup flag touch input is
ignored by QWidgetWindow, and input is expected to be delivered to
popup as synthesized mouse event (either synthesized by Qt or for
capabable devices by system). So allow system synthesized mouse events
to let through for popup. Synthesis by Qt is suppress automatically
for accepted touch event, it's only system event are still delivered
unconditionally, so still ignore them for widgets impl. Global ignore
in core is not needed, since QQuickWidget ignores system synthesized
events unconditionally.
Fixes: QTBUG-79254
Pick-to: 5.15 6.2 6.3
Change-Id: Ie8f55eb8b9c2677d8a98381effb3cb31d9388ac7
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Martin Negyokru <negyokru@inf.u-szeged.hu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In 2947d79d assumption was made that we never get focus in event
for popup reason. Unfortunately this is not true as simply
creating window menu and switching between webengineview will trigger
the issue. Moreover, focus in and out events with popup reason do not
mean change of focus, as in qtbase:
if (QWidget *fw = active_window->focusWidget()) {
if (fw != QApplication::focusWidget()) {
fw->setFocus(Qt::PopupFocusReason)
} else {
QFocusEvent e(QEvent::FocusIn, Qt::PopupFocusReason);
QCoreApplication::sendEvent(fw, &e);
}
}
Therefore it is safe to ignore focus in/out events with popup reason.
Note that the fact that ASSERT got not triggered for context menu is
due to another race condition issue in qquick event stack delivery.
This commit amends 2947d79d8210a7ae4ce2bc02e058628e66011be3.
Fixes: QTBUG-101706
Change-Id: I3e761fe5d8054aed72461eba7981c69755877d1b
Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
(cherry picked from commit 0625a1e16b8698d9c344548e4e929fb385b6a542)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One of Compositor's derived classes, DisplaySkiaOutputDevice, was
missing call to 'unbind' from its observer, leading to not releasing
binding from global cache on destroy. Since unbind is done on destroy,
remove all explicit calls to unbind from derived classes, and just do
them in their base implementations. Ammends b117909825.
Pick-to: 6.2 6.3
Change-Id: I75c909eaa22ca1946ad67aa5093a8ee268c3562b
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recent change in qtdeclarative 42d411e2e8 causes a focus out event
being delivered in case of popups to "root" item of quickwidget.
This is not expected as events are forwarded to parent "view" and
loosing a focus will hint Blink to trigger a pop up close request.
As a communication with a render process is asynchronous this
creates several race conditions in our tests and the Blink's popup
close request can close unexpectedly windows creating dangling pointers.
Moreover, the focus in never gained back leaving the Blink's logic in
a limbo state.
Simply ignore a focus out event in case of popups.
Fixes: QTBUG-99215
Pick-to: 6.3 6.2 6.2.3
Change-Id: I5ca6eda227101d4f19f15735e41f066cfd8ccea0
Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.2
Change-Id: Ic1c25724ea2d6c2241ab2665703380002efae8c3
Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
By mistake opengl was marked as required library, but
should be just optional.
Fix compilation issues.
This should enable build on yet another coin node.
Pick-to: 6.2
Change-Id: Id87404928e6b042d902fcfe0a7fed99a6806456f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.2
Change-Id: I16f27054871f63526946101e07cb0dcf4aa3b390
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Fix some library dependencies and make proper header includes
in core.
Task-number: QTBUG-91760
Change-Id: I415361dd42ef2cc39716ce3f5f56e6e8556ac4c8
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|\
| |
| |
| | |
Change-Id: Idee0142b0e33fdf8ca663f1ef1bcd8b932985043
|
| |
| |
| |
| |
| |
| |
| | |
Also removes another private dependency
Change-Id: Ie0a671c66f9aa49e7001c44e69bf94e11ab058a5
Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This drops dependency on view delegate implementations
in web contents adapter client.
Change-Id: I73a0dda0a790b7afe3fa774b53db9aa263d48ef9
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ia60a1b864bb173bfd12a94ac4791477a88ea0842
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I74c7293ebf5ace5bd07e3bf5455dd90bf4ed6380
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Use type safe native texture accessors.
Change-Id: Ib362b975a51d8ba17231aed4e43ae23768511416
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace
QString::fromUtf16({const ushort * -> const char16_t})
QMap::{unite -> insert}
Q{Hover,DragEnter,DragMove,Drop}Event::{posF() -> position()}
Q{Hover,DragEnter,DragMove,Drop}Event::{pos() -> position().toPoint()}
Q{DragEnter,Drop}Event::{mouseButtons -> buttons}
Q{DragEnter,Drop}Event::{keyboardModifiers -> modifiers}
QMouseEvent::{localPos -> position}
QMouseEvent::{windowPos -> scenePosition}
QMouseEvent::{screenPos -> globalPosition}
These should all be just renames without any change in behavior (save
for some floating point conversions). The one remaining issue concerns
the deprecation of binary JSON in qtbase, which is recommended to be
replaced with CBOR.
Change-Id: I8f3b533242fe9a58c08c2b09ff5d0bdbbfa6dd17
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickWidget uses QSGDefaultContext::defaultSurfaceFormat() in
initialization, which is based on QSurfaceFormat::defaultFormat()
Removed code was overriding format based on shared context format
for some cases. However defaultFormat is always a requested
format and not actual supported one by hardware. Since we always
create share context simplify the logic and try to catch all the
surface format related issues in QWebEngineCore::initialize() and
abort.
Change-Id: I940601b5cd873ab5273baa863aa4e7277be448a6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I08171340c8b5de3b38f17c95a70e3a8931394057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This should be already fixed.
Task-number: QTBUG-63180
Change-Id: I766cd67f83e3344c5072e0ed3bbf03be3ea35e22
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Not used anymore.
Change-Id: I234012c9c611c0dce4d1d2f83e9222e60207f630
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Add implementations of devicePixelRatio, textureSize, hasAlphaChannel
also for software mode. Rename textureSize to just size.
Change-Id: I5c515e4fed3330e0ecbfc17e7ec092245a13e619
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I495880f56fbc10d8f332f26101f8a25c2a1c5631
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Make RenderWidgetHostViewQtDelegateClient class instantiable and remove
its implementation from RenderWidgetHostViewQt.
Change-Id: Idcad3a805defe8b910f418b91f14808b6dbf083b
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/pdf/quick/qquickpdfselection_p.h
Change-Id: I6eec37a01347c2d47cbfc1114326dfc6b58719ff
|
| |
| |
| |
| |
| | |
Change-Id: I310265dacc9b1c8d391e82b6adf52b70c037d9b9
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes a regression in webengine stealing all wheel events.
Fixes: QTBUG-81322
Change-Id: I0176627f3e13d97f55162f70fc7a969f98f4f444
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
|
|/
|
|
|
| |
Change-Id: I0d52e4f6684425cb15319760e0001bdb13846997
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty
src/core/core_chromium.pri
tests/auto/quick/qmltests/BLACKLIST
tests/auto/quick/qquickwebengineview/BLACKLIST
tests/auto/widgets/qwebenginepage/BLACKLIST
tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
tests/auto/widgets/qwebengineview/BLACKLIST
Change-Id: I11b26f5eebde29c4c62247b90e11e3ae40789fe4
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
tests/auto/quick/qmltests/BLACKLIST
tests/auto/quick/qquickwebengineview/BLACKLIST
Change-Id: I29b68dec8692d0369a2dda56350ee62d3ad73e08
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Not fully preserving properties causes event to not be considered
synthesized by system and be forwarded into chromium. Receiving one
single press event and no release event confuses input event_handler
and triggers infinite loop and renderer process crash for pages with
multiple nested iframes.
Fixes: QTBUG-62106
Change-Id: Iabb8bff78fc3475923b4aa3209b720453a5b6ce5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We forward the real events earlier, anything coming in at QQuickItem
level is synthetic.
Fixes: QTBUG-76268
Change-Id: I067f8f94cc5e07bb0cd500b5ae9b9d6bbe66310b
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If we let tablet events pass through without handling it, it will come
back to haunt us as a mouse event.
Fixes: QTBUG-76347
Change-Id: I93297f543620350db0329fe993d18a04e33c7d18
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since 1f01b44d20471a7f4a5029a4c0049e8296749fef landed in qtdeclarative,
the internal API createInternalImageNode() takes one required argument.
However due to the following commit in qtdeclarative
cf24651b550752fbf9bd3afb02aee5d722164658 we no longer need to use
internal image nodes.
Remove their usage, and use the regular image nodes instead.
Change-Id: Ie0cc2a2c1e365bb7fae564ad3c9d880c3a0bf0d9
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Leave it up to hostview delegate to report window geometry.
Change-Id: I19a4b911aa493fbc6f66c6169e7fbbb7bf674217
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I8806a3fb466006f14cf92f17510cdea8b50e8345
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I0822fb8a10945a252cfd1aacaf0b6d9902cc8831
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For QQuickWidget::show does not work correctly
if widget was not hidden.
Fixes: QTBUG-72299
Change-Id: I12fba8c18cbf3f847d30de8b057a50e6d9917fde
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Replace separate notifications from delegate with one combined notification and
change detection. Store view rect, window rect and screen info in RWHVQ to
ensure the properties are in a consistent state.
Change-Id: Icef8a17e72882f56db249f5553b6cf554e1f91dc
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Do the update after the input properties are changed in
RenderWidgetHostViewQt. Moreover, always update on input
state changes, like cursor position, surrounding text and
text selection (see QInputMethod::update() docs).
Task-number: QTBUG-70158
Task-number: QTBUG-71995
Change-Id: I9d5c6e299826fbe66f5285b648013ef79aabed9b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/core/compositor/compositor.cpp
src/core/compositor/compositor.h
Change-Id: I8a4d73d728d93d95e499849f8778cc88dda2105e
|
| |\
| | |
| | |
| | | |
Change-Id: I05a9474efe6b00cc18ad6e33e19a1eb1cbbe8afe
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We apparently can't not rely on getting a QEvent::ParentAboutToChange
event before every QEvent::ParentChange event.
Change-Id: Ie55b51f8c75623bc4f1a943367fb0070078df55b
Fixes: QTBUG-71565
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
|
| |/
| |
| |
| |
| |
| |
| | |
Means we can get screenshots in devtools.
Change-Id: I7b50d6ac5a54d236573bcf5f58ae872bd50dccad
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Given the changes that implement GPU compositing on the UI thread (and
thus only a single thread accesses all OpenGL contexts) it is now
possible to enable GPU compositing to work together with ANGLE, which
did not work before due to ANGLE being thread-unsafe.
This requires a couple of things:
- Enable GPU compositing via kInProcessGPU switch when using ANGLE
- A small fix in GLContextHelper::getEGLDisplay() to return a
correct "egldisplay "handle
- Improved logic when to pass the kDisableES3GLContext switch
depending on which OpenGL ES version is requested (2 or 3)
- Adjustments in RenderWidgetHostViewQtDelegateWidget() to set up a
correct surface format which matches the shared
context OpenGL ES major version
- A recent enough version of ANGLE (due to bugs calling
glTexImage2D with an unsupported internal texture format for
GL_DEPTH_COMPONENT, from inside
gpu::gles2::IsWebGLDrawBuffersSupported)
By default if no special QSurfaceFormat is set as the default
surface format, using ANGLE will create an OpenGL ES 2 context,
and will thus provide support only for WebGL 1.
To enable OpenGL ES 3 / WebGL 2 support, make sure to set a
default QSurfaceFormat with major version set to 3, and enable
ANGLE either via QT_OPENGL=angle or
QGuiApplication::setAttribute(Qt::AA_UseOpenGLES).
The default surface format must be set before the Q*App instance
is created.
Manual test "webgl" added.
Task-number: QTBUG-53908
Task-number: QTBUG-55604
Task-number: QTBUG-69236
Change-Id: Ic31dfdff1ca22d4689db5cf64126d7d12790aa76
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|