| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Remove unreachableUrl support from WebContentsAdapter::setContent,
because this argument behaves exactly the same as baseUrl.
Change-Id: I36f92b99b7045c6d3b831481bb04d51a0e05772f
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
| |
I dropped hovered title support from the QtWebKit API,
it seems we don't need that logic.
Change-Id: I5617c295344512a35aa526a6f1307f0b21f866d6
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
| |
Change-Id: I18059c2894893d28c03dc790037bdd3ff28cfd07
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reuse the MediaCaptureDevicesDispatcher from the chrome layer,
pretty much as is, and wire it in with WebContentsDelegateQt and
WebContentsAdapter/WebContentsAdapterClient for API delegation.
We also need to ensure that our user agent string mentions Chrome and
the Chrome version we're based on, in order to please websites that detect
feature support that way.
Change-Id: I0ddf8cd34e4add96bc36f59adfe8e0384e728d93
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
| |
We could use this to prompt the user for various feature permissions
that we are not ready to expose in our API.
Change-Id: If6e6a16aca4142b0564121dfc7677b7c4996f742
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes an assertion for QML code like:
WebEngineView {
...
MouseArea {
...
}
}
Change-Id: I7a9bfb801c81ea53c1cc830b44fe224a0b78db2d
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I initially misintepreted the meaning of the enum, assuming that it
meant that the window should possibly be blocked. The user_gesture
parameter in WebContentsDelegate::AddNewContents is actually doing
this, while the popup disposition means that JavaScript requested
the window to be opened without one of the standard decoration (i.e.
status bar, menu bar, tool bar, etc.).
Update the QtQuick API to reflect this, renaming the "isPopup"
parameter to a more familiar "isUserInitiated".
The popup disposition is named "dialog" to match the previous
QWebPage::WebModalDialog enum.
Change-Id: Ib0c4bc53671fcf0dd9499aa1be2bbc8c494ba49e
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
|
|
|
|
|
|
|
|
| |
Translates the internally used LogSeverity values to
enums defined by the QtWebEngine integration layer.
Change-Id: I7da0983d4fb5c199e1a2436b5899a43cf6698784
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
| |
We now only have a QQuickItem subclass and this isn't needed anymore.
Change-Id: I3a10943e54f52d1554dc76ccc1841aaacd5171e2
Reviewed-by: Simon Hausmann <simon.hausmann@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>
|
|
|
|
|
|
|
| |
With this fix the quick history list is updated like in the widget API.
Change-Id: I19127a0055a3f1ab8a04da63d847249f6c4c23d9
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is used by popups for select elements and date pickers among
other things. We can keep using the same RenderWidgetHostViewQtDelegate
implementations for that purpose, and query QPA to decide if they
should be wrapped into their own QQuickWindow.
Longer term, we might want to optionally delegate that functionality
to QML.
Change-Id: I88540ca32a9a707d380dfbf486b7f7806b5b65ff
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
We now require the user to use QWebEngine::initialize() in main (preferably) and
print out an error message if this wasn't set up accordingly. This limits the use
of private scene graph API to inside QWebEngine and offers public API for users
of the API.
Change-Id: I787c176a85ab7784dbc8787d9876960b4872959e
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a gross mechanical modification of the documentation, along with build
system bindings to allow it to generate. This should allow doing iterative
improvements to the documentation from now on.
This fixes project-related qdoc warnings but we still need to do some serious
work to get the documentation better fitting QtWebEngine. All the documentation
is ported to match the current state of our headers (without trying to adapt
to modified APIs yet) and we should clear the part of the documentation that we
don't need at the same time that we clean up our public headers.
Change-Id: I6fb4e10e8b4c1c53be7bc7c581286248ac04d4da
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This places the documentation in separates .qdoc files with the original
license header preserved. We don't want to contaminate our implementation yet
just for the documentation, so keep it separate for now.
New documentation that isn't attached to the QtWebKit LGPL license should go
inline in the code as usual.
Change-Id: I113a9ad2b826ed7cea053be065f201b637070d28
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
The index calculation was wrong for the history items in the forward
list model: model contained the current item too.
Test has been added for check the previous and next element in the back
and forward lists.
Change-Id: I0e05881f05b67752e47b01236ffb9636d31a7dc2
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
| |
Change-Id: Icd56b33c9bd3fe0f906f5ea6257713ab509ba33d
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
| |
hisOTry -> histTOry
Change-Id: I4744721bbd50a76054e38de9578f1f27e92982db
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This mainly remove the use of the LoadingStateChanged callback, which
is tied to DidStartLoading and DidStopLoading.
Those signals are handled from the browser process side, also wrapping
the time where the render process is initialized. We can't rely on
those signals for loadStarted, but afterward rely on the Blink loader
for loadFinished. We must use the same source for both.
Instead only rely on Blink callbacks ultimately related to network
events. This gives us a behavior closer to QtWebKit.
The major compromise that this forces us to to accept is that
loadStarted is now triggered asynchronously. This will basically break
anything expecting loadStarted to be emitted synchronously from the
load method.
This also adjust autotests to get a few more passing.
Initial-patch-by: Pierre Rossi <pierre.rossi@digia.com>
Change-Id: Ib6c0170df891d1b7f8ed4dc1d483985523e267dc
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
| |
Add QQuickWebEngineHistory and list models providing API for the quick's
navigationHistory.
Change-Id: Ia86c94b120cc5d0b4757fc62386fc7a0dcb3e341
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Use a raw pointer instead of QScopedPointer for the UI components.
Since the components are always parented to the view and deleted through
the QObject cleanup mechanism, it was not correct to use QScopedPointer
in the first place.
Change-Id: I0c8fd9526e898439c52c6a6f538a66f8a1185ef9
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Basic tooltip support for widgets relying on the existing QToolTip
mechanism.
Left unimplemented on the Qt Quick side for now since ToolTip support
is still very much a work in progress there.
Change-Id: Ia4bfd715a224e0cbc147c8860e131d1545cebe1e
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The forceActiveFocus() doesn't work in the QML tests.
We need to call forceActiveFocus() in RenderWidgetHostViewQtDelegateQuick
instead of the one in WebEngineView. To make this work, I replaced RWHV
with QQuickWebEngineView in the focus chain.
This is necessary in order to extend tst_loadUrl QML test with
urlProperty test case.
Change-Id: Ifba0c824a7ce9f00d328110233402d3563f967aa
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This delegates the linking step from ninja to qmake so that we can
let qmake decide the destination of the target itself, easing the
deployment and installation logic across platforms.
The module is only deployed as a binary and no header are available
outside of the source tree. This is only to make sure that the
dependence of the QtWebEngine and QtWebEngineWidgets libraries on it
is resolved at runtime exactly the same way as with other Qt modules,
on all platforms.
Ninja still takes care of the compilation and gyp lets qmake know how
and what to link by dumping the list of flags and input files in a
generated .pri file.
This has to be done in a separate .pro file so that we can make sure
that ninja is run inconditionally before make reaches the dependency
check in core_module.pro, ensured by the parent Makefile.
Note 1: This patch removes RPATH hacks that are no longer necessary
Note 2: Other targets like ffmpegsumo are still linked by ninja. The
same logic could be moved to a qmake file but this require some more
work to make sure that some switches (e.g. -stdlib=libc++) are
coordinated between gyp and qmake.
Change-Id: If65968547bde5b9cf732e31e97931c17ae1921a7
Reviewed-by: Zoltan Arvai <zarvai@inf.u-szeged.hu>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows handling calls that would be signaled by QNetworkAccessManager
in QtWebKit.
This pulls QtNetwork as a dependency of the QtWebEngineWidgets module
to be able to use QAuthenticator, but isn't required otherwise.
Only the request URL is available in the case of HTTP authentication
(no access to HTTP request headers that the QNetworkReply would allow)
and only the proxy host name in the case case of proxy authentication.
This keeps the API synchronous the same way, as QtWebKit did, in
favor of source compatibility at the cost of requiring a modal
dialog, even though the implementation doesn't require it.
Change-Id: I9e021def38e6107c9e66d2de8f86bd0328d543df
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
|
|
|
|
|
|
|
|
|
| |
Rename QQuickWebEngineView.loadingStateChanged signal name to
QQuickWebEngineView.loadingChanged.
Change-Id: I0e01034f7b2eea57f5211ff0d8258d9f27d278f0
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Much like the widgets version.
This should be helpful to start testing QWebChannel integration.
Includes a very basic autotest that checks both approaches (with or
without callback) through the view's title property.
Change-Id: Id9c3e3736f36d53cecf1dd52e8811c4b921dcf08
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
| |
Unlike other OSes, project's directory is not included by default to
includepath on Windows. This would cause missing file errors while
building.
Change-Id: I64b83e13adaae1ee1730caebcf7442973b573c3b
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
| |
Patch by Jocelyn Turcotte
This fixes the inclusion of private headers.
Change-Id: I490336ac30571bf292d88e2747102c75027b8dc6
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
| |
Cleanup version ifdefs and v8-private dependencies.
Change-Id: Iac393c06dfba02499e60d713d9f4d04ef0c9e617
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A few changes to the API:
- Return the success result asynchronously.
- FindWrapsAroundDocument and HighlightAllOccurrences are enabled by
defaults and cannot be disabled.
- Found text isn't updating the selection on the page like QtWebKit
did, but triggers a separate state not available. A find count and
current index could be exposed, but isn't in this case to keep the
API delta lower.
This also adds the possibility to pass bool results through the
CallbackDirectory and add a new tst_QWebEnginePage::findTextResult
test since the old test relied on the selection to be updated when
the searched text is found.
Change-Id: I8189b5aea8d832df183c6c1ae03e3f08198a9c45
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: Idebde8da0befbea7ccc5942de1e09fcc61ce16d4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
This tries to get the order of declaration to be consistent.
It also follows the order used by Chromium in some places
where the routing_id usually comes first, then the request_id
and then the result of the asynchronous request.
Change-Id: I88e164dee67e1631161a222f7dd7a4679c3d3acd
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improve the code and API in a few ways:
- Expose a more discoverable "request" argument in the signal.
- Use the request as the carrier of the backend WebContentsAdapter
and get rid of our handle.
- Put the adoption method (renamed to openIn) on the request object
and keep the view API clean of a context-specific adoptHandle method.
- Use an enum instead of strings for the new view destination.
- Do not let JavaScript own the request object since it won't be
necessary until we want to support asynchronous view attachment.
We can create the request object on the heap and let the JavaScript
engine own the object once we want to support it.
- Move the request class to its own header.
- Replace tabs.currentView by currentWebView in the quicknanobrowser
qml code since we now need this property on the root object anyway.
Change-Id: I40d7d15255f516ead9f3e414dd587bf345e6ca4b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-36472
Change-Id: I60267d6b9e2e99b20ddf604a0d6b0d8f2c8f1b27
Reviewed-by: Andras Becsi <andras.becsi@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>
|
|
|
|
|
|
|
|
| |
Implement unreachableUrl support for WebContentsAdapter::setContent
and add loadProgressAfterLoadHtml QML test case.
Change-Id: I2d0d7834cbbf8f508de4fa9cb72240f2ac6ebf83
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
| |
QQuickWebEngineViewPrivate needs a destructor to work right with
WebContentsAdapter.
Change-Id: I3df1b452eeaf3a7516eace9268884ff6d1211e44
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
MSVC thinks the firs part of that string is wide while the second
part is narrow and it won't allow to concetanete them directly.
Adding literal for wide string before ".qml" on Windows will
resolve it.
Change-Id: I934fed6fe9e9401461a8165a524e8110cec3c3fa
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a property isFullScreen and a signal
fullScreenRequested to QQuickWebEngineViewExperimental.
The signal fullScreenRequested is emitted when some web content
requests fullscreen through the javascript API.
The property isFullScreen is supposed to be set
programmatically when the view is being shown fullscreen.
This information is then available to the WebContentsDelegateQt
when checking if the fullscreen request has been accepted.
Change-Id: I04cbb45f263a188d26cc87d70ac53b0fbab63936
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Chromium calls RenderViewHostDelegate::TakeFocus when the
last focusable item within the page was reached.
We then have to move the focus on to the next/previous
QQuickItem.
Change-Id: Id0128053602ff1220c1bced1b218050b66fef659
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
| |
This is needed to get text input working again on Mac.
Underlines are currently being ignored.
Change-Id: I2a1074a1151e9be6f96ebe12fd0bb40a0eb63d6a
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To support reparenting, we make the compositing surface independent of
the window by using gfx::TEXTURE_TRANSPORT. We also need to be able to
keep frame data across window changes so we can reconstruct the QSGNode
tree in a new context, so extract that data into DelegatedFrameNodeData
class. Any context-specific data is still stored in DelegatedFrameNode.
Also hook up window changes to WebContents::WasShown/Hidden for Quick.
Remove checking of Qt isVisible state, this mechanism is used to sync
Chromium with Qt, not the other way around. WasShown/Hidden is
orthogonal to Show/Hide, and can use different triggers. However for
Widgets it probably makes sense to hook both up to widget visibility.
Change-Id: I1ef4b50cd61b8e54b791e03f0b41929c42fec8bf
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
| |
And unskip the corresponding autotest.
Change-Id: Ida2dcee38b261b2ba4ad0c5c016f5510ed1590a4
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should provide us with an initial empty document, which our
imported autotests tend to assume all over the place.
Initialization of the adapter is moved further down in
QQuickWebEngineView's constructor so that the value of
q_ptr is set and valid by the time we end up in
WebContentsViewQt::CreateViewForWidget.
Change-Id: I45d8d61e65caa3a690461b6da44adea9f8981e7e
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should not include chromium headers outside of core since
they might depend on defines or other build options only set in
the gyp/ninja environment.
This patch removes the need to include net/base/net_errors.h
in the API implementation of the QQuickWebEngineView and also
removes the chromium source directory from the global include
path. This prevents including chromium headers outside of core
by mistake and also makes it possible to load the project in
QtCreator without disabling indexing.
Change-Id: Icd13b6caa52509ef2a1b6b44eaffb34d8ae4addf
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
| |
Change-Id: I56c78aa7e60194888123d372c6dbbb60624856c5
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Those methods are now made asynchronous and need to be given a
callback to handle the result.
Update the code in the browser and fancybrowser examples using
std::bind when using C++11 or tr1::bind with C++03 (which should be
available with compilers on platforms that we support).
Add a (currently failing) earlyToHtml test to make sure that an empty
page doesn't crash because of a possibly incomplete attachment of
the QtRenderViewObserver.
Change-Id: I3ab7cb6f25b91b584dd80df5e4e9ad1e3214348e
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|