| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: I146df83948017b5ad72e40d16a8cc7105691c309
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements adoptNewWindow for QQuickWebEngineView.
The API is only intended to be used through QML to avoid delegating
the QQuickWebEngineViewHandle ownership through a signal parameter.
Another limitation of the implementation is currently to fail the
handle adoption unless it is done synchronously within the
adoptNewWindow call. To support this we would need to delay the call
to WebContentsAdapter::initialize which will leave the adapter
without a client when returning to the event loop and would require
putting null checks everywhere it is used.
So I would prefer to keep the API limited and avoid potential crashes.
If we want to support asynchronous Loader elements or QML files
fetched from the network in the future, the API should be able to
scale to the task once we've adjusted the implementation.
This also adds basic tabs support in the quicknanobrowser example.
The url property is now set imperatively to avoid overwriting the
adopted WebContentsAdapter's loading URL.
Change-Id: Iba5c5dc3ffa21045f356be131ca15c01b9aee7c8
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
| |
We are still able to build with Qt 5.1 if we disable
the hardware acceleration codepaths.
Change-Id: Ic748dac0a7f25bbd79f2f711a18431872cebd917
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The WebEngineWidgets module and the WebEngine QtQuick plugin libraries
already have the RPATH set properly in their headers and the application
won't need to link any symbol directly to the Core library.
Remove the RPATH directive for examples and tests and fix the build issue
by making sure that the link directive isn't passed to dependencies
through the prl or pkgconfig file.
Change-Id: Id1f5efb8c9823613e804e8e6356d711d561d72ec
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A few changes are necessary to allow fetching textures provided by
the render processes through IPC and bound to their respective GL
context in the GPU process and use them in the QtQuick scene graph.
- Remove the plain color test textures.
- Allow setting the QtQuick QOpenGLContext's handle as the share
context for all context set as shared in the Chromium GPU process.
We do this by letting the GpuChannelManager ask us for a
ShareGroup instance responsible for returning a sharing GL context
handle.
- Fetch texture IDs from the MailboxManager used by the GPU process
using the Mailbox given to us in the DelegatedFrameData.
This is the same mechanism used by Chromium to share textures
between "client" GL contexts.
- Keep the QtQuick scene graph threads and Chromium in-process GPU
thread separate. The complicated part of merging those two
rendering pipelines on the same thread is that it would force Qt
to also use only one thread for rendering. For the moment we will
try to synchronize those threads together instead.
- Lock the Qt SG thread while waiting for resource sync points.
Do so by posting a callback to the Chromium GPU thread and wait
until the sync point of every resource has been retired by the
producing contexts.
- Acknowledge the delegated from once QtQuick swapped the GL buffers
instead of right after we added the frame to the scene graph.
This fixes some issues where the textures for the previous frame
would already be released as Chromium was producing the new frame.
There are still a few issues regarding synchronization that have to
be fixed, especially when Qt triggers the rendering of a new frame
while Chromium is starting to produce the next frame.
Note: To enable it we still need to pass the following command switches:
--enable-delegated-renderer --enable-threaded-compositing --in-process-gpu
Change-Id: I2d4f7fac603b1808ed1495a8d689cb48e9ed41b9
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
| |
Change-Id: I48c0ed54cd946f223dc050b8a1f26282b02964a2
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
| |
Set favicon image source to the value of the icon property, not the
url. D'oh!
Change-Id: I411f787f4f19fbeb2db9a61e4aada79b3527dcfb
Reviewed-by: Arvid Nilsson <anilsson@blackberry.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This exposes loadProgress in both widget and quick webengineviews.
However, the progress will not change until we get an upstream change
in Chromium where the content LoadProgressChanged API is exposed to all
ports, not just Android. The upstream change is
https://src.chromium.org/viewvc/chrome?revision=221010&view=revision
Once we get that change, you'll see the widget example browser start to
paint a blue progress rectangle in the background of the URL bar. Also,
a progress bar was added to the quicknanobrowser, but it will be stuck
at 0 for now.
Change-Id: Icbaa01b86c013e0052b3abb7672c38e57128f44a
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds a favicon API modelled after the WebKit2 QQuickWebView API, but
using an http(s) URL instead of a custom protocol, because there's no
icondatabase yet.
The icon URL lingers even when a new load is committed, until the load
finishes. It might be more prudent to clear the icon when committing a
new load, but I opted to let the app take care of that detail if
desired. Many browsers show a spinner instead of the favicon while
loading, for example.
There's no widget API implementation for favicons yet, because that API
only makes sense if we have a full-fledged icon database (case in
point: QWebEngineSettings::iconForUrl()).
Change-Id: I1e7b85104c80de2ae46a5fe9a273104d43a5c71f
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
| |
Change-Id: I58d83f4f33728f92e4bf13b6be30b15528fdd033
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move common.pri to the root directory to be able to use it with tests.
Remove nano browser specific logic (util.h include and common resources)
from this file and use relative paths in the examples instead.
This also remove unnecessary directives:
- lib doesn't have to be added to INCLUDEPATH since proper modules are used
- util.h doesn't need to be added to HEADERS, moc doesn't need to go through it
- MOC_DIR doesn't have to be adjusted anymore
Change-Id: Id706e7f2ef7c9607bdcd0ba63afecf5b5854262b
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
This also ajust the name to be consistent with other Qt examples.
- Move nano browser one directory level down,
also renaming them to match their target name
- Remove the dashes from the target names
- Rename the qtquick example directory to quick, matching the style in lib
Change-Id: I4a5e31be0b919ae596eadbf731be52372ae61151
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|