| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This also explicitly enables impl-side painting, which is enabled
by default on Android, hard-coded behind an #if defined(OS_ANDROID).
Change-Id: Iacc6cff82c0f071d1c8901977748d6164fb0a87d
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also make sure that this version number appears in the user agent
string and in the QML imports. The plan, unlike other Qt modules,
is to keep our module and QML versions in sync to make it easy
for developers to figure out what API is available in a given version.
The QTWEBENGINECORE_VERSION_STR define is explicitly set in the .pro
file since we don't call syncqt to generate a version header for the
core module.
The 0-major version currently causes the library name to start with
libQt0 instead of libQt5, but this is something that we can fix in
qtbase once we want to officially support linux desktop with
QtWebEngine 1.0.0.
Change-Id: I31915e84869b4db456416ef1f85a2296b8a06c99
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Q_UNREACHABLE in RenderWidgetHostViewQt::GetNativeView is now called
through RenderViewHostImpl::OnStartDragging since the last Chromium
update.
Even after removing this, OnStartDragging will now also try fetching
the device pixel ratio through gfx::Screen::GetNativeScreen().
Provide a dummy implementation of gfx::Screen only to avoid the crash,
the class still doesn't do anything and is filled with Q_UNREACHABLEs
to catch if any of those methods are reached in a future Chromium
update.
Change-Id: I2e9dafab5e4622df97100dd7a859523067635118
Reviewed-by: Andras Becsi <andras.becsi@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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The NVidia driver needs more than a glFlush to ensure that GL commands
consuming Chromium resources are run only when the resource is completely
produced by the Chromium GPU thread.
This produces artifacts and an uneven frame rate in WebGL examples
on this kind of hardware.
Use the same mechanism as used by gfx::GLFence, doing a few things
manually to cope with the fact that Chromium and Qt both have their
own GL function table and contexts.
Change-Id: I33eeb1068994dc4176038a74579ce768b2bccb9d
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Shared EGL contexts should always be created on the same
thread, as otherwise context creation might fail.
We use a GLContextHelper singleton that is initialized
on startup and creates the contexts when requested
through a BlockingQueuedConnection.
There is a pretty and a correct solution for this problem.
This is the pretty one. It is based on the assumption
that Chromium decides to use the same or a similar enough
configuration for the EGLContext as Qt previously did.
But we prefer pretty over correct as the correct solution
would potentially impose a layering violation.
This is enabled for all embedded linux devices.
Change-Id: I910cc90d0f87fd6d1fe0a475b17ba56cd8c503f6
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SurfaceFactoryQt::loadEGLGLES2Bindings is needed to find
and load EGL and GLES2 libraries on embedded linux.
It also provides a function to query the native display.
We are using qmake variables at compile time to detect
where we should look for the libraries at runtime.
For EGLFS we query the native display through PlatformNativeInterface.
If the resource is not exposed by Qt (pre 5.4),
then we assume EGL_DEFAULT_DISPLAY, which is the right
parameter for close to 100% of the cases anyway.
OzonePlatformEglfs is just boiler plate code.
Change-Id: I3ad08a56c50d6160be653ffb168b3f1f791e5245
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead make sure that the QT and QT_PRIVATE variables are identical
in both core_gyp_generator.pro and core_module.pro, the former for
compilation and the later for linking.
This allows working around issues of qmake when handling -l switches
in libs. Some features on Windows append version numbers, while this
is not done when linking to Qt libraries via the QT variable.
Change-Id: I04b58a313335daeffc9510471553517c63908852
Reviewed-by: Andras Becsi <andras.becsi@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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GTK clipboard integration isn't working for us and we need a way
to get clipboard requests from the renderer into the system clipboard.
This patch adds a Qt implementation to let Qt handle the platform
abstraction, even though the Chromium clipboard direct integration
could work on some platforms.
Change-Id: Ie7af5c6b4c662fc8f4109b2e85e9f594d6d90b0d
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Created new StreamVideoNode & StreamVideoMaterial classes
for QSG renderer. These classes duplicate the logic of
chromium's direct renderer GLRenderer::DrawStreamVideoQuad.
Added support for new DrawQuad material in DelegatedFrameNode.
Added support for external textures in MailboxTexture.
Change-Id: If569b07dfef985f9833de7e64eeb3f952026bca4
Reviewed-by: Arvid Nilsson <anilsson@blackberry.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Do not add version to end of filename by
Qt5/mkspecs/features/resolve_target.prf, otherwise nmake install
won't find it.
Other projects already have skip_target_version_ext in they CONFIG.
None of the Qt libraries has version in they filename on Windows.
Change-Id: Ifc56a12b9312e7cefe26f5d19e1d1769e73298f6
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>
|
|
|
|
|
|
|
|
|
|
| |
BUILDING_CHROMIUM define have to be moved to the related project
in core from default_pre.prf. Otherwise dllexport would be used
instead of dllimport while linking to webengine and webenginewidgets.
Change-Id: Ifed117f420591dcb7f97f12924b83ab86ead6216
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
| |
Change-Id: Ie44a8733e3f9123c3d086f8df9ddcf2833bd235b
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This follows the model used by the Android WebView's AwRenderViewExt
class.
QtRenderViewObserverHost is attached to the WebContents and
QtRenderViewObserver is attached to the RenderView in the render
process. Both can exchange messages together and allow async commands
to be carried from WebContentsAdapter and the result sent back
through WebContentsAdapterClient.
This patch also adds a renderer subdirectory to start matching the
directory structure of Chromium.
Change-Id: I724ca2fe2a597dcd2a15e8e1a23c4eeba1190703
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Refactor JavaScriptDialogManagerQt to support a Qt Quick dialogs
friendly approach.
Qt Quick dialogs are still missing a prompt, so we use a "handmade"
one. This should be solved before 5.3 though.
Change-Id: I965df66837b2e81d6e4618a8da1167a37661c26e
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
| |
Change-Id: I6092483d46b8d0db6193b92f2744bd836beb4912
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
|
|
|
|
|
|
|
| |
This allows us to customize paths on BlackBerry, where QtWebEngine is
currently installed to an different location than the rest of Qt5.
Change-Id: I7144c992bed9fe4d7543ce0d23ee8cd5f5669dd9
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
- Use QMAKE_RESOLVED_TARGET to find out the core lib target name
- Pass the NINJAFLAGS env var to ninja instead of passing the content
- Remove invalid dependency rule for the ninja target, which is only
parsed because it looks like a qmake condition.
Change-Id: I09bba8f350308d3249369171d0a3d5824f184590
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
Support qrc resources in html. For example:
<script type="text/javascript" src="qrc:///xx.js"></script>
<image src="qrc:///xx.png"></image>
Change-Id: I490efb7cc300bf894659e79948b65729a12ad73d
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
We need to add the no_check_exist value in order for qmake to just accept
that those files will eventually exist.
This has the benefits of not messing with $(INSTALL_ROOT) and also
stripping the library, which could prove useful.
Change-Id: I43c230f185420ba92ff8e86f49b4e838ca5dd917
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
| |
Via QLibraryInfo. Also pick the name from qmake, and drop the
hardcoded value.
Add better error reporting when this fails.
Change-Id: I44891a16f079b6c3c334f7f2bafa9edc0b4d69e4
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used to wrap various .pak files in qrc files, but it turns out to be
very memory inefficient compared to chromium's approach of mmaping
those files.
Drop the pak->qrc logic and instead add some pure gyp targets to repack
the resources.
We then install those with qmake and look them up with QLibraryInfo.
Change-Id: I6dd3cedf6afa626ed181463911fef8885c9e9add
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
| |
This will be necessary in order for the render process to load
localized strings among other things.
Change-Id: Ibb75e49f0bc583c158af61817e5b350f3534ec16
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NOTE: To build after this you should rerun init-repository.py or run
$> git submodule sync
$> git submodule update
$> git config qtwebengine.chromiumsrcdir src/3rdparty
This makes everything build by adjusting paths.
Other mixed-in changes:
- Rename qtwebengine_src variables in scripts to qtwebengine_root to
avoid confusion.
- Cleanup the release and debug extra targets that were in lib.pro.
This file has also been split into src.pro and core.pro.
Change-Id: Ieee9158a65f526b15244eaca59e779b7069d337e
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
This only move files without adjusting any paths.
This moves:
- lib/quick -> src/webengine/api (API files)
lib/quick -> src/webengine (other files)
This contains the main QtWebEngine module library since
<ec7b2ee70a8b2db7fb87f50671a001ddd54697b0>.
- lib/widgets -> src/webenginewidgets
Also rename this directory to match its module name and rename Api to api.
- lib -> src/core
- process -> src/process
- resources -> src/core/resources
- tools/* -> tools/scripts/
The build directory is spread as follow:
- build/build.pro -> src/core/gyp_run.pro
- build/qmake_extras/* -> src/core/ (for the host and target .pro files)
- build/qmake -> tools/qmake
- Build related scripts -> tools/buildscripts
Change-Id: I0cded1de772c99c0c1da6536c9afea353236b4a1
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|