summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix path for webkit_strings gypi dependency on Windows.Zoltan Arvai2013-11-191-1/+1
| | | | | | | Windows specific dependency points to the wrong path. Change-Id: Ib94f15e8872666c716ad6093b1f0ca957a050db7 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix Qt rcc's path in Qt5WebEngineCore.ninja on Windows.Zoltan Arvai2013-11-191-0/+1
| | | | | | | | | | | | | On Windows backslash in QMAKE_RCC causes wrongly generated Qt5WebEngineCore.ninja file. For example QMAKE_RCC's value generated to lib/lib.gyp as 'c:\Qt-5.2.0\bin\rcc.exe'. This turns to 'c:/Qt-5.2.0[BS]in[CR]cc.exe' in Qt5WebEngineCore.ninja after running qyp. That means \b is parsed as backspace and \r is pharsed as carriage return character. Current Windows versions can handle forward slashes in paths so backslashes can be replaced to forward slashes when needed. Change-Id: I814dc63df92b78ed5cae028e0b8c36dbf3eb1e49 Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Make sure platformNames for QtShareGLContext are compared lowercase.Zeno Albisser2013-11-191-2/+2
| | | | | Change-Id: I070e5b5f135f0e74eaf47bd5975892fd288dafab Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add a WebEngine.experimental QtQuick plugin library.Jocelyn Turcotte2013-11-187-3/+134
| | | | | | | | | | | | Bring this QtWebKit concept to our API as well to contain APIs that we aren't comfortable adding to the supported-forever group yet and allow trying them out unofficially for an undetermined number of releases first. Change-Id: I52c8655dfd2996ea461ac6c00de975002827a4c3 Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Arvid Nilsson <anilsson@blackberry.com> Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add an intermediate Qt5WebEngine module library.Jocelyn Turcotte2013-11-1814-21/+167
| | | | | | | | | | | | | | | | | | Make the WebEngine QtQuick plubin library a library only that fetches the API privatly from the official module. This will allow an experimental plugin library to also have access to the API classes, which it currently can't since the plugins aren't deployed the same way as module to <prefix>/lib. The module currently only export classes privately but the plan is to make this library the official linking point of entry for applications along with the Qt5WebEngineWidgets module. The WebEngineCore library could eventyally be merged into this module library if we can get gyp to play well with qmake. Change-Id: I5edb60b412e213b59f791a7b8df9f28c295502de Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Remove the need for application to set an RPATH.Jocelyn Turcotte2013-11-189-16/+8
| | | | | | | | | | | | | 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>
* Use a QImage instead of QPixmap in BackingStoreQt.Jocelyn Turcotte2013-11-152-20/+23
| | | | | | | | | | | | | | | | | This is mainly to get rid of the warning shown when using QQuickWebEngineView without delegated rendering with the threaded scene graph render loop: "QPainter: It is not safe to use drawPixmap() outside the GUI thread" The main advantage that QPixmap gave us was that QPixmap::scroll is provided. This patch pulls out some of its implementation to make the use case work with QImage. Since QPixmap is backed by a QImage with the raster paint engine, the previous behavior should remain except on the DirectFB platform, which we don't ship to yet. Change-Id: If77c9079ee95218519be1d092cad24635e29a279 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Delegated renderer: implement cc::DrawQuad::SOLID_COLOR.Jocelyn Turcotte2013-11-152-0/+24
| | | | | | | | | | | I could currently only test this with --enable-overlay-scrollbars. Background color quads still need some work in Chromium to be able to to use this kind of quads, see <http://code.google.com/p/chromium/issues/detail?id=114658>. Change-Id: I9c9bdb5c72b91827cfdb7e38e44755c6361a05cf Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add some QQuickWebView graphics stack tests.Jocelyn Turcotte2013-11-1511-3/+256
| | | | | | | | | | | This does basic sanity testing of the graphics stack for both the hardware accelerated and software codepaths. This also adds a required signal to report the CompositingSurface later on if the QWindow wasn't available yet when Chromium asked for it. Change-Id: I402ec5ade9114c78bea7960c5f0de989f54110e3 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Delegated renderer: enable by default for QQuickWebView.Jocelyn Turcotte2013-11-1511-41/+64
| | | | | | | | | | | This also allows the software code path to be enabled: - Programmatically by setting this dynamic property on the QCoreApplication: "QQuickWebEngineView_DisableHardwareAcceleration" - Through the Chromium command line switch "--disable-delegated-renderer" for quick development use cases. Change-Id: I32136d880444e0a24f042c7c4862950b7ed0c910 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Delegated renderer: Fix remaining synchronization issues.Jocelyn Turcotte2013-11-157-137/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes two issues: - The onFrameSwapped slot was connected with a QueuedConnection, this means that any previous frame triggered by Qt could be queued right before updatePaintNode is called, and be handled right after, thus picking our m_pendingAckFrameData and sending the Ack before this frame was actually swapped. - For cases where Qt triggers a new frame (e.g. typing text in a QtQuick text area) it would be possible that it starts rendering before m_pendingUpdateFrameData had been set, which would render the old frame while Chromium might be in the middle of rendering the new one on the same resources, or destroying them. The solution is grossly to do proper used resource reporting to the child compositors via cc::CompositorFrameAck::resources. We previously released all resources on every frame, and Chromium would resend back to us the ones that could be reused without change. We now instead only return unused resources, but this also means that we have to keep track of used resources ourselves. cc::DelegatedFrameData::resource_list only contain new resources to be added to the scene and we keep a deep copy of the cc::TransferableResource into our MailboxTextures. A few other changes that come with this: - A few null-checks can now be removed since we can better rely on the integrity of the information passed through DelegatedFrameData. - Since we can now prevent used resources from being destroyed while we use them, trigger a frame Ack immediately after updatePaintNode instead of waiting until the buffer is swapped, like ui::Compositor does. - MailboxTexture is now more autonomous, but still require some information from quads. Mark them as not containing alpha by default and fetch this information from quads when encountered. Change-Id: Ice235f3a98a179c87eec7fbcb9880e34b0ed1e73 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix qmake -r by moving load(qt_parts) to the end of the projectAndras Becsi2013-11-151-2/+3
| | | | | | | | | This is an issue for non-developer builds of Qt where the forwarding headers have to be generated before processing the examples project files. Change-Id: I683227c97a763c48b8ab090580f37f7134680c59 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Mark functions with Q_DECL_OVERRIDE where necessary.Zeno Albisser2013-11-1417-245/+222
| | | | | Change-Id: I15261c3737a3284b99308453132f09ee7889c444 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* [Autotests fixes] Don't assert if there's no QWindowPierre Rossi2013-11-131-2/+0
| | | | | | | | Or we won't be able to run QWebEnginePage autotests in debug. Change-Id: I0b479fe7de6bd10984201f292514c343a15135cd Reviewed-by: Zeno Albisser <zeno.albisser@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Move implemented properties aroundPierre Rossi2013-11-131-3/+3
| | | | | | | Out of the #ifndef Q_MOC_RUN block, so we can keep track of what's missing there. Change-Id: I53ef60b1a70b5495603d44fb23491c144891eb92 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fixup Webkit bug linksPierre Rossi2013-11-131-14/+14
| | | | | | | There's no such thing as bugs.webengine.org ;) Change-Id: Ie8ac6a6a0a4e6b23580084d36f334e2fd1cb25fb Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Remove the native window hardware acceleration support for widgets.Jocelyn Turcotte2013-11-135-24/+7
| | | | | | | | This experiment served its purpose and is now more often broken than useful. Change-Id: I73ea68c99dedcc8a3fe9004d130518daf146b493 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Delegated renderer: Add YUV video support.Jocelyn Turcotte2013-11-135-2/+415
| | | | | | | This basically reimplements GLRenderer::DrawYUVVideoQuad. Change-Id: I990e224d69b372c76e2174c174c9b82678e25b86 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Make fancybrowser build and linkPierre Rossi2013-11-124-44/+45
| | | | | | | Also update references in the doc. Change-Id: Ica4d77cb1db040b466c739e4fc1bfd37df544589 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Import fancybrowser examplePierre Rossi2013-11-1210-0/+524
| | | | | Change-Id: Ia61fbe3ef6b76c7530d10d4a3305d4208b3469ef Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Delegated renderer: Share context support for QNXArvid Nilsson2013-11-121-0/+2
| | | | | | | | | Add code to extract the EGL context on QNX for use as the share context in the Chromium GPU process/thread. Very similar to the other platforms. Change-Id: I54fba69283e984a392c11922da2483ce921ea594 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Delegated renderer: Put textures on those quads.Jocelyn Turcotte2013-11-1120-78/+667
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Use our own implementation of GetDefaultXDisplay.Jocelyn Turcotte2013-11-115-0/+60
| | | | | | | | This allows the Chromium GL code to initialize on the display created by Qt. Change-Id: I3d21f56c3792d6e99cb94690f56d7dd5c542045a Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Make RenderWidgetHostViewQtDelegate a pure interface.Jocelyn Turcotte2013-11-0616-251/+179
| | | | | | | | | | | | | | | | | | | | | | | RenderWidgetHostViewQtDelegate acts as a bidirectional interface to avoid exporting Chromium symbols outside of the core dynamic library. The problem is that, other than this, from the top layer point of view, its responsibilities are the same as RenderWidgetHostViewQt, and it would be better not to split its logic without properly defined responsibilities. Using it as a base class and interfacing through its protected methods is also cumbersome and make the destination of calls on the upper layer difficult to discern. Use instead a dual pure interface mechanism like WebContentsAdapter and pass the callback client interface directly in WebContentsAdapterClient::CreateRenderWidgetHostViewQtDelegate. This allows RenderWidgetHostViewQtDelegate to be solely what it should be, an interface. Change-Id: I4e55439ae7f9539cc9e360f0756fbf391405f3b7 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Move DelegatedFrameNode and the SG logic to its own file.Jocelyn Turcotte2013-11-065-324/+447
| | | | | | | This avoids polluting render_widget_host_view_qt_delegate.cpp Change-Id: I06af66f01f842e105bbded75b01f9c8346fd5df9 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Implement QWebEnginePage::runJavaScriptPierre Rossi2013-11-045-4/+165
| | | | | | | | | | | | | | | | | | | | | We can't have QWebFrame::evaluateJavascript in its old form for several reasons, the first of which being that we don't have a QWebEngineFrame class anymore. This is worked around by adding an optional QString parameter with the frame's XPath. Another issue is that the WebKit1 API was synchronous, and this would not play nicely with the very asynchronous nature of chromium we're now sitting on top of. In order to make this obvious when porting, we rename it to runJavaScript which doesn't return any result. This also introduces a template member function overload that will accept function pointers, functors and lambdas,much like Qt5's new signal/slot syntax, in order to get the result of the javascript evaluation back. Change-Id: I64e15a6f5a168936c52a4da2cef6285dfd16e0d5 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* rename export_from_git.py to take_snapshot.pyZeno Albisser2013-11-011-0/+0
| | | | | Change-Id: I08edcd97e9e2c38d9984b8ed2fbc9b64c88f8dd5 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Change export_from_git.py to take foll snapshots from upstream.Zeno Albisser2013-11-011-91/+105
| | | | | | | | | | | | | | | | | | | The updating procedure for chromium is now as follows: - update 3rdparty_upstream to the requested state for the snapshot - initialize 3rdparty submodule by executing git submodule init -- 3rdparty git submodule update -- 3rdparty - execute the export_from_git.py script from the QtWebEngine top level directory. - do a "git commit -a" in 3rdparty/ and write an appropriate commit message mentioning the exact state from where the snapshot was taken from. - do a "git show" to double check the changes for the snapshot look reasonable. - push the changes to the 3rdparty repository. Change-Id: I7806d284c9a146f857600cfef0face8331af646a Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix the build with the latest qtdeclarative/stable.Jocelyn Turcotte2013-11-011-5/+5
| | | | | Change-Id: I8764ff93fa94ef281ccd6fd6b7e7841aaedf05e8 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add patch: Fix the build with a GL ES2 configured Qt.Jocelyn Turcotte2013-11-013-0/+165
| | | | | Change-Id: Ice94e3cefca317573db3492dd6622d20f4b6e00a Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add patch: Do not forward declare UIResourceRequest, Identity, IdentityKey.Zeno Albisser2013-10-292-0/+146
| | | | | | | | This seems to be necessary to compile for OSX 10.7, and this is the OSX version we currently use in the CI system. Change-Id: I1edcf35baee040328de11801f58ce78ed1f8f6cb Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* QtWebEngine Dev Tools (Web Inspector)Chris Hutten-Czapski2013-10-2917-11/+441
| | | | | | | | | | | | | | | | | | To implement the Web Inspector we need a delegate to handle the http server and devtools connections, a landing page, a ContentClient to tell the devtools server where to find its frontend resources, those frontend resources, and an API for embedders to turn on inspectability in WebEngineViews. The frontend resources are build by the chromium build and are copied over as part of lib's build. The landing page was taken directly from content_shell. This should be replaced by either a new one for all QtWebEngine embedders or by a mechanism for embedders to supply their own (or both). Change-Id: Id4076d5ede34a91abf8dba443aed4dca4be1b3e5 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Implement popup dialogMary Wu2013-10-297-5/+33
| | | | | | | | | This is used to show like date time picker whose document content was generated in webkit engine. Change-Id: I900a6ae5f61646d2ef8497dccc114f7cb5882349 Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Silence a warningPierre Rossi2013-10-292-2/+1
| | | | | | | | While we're at it, QWebEnginePage::createWindow is non const, we could probably use a non const d-ptr in there. Change-Id: If5ad43dcb5d13454c87b7dc84d69b976b1b5e334 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Early return if no submodules were found using DEPS filesAndras Becsi2013-10-291-1/+4
| | | | | | | | While we're at it, also remove a stray currentDir variable in readSubmodules. Change-Id: Ia814906597f436513c4e57ed487ba478154eee4f Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Give the demo browser prettier popupsPierre Rossi2013-10-291-4/+56
| | | | | Change-Id: Ia8052bffc7be18c4d8f81c3a89ac4a64b1c589af Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Update shasum for 3rdparty submodule.Zeno Albisser2013-10-291-0/+0
| | | | | | | | | This is necessary because I pushed patches on top of the 3rdparty submodule to debug the mac CI bot. Change-Id: I3c3f2aff921bc8438bbbb446cbb3e125d21562f7 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Implement subprocessCall and subprocessCheckOutput.Zeno Albisser2013-10-291-13/+21
| | | | | | | | | These functions are shims for subprocess.call and subprocess.check_output and allow to display the command being executed on screen as well. Change-Id: I9507b8b4f0c006572211620c935e673f848dbbbc Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Implement parsing of Chromium .DEPS files.Zeno Albisser2013-10-292-9/+93
| | | | | | | | | | | | | | | | This is necessary to be able to checkout a chromium release branch. Chromium release branches do not make use of git submodule. Instead the dependencies or submodules are specified in a .DEPS.git file. Given some python scopes and callbacks for resolving variables, such a file can be invoked like a python script. The dependencies will then be exported into the provided scopes and we can use that information to initialize git submodules. Change-Id: Ibab09b1077720b73f89efff16d38b308f31cf2ab Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add missing $PATCH_DIR prefix for WebRtc patch.Michael BrĂ¼ning2013-10-291-1/+1
| | | | | | | It was missing in ac95a438620f3ec7c72ae60396ee26b3778d38b2. Change-Id: Ib08ea6466835e9d2c55bc7944ae1b758370da30a Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Implement inputMethodQueryAndras Becsi2013-10-257-4/+144
| | | | | | | | | | | | This makes it possible on touch devices to use a simple virtual keyboard input method that synthesizes key events. This is the minimal requirement to make the the boot2Qt Keyboard component functional. For more advanced input methods and the widget tests we will need to override inputMethodEvent as well. Change-Id: If9228ee6b1730d72e7424bdb33a9a9c46654507f Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Use explicit dependencies to specify build orderAndras Becsi2013-10-252-13/+34
| | | | | | | Explicit dependencies make proper parallel builds possible. Change-Id: I71f7d7fbee1244490dfcb040bb4145ab74d5c416 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Return the physical screen's geometryPierre Rossi2013-10-241-2/+2
| | | | | | | | | This is exposed through JS, and sometimes used to center popups and so on. Exposing the virtual geometry in the case of multi-screen setups can lead to quirky behavior. Change-Id: I4fe395dd2a19e5c96d79a33ed6ca08bed9e3d086 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Pass popup geometry along for new window creationPierre Rossi2013-10-246-6/+8
| | | | | Change-Id: Ideefbf272d0affa3f53c5795b779f1bfc9c9bf70 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add windowCloseRequested() supportPierre Rossi2013-10-247-0/+20
| | | | | Change-Id: If97c7b50efc7bf01095cb4a7138208ab2c6b2e9b Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add patch: Do not forward declare WebRtcVoiceChannelInfo.Zeno Albisser2013-10-182-0/+71
| | | | | | | | | This seems to be necessary to compile for OSX 10.7, and this is the OSX version we currently use in the CI system. Change-Id: I2363b48b66cd7fda603ff9783934ca44c1656723 Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Add javascript dialogs supportPierre Rossi2013-10-1712-5/+221
| | | | | | | | | | This is just the basic core part and widgets plumbing and default implementations of the virtual functions in QWebEnginePage. QtQuick implementation is still yet to be done Change-Id: I7cf8d6e5ec0bf747d45e9914db57bd0e4ef95b7f Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Build fix for the Widgets tests can be running by make check.Adam Kallai2013-10-163-3/+9
| | | | | Change-Id: Ic5ec80679f19235f441108e99e06d489ff2cabc3 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix qmake_extras.gypi generation on Windows.Zoltan Arvai2013-10-142-2/+6
| | | | | | | It has a section that tree times appended on Windows because qmake does debug_and_release. Change-Id: Iba86e578a52846cf0e95e1e7c901879ef5f8ea0b Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix python script calling on Windows.Zoltan Arvai2013-10-141-2/+2
| | | | | | | | On Windows a python file without extension is not runnable by itself, it needs the python executable. Change-Id: I99cbfadc790acf3b3205faf6b940c26fb3c71e89 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>