| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
Q_ENUM does what Q_ENUMS did plus declaring two friend functions, so the
behavior should be the same.
Q_ENUMS has been deprecated since at least Qt 6.
Pick-to: 6.10 6.8 6.5
Change-Id: Ia431a7b70450ec958c55db0a672cb55a3dba2cc8
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The API follows what we have in WebEngine, with an optional
std::function callback. No world ID argument is provided, however;
most of the backends don't support the concept.
The new function is not exposed to QML, since we cannot expose
std::function arguments. Instead, the existing QML API is kept,
and calls to it simply redirect to the C++ implementation.
Also removes runJavaScriptPrivate() from QWebView, and its related
implementation details in the plugins.
Task-number: QTBUG-131837
Change-Id: Idc1e492916e17caa3f061c0b2738b3c735837cf8
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
All functions that used to be slots are called directly now, and
keeping the Q_SLOTS around is unnecessary (and caused build failures
on macOS)
Task-number: QTBUG-131837
Change-Id: I75e59769bd0e570faba4226810e2513c6ac9e048
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
|
|
|
| |
This avoids a race condition in at least one test, where quickly
creating and destroying WebView instances would trigger
an ERROR_INVALID_STATE for the controller object.
Change-Id: I10ca9a9fcee6e523b6c42dea1e184d976214ba85
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
| |
These are really just private implementations.
Task-number: QTBUG-131837
Change-Id: I0f70456ff78aa85a519e41d5b0e31b7086e8fc93
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
| |
Prepare for proper private class for QWebView.
Task-number: QTBUG-131837
Change-Id: I7303055370ff946cbc7be94ea54a4c57a57021ca
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
| |
Task-number: QTBUG-131837
Change-Id: I7d22b93e4011c7a5706e62864cbdf37068bafb64
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
Move LoadStatus enum from QWebView class to
QWebLoadRequest class.
Small adjustments to fix compile issues.
Task-number: QTBUG-131837
Change-Id: I79b6a48b0426b177133502f75fb34af9d2120e46
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
| |
This class just removes _p suffix and fixes include headers.
Change-Id: I4cc819631f9f8f969264da99f0e32b8b56735704
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Move QWebViewSettings out of qwebview_p.h and make
it public.
Task-number: QTBUG-131837
Change-Id: I233ec3a5a3a2cb2441f05292a4d8c246d26f9eed
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case we want create to QWebView directly
(so no QQuickWebView), webengine backend should create
QQuickView (subclass of QQuickWindow) instead on QQuickWindow,
which will take care of creating QQmlEngine to display
the "WebView" quick item.
Use LoadFromModule() call to create WebEngineView.
Remove WebViewFactory workaround and run webview tests
without QQuickWebView to test new setup.
Note QWebEnginePrivate class most likely should
be split up into to two classes to make it nicer
and avoid branching in logic, so this should be
revisited after c++ API merge.
Change-Id: Id240efc794528cdbccd92751a370fef722b04703
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case of QQuickWebview with web engine backend,
we need to pass qt quick parent item. So far
it was was done by setting parent for QWebView
and then extracting it on web engine plugin backend's
initialization. Add initialize() call
instead. For time being use just QObject as parameter as it
is only used by webengine to pass parent QQuickItem.
Change-Id: I8d84313e93e2ad67ec1f008bee532f20b0d0a68e
Reviewed-by: Moss Heim <moss.heim@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
| |
In case 'plugin' get destroyed, make sure
late callbacks do not use deleted objects.
Done-by: Kaloyan Chehlarski <kaloyan.chehlarski@qt.io>
Change-Id: I347d3ba8b0d570491fe252a090150b5e3cac6292
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
So far we emitted signals on qabstractwebview and then
reemited it later from qwebview to quickwebview.
Make emit directly from qwebview.
Note this patch changes the expected progress to 100 for
failed load. As this code was removed from
QWebView::onLoadingChanged.
if (loadRequest.m_status == QWebView::LoadFailedStatus)
m_progress = 0;
Note on windows plugin the loading progress is just boolean,
moreover if it 'not loading' the load progress is 100, which
would now give wrong value on first initialization (100),
therefore add m_progress as workaround.
Task-number: QTBUG-131837
Change-Id: I9cd003be3185ad956d35bbdbcf01a0349421a1d4
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The WASM backend relies on injecting an iframe into the generated
webpage, and then using Qt Quick ItemChange events to pass down
the correct geometry to the iframe's size. This meant that several
non-plugin classes would have ugly Q_OS_WASM ifdefs, and that the
WASM backend didn't work properly with C++.
This change removes all of the existing geometry change code,
and replaces it with a single JavaScript function that gets run when
the iframe is created. The JavaScript code installs a ResizeObserver
on the clientArea object (which represents the QWebView), and
changes the iframe's dimensions as needed.
Remove also obsolete now nativeWindowChanged().
Task-number: QTBUG-131837
Change-Id: I484a4b65406fa6b22ce969393d06e3c7b4dc3663
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each backend besides QtWebEngine, provides
native window to be set by setContainedWindow in
QQuickWebView.
The android backend will have QWebView as parent
window, the same as darwin plugin.
Wasm and Webview2 do not create native child window.
Note the wasm in handled in follow up commit.
Note we do note make use of qquickwindow for webengine
in this commit, we barely just store the pointer,
or create the window if plugin was created without
the qquickwindow.
Change-Id: Ie98dc0103e353c280ebcb7add3c66f43d3618314
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
| |
QAbstarctWebView is going to be base class of pimpl
for QWebView.
Change-Id: I58636bc5017092e1b9360d05109a305d49899043
Reviewed-by: Kaloyan Chehlarski <kaloyan.chehlarski@qt.io>
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We plan QWebView to become public c++ api, make it
a QWindow not QAbstractWebView, which is going to base
class of private implmentation.
The fact that is now QWindow is used in follow up patches.
Task-number: QTBUG-131837
Change-Id: I449f4b47462e09d31c716bbbc198a446f0f3b064
Reviewed-by: Moss Heim <moss.heim@qt.io>
Reviewed-by: Kaloyan Chehlarski <kaloyan.chehlarski@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Running webview wihout plugin should be simply fatal.
Task-number: QTBUG-131837
Change-Id: I223a64e7aad98d8bf1f81a3b71af2effcce454f6
Reviewed-by: Moss Heim <moss.heim@qt.io>
Reviewed-by: Kaloyan Chehlarski <kaloyan.chehlarski@qt.io>
|
| |
|
|
|
|
|
|
|
| |
This is necessary because subsequent calls to url() will
otherwise return about:blank, even when the user has provided a
baseUrl argument.
Change-Id: I092ebd7f1b8a9b6b92eab184f8b5ae8fc9826fe5
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
The C++ class was calling a getUrl() function that needed to,
but wasn't defined in QtAndroidWebViewController.java.
This only failed at runtime, and inadequate testing didn't catch it.
Amends 501c7464d7771fbc15db4d326d65fda367695a3e
Change-Id: I12f2bf16a48e2f5ea4325daed1e68321fd26a8e5
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
In cases where a WebView is created, but its window is not embedded
anywhere, having setVisible(true) would cause the window to get
shown in the center of the screen with way to close or hide it.
Pick-to: 6.10
Change-Id: If82ee8bef07d0204e700d2a2e790625e57bfadde
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
|
|
| |
Added details about backends supports for Qt Webview on Windows
Task-number: QTBUG-75747
Change-Id: I8b8bcbed150eb68afb61859f5e87e01b14631199
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
| |
|
|
|
|
|
|
| |
The plugin previously returned an empty string when no custom
agent was set.
Change-Id: Ibf6f6ba87e9535532e609e6a5764f632d5e7974d
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
| |
|
|
|
|
| |
Task-number: QTBUG-131837
Change-Id: If86e9f707abcc0ef5916ea4c938fe59f6f270a7c
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
| |
Task-number: QTBUG-131837
Change-Id: I28c33c9c688c4218a350524b254ca893a6dfd950
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
| |
It is not used anywhere.
Task-number: QTBUG-131837
Change-Id: Ic8993e608fc555f69fc8c05a8e9243ea33fa5ce6
Reviewed-by: Moss Heim <moss.heim@qt.io>
|
| |
|
|
|
|
|
|
| |
The plugin has not been maintained or tested in years, and has now been
replaced by the WebView2 plugin.
Change-Id: I96147164ba99364d679ba3b64bfc51853c1972a6
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Some winrt plugin functions do data parsing but since this plugin is
defunct, it is still marked with default security level.
Fixes: QTBUG-135784
Change-Id: I99739cc762b1801fee65df7e08be17443cad157d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The WGL backend is gone, we use DX11, so no more opengl texture
sharing setup.
This is band-aid patch, docs will be updated later.
(if other webview backends do not need initialize)
Fixes: QTBUG-139717
Pick-to: 6.10
Change-Id: Id37bdc1e70c8b793959589bfced42096dbe4c939
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
By default, an unhandled NewWindowRequested event will trigger
the creation of a window not controlled by us, and which can
outive the spawning process. This is inconsistent with other backends,
so handle the event and don't pass a window handle so the new window is
never created in the first place.
Fixes: QTBUG-139641
Pick-to: 6.10
Change-Id: I75ed8ae376be1695f0f75c7286fed7dd3c7b3670
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
|
| |
Use qt_internal_add_android_permission instead.
Change-Id: I24de3dfb6545f841bf3b2acb3c53a3cc87b21e01
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
File is badly formated, and clang-format sanity
complains a lot on commits. Fix it.
Make callbacks in separate lines so after formatting it
looks better.
Pick-to: 6.10
Change-Id: If884af0fbdf4e60155862a6ea00091d5fa63ccec
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Set the location which should be writable as user data folder.
Fixes: QTBUG-138555
Pick-to: 6.10
Change-Id: Icaef9f732cd2d7c0d5b917dfefdf78347198d65c
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Skip percent encodig in case of setHtml call with baseUrl
with non data scheme. See for reference:
https://developer.android.com/reference/android/webkit/WebView#
loadDataWithBaseURL(java.lang.String,%20java.lang.String,
%20java.lang.String,%20java.lang.String,%20java.lang.String)
Add test case to cover the issue, note this skips the
webenigne backend as it requires qmlengine to function.
This will be cleaned up in follow up patches.
Note the base url setting is not supported on "webview2".
Fixes: QTBUG-136082
Fixes: QTBUG-134723
Pick-to: 6.10 6.9 6.8
Change-Id: I6891ec9271fcf3ee78048a6b040d39b818087fa4
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Do not rely on compile time flags, as we can run the test
with backend selected during runtime.
Introduce WebViewFactory to hide the fact that webview
tests uses quick apis. This should be all clean up when
c++ api are introduced.
Pick-to: 6.10
Change-Id: Ib630e828e6277061b84c1fe528c2d497ba4d0b4e
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
| |
Add some file path escaping, and enhance the log.
Change-Id: I337306d7daf4989b93df01391372f9a3a0a9ce7a
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Avoid creating extra window when initializing webview2.
Simplify initialization logic and postpone initialization
to take place after construction of plugin instance.
Pick-to: 6.10
Change-Id: Ia908e4f31ce27392d4b256ceb1191f9e7f01e5bd
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Morteza Jamshidi <morteza.jamshidi@qt.io>
Reviewed-by: Kaloyan Chehlarski <kaloyan.chehlarski@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
Calling function inside assert statements means those function
calls are going away (optimized out) when compiled in release mode,
making some functionality broken.
Pick-to: 6.10
Change-Id: If2d97c36a771bc89a0dcbbef9755122972a96871
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Morteza Jamshidi <morteza.jamshidi@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Make configuration more verbose. Advertise
also other backends.
Pick-to: 6.10
Change-Id: I6bfac38d1e1f88c7850ced9410477ad0de071055
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
Without plugins enabled you can not see pdfs in webenigne,
which works fine with webview on mac.
Enable it also on webenigne backend.
Pick-to: 6.10
Change-Id: I2c252a6eb28d6685a1c4f8c60f0e1c9d9f83e108
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt webview tests expect the api calls to be synchronous, but some of
webview2 api calls are async. This changes their behavior to be
synchronous.
other fixes:
fixed stopEnabledAfterLoadStarted test to rely on webview
being async.
fixed some null pointer issues
changed m_initData to class member
Pick-to: 6.10
Task-number: QTBUG-75747
Change-Id: I979f1635cf049a90be3c8b134f61f5d6f594d971
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
|
| |
|
|
|
|
|
|
| |
with this plugin qt webview uses webview2 in the backend for windows
Task-number: QTBUG-75747
Change-Id: Iab91b95386be6b32c7acfb97f029ed49a6560745
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
Since 6.10, QDoc is capable of generating links to the declaration in
the source code for each documented C++ API entity in their `Detailed
description`.
Add the required configuration to enable this feature in Qt WebView.
Change-Id: I9e5e3f2b44a2573011bc34026c430da5485f76e1
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the new window container classes we no longer need our own
implementation here in QtWebView, the new one is also much more
powerful with better integration into the Qt scene(s).
Also took the opportunity to get rid of the over complicated
interfaces.
Note: While wasm isn't officially supported, some support code was left
to make sure it functions to a similar degree as before. Once wasm has
better support for using the Window container the remaining code can be
removed.
Change-Id: If4af9a546bc230aa9fa69ba3fb6dfb8fcf1f0be6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In practice this have been the case for anyone not installing
QtWebEngine and the platform issue that we had, and that required
special initialization set-up, hasn't been an issue and that code has
been removed from 6.5 and newer
(see: 5f15afaaf07586006b1731cadcb061fa23c71aef). With this change we'll
use the native back-end by default on macOS.
[ChangeLog][macOS] macOS will now use the native WebView backend by
default, meaning QtWebEngine is no longer required on macOS.
Change-Id: Iebcefddf93432c5184d495d286bdead679e423de
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
All the backends implement url(), however it is never
used. The loadingChanged signal delivers
url which is used later by qquickwebview.
Make it less confusing and remove unused code paths.
Note actually loadingChanged should be required interface.
Change-Id: If410845a39b09c2ec4e8ffb177d334d807561860
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As referenced in android docs:
https://developer.android.com/reference/android/webkit/WebView
loaded HTML data has to be base64 encoded or use
url encoding.
To keep things aligned with webengine backend use
percent encoding, however "base64" would also give
correct result (unfortunately webengine assumes
percent encoding).
Fixes: QTBUG-129303
Pick-to: 6.8
Change-Id: Ided7ef12324d5b4854240700e5de7183069ad34a
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix handling of loadingChanged as this should come from
WebViewClient observer. This fixes flaky tests,
as they assumed 2 signals coming, but in reality
3 were emitted. In case 3rd did not come in time
test would pass.
Adjust the title test to match how it works on android.
Fix load result logic, as error assumes no load success signal
emitted and has to be one of
* LoadStartedStatus,
* LoadStoppedStatus,
* LoadSucceededStatus,
* LoadFailedStatus
Fixes: QTBUG-102712
Fixes: QTBUG-108752
Pick-to: 6.8
Change-Id: Ie3c729fa854ad1e6270a8276c1f2428af6c2614e
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Deals with:
* src/plugins/android/qandroidwebview_p.h:26:1: error: no template named 'JObject';
did you mean 'TestQTNamespace::QtJniTypes::JObject'?
* src/plugins/android/qandroidwebview.cpp:313:1: error: reference to 'QtJniMethods' is ambiguous
Pick-to: 6.8
Change-Id: I6c90b4c93ffac240708b3bdc6e4b22a3a3b41cfa
Reviewed-by: Christian Strømme <christian.stromme@qt.io>
|