summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Simple experimental WebRTC API for QtQuickPierre Rossi2014-04-292-1/+45
| | | | | Change-Id: I18059c2894893d28c03dc790037bdd3ff28cfd07 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* WebRTC Widgets APIPierre Rossi2014-04-293-1/+61
| | | | | | | | Simply reuse the existing feature request approach that was used for geolocation and notifications in QtWebKit. Change-Id: I8fec4f4e9e81b491163912fadb4ce17d343864dd Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add WebRTC supportPierre Rossi2014-04-2914-0/+725
| | | | | | | | | | | | | 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>
* Add a way of using UI dialogs for authorizationPierre Rossi2014-04-298-20/+54
| | | | | | | | 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>
* Update snapshot to include WebRTC dependencies.Pierre Rossi2014-04-291-0/+0
| | | | | Change-Id: I1dcf709da30af55d5917a0958f08be380cf63feb Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Update patches with fixes for the emulator and raspberry piAndras Becsi2014-04-291-0/+0
| | | | | Change-Id: I475941acdaa2581851f69199c0ecda7edddab389 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Set target_arch based on QT_ARCH for x86 and x86_64Andras Becsi2014-04-291-0/+3
| | | | | | | This is needed when cross-compiling for the emulator. Change-Id: I499c97df2deba8b91162c8f636bb5a25eba1bc29 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* There is no neon on arm pre v7.Zeno Albisser2014-04-281-1/+1
| | | | | Change-Id: I0a446f916627ec2519c59fd101a140bf21f1a1b3 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Do not assume that the webview only contains RWHV delegatesAndras Becsi2014-04-251-3/+2
| | | | | | | | | | | | | | This fixes an assertion for QML code like: WebEngineView { ... MouseArea { ... } } Change-Id: I7a9bfb801c81ea53c1cc830b44fe224a0b78db2d Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Clean up cancel fling gesture and latency info for gesturesAndras Becsi2014-04-251-14/+5
| | | | | | | This is similar to how the aura code changed with the new snapshot. Change-Id: I57ef8a8a42c6b880988068c0de26df59fcf436fa Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Shrink the debug library size even moreAndras Becsi2014-04-251-1/+2
| | | | | | | | | | Pass remove_webcore_debug_symbols=1 to gyp to reduce the library size. In case the symbols are needed CONFIG+=webcore_debug can be passed to qmake. Change-Id: I383aa3c60bfe6a0dc5344d37334b25810087d4e9 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Add proxy functions for libc symbols to allow sandboxing.Zeno Albisser2014-04-242-0/+109
| | | | | | | | | | | | | | | | These functions override symbols exported by libc, such as fopen, localtime and similar and call the exported _override function in QtWebEngineCore. This code should live in an executable, but never in a library as it causes erratic behavior depending on the linking order. With this change we now also update the submodule shasum for the 3rdparty submodule to point to a commit that includes the patches for eLinux. Change-Id: I88f32c615181eefff2b38b374eed6f57c677d186 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Update eAndroid for new snapshotAndras Becsi2014-04-243-3/+74
| | | | | | | This patch adds configurations and updates command line switches. Change-Id: I0223695cc3a743bb2364a73e56fe5391dc43663d Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Update the 3rdparty submodule and patch filesJocelyn Turcotte2014-04-221-0/+0
| | | | | | | Change-Id: Ifa50b810f27f0f9307e1cbe27795a5f4e6b3c335 Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix links not opening on Google+ and GmailJocelyn Turcotte2014-04-152-0/+25
| | | | | | | | | We missed a very important overload of WebContentsDelegate used by window.open to navigate new pages. The logic is mostly taken from chromium/content/shell/browser/shell.cc. Change-Id: Ib359edb61c1ee6eab89e2ebdc2aad2d944fea712 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Windows: Fix a crash in ContentMainRunnerImpl::InitializeJocelyn Turcotte2014-04-151-1/+6
| | | | | | | | | It will try to dereference the SandboxInterfaceInfo* that we pass it. Fix the issue by creating a dummy instance on the stack when calling it. Change-Id: Ibdddf4ff9c9e5b179ec1cb1dfb4355a0f9885fd5 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Windows: Use the runtime library the same way as QtJocelyn Turcotte2014-04-151-0/+3
| | | | | | | | | | | | | Using a custom allocator prevents us from allocating memory in Chromium cc files and freeing it in our code. Always use the normal CRT heap allocator to allow this. This also makes sure that we use the same /M flags for Chromium translation units as for Qt when dynamically linked. We won't support statically linking QtWebEngine at first anyway. Change-Id: Ifa044c7d3cf39929f7e4ca1c4c4cb3a9dea96266 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Cleanup the QtWebEngineWidgets public headers and APIJocelyn Turcotte2014-04-1518-3404/+8
| | | | | | | | | | | | | Headers were left intact to leave a trace of the evolution compared to the QtWebKit API and to make it easier to work until we had a basic subset of the API implemented. With the upcoming release, this patch removes this convenience in the aim of starting polishing the headers and the documentation for the upcoming release. Change-Id: Iae436b4ec041d771a7002575e122835802bc9f3e Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Replace uses of QWebEngineFrame with a security origin URLJocelyn Turcotte2014-04-157-22/+31
| | | | | | | | This changes implemented methods. The rest of the references will go away with the public headers cleanup. Change-Id: I82340cd7a4488c4b463489ae98cd9c16de4e7487 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Fix the leak of resources imported more than onceJocelyn Turcotte2014-04-151-13/+26
| | | | | | | | | | | | | | | | | | | | | | | A compositor owns the resources it produces through its ResourceProvider. A refcount for each resource is kept according to how many times it is exported to parent compositors. If the same resource is sent more than once to the parent, the resource needs to be returned as often in CompositorFrameAck messages to make sure that it gets cleaned up. Since we would overwrite any previous MailboxTexture with a new one when receiving a TransferableResource, this would break the refcount of the child compositor and keep the resource alive. This would cause http://ie.microsoft.com/testdrive/performance/penguinmark/ to continuously allocate new textures in the GPU thread. Fix the issue by counting how many times the resource was imported, as ResourceProvider does itself, and populate ReturnedResource::count according to that value. Change-Id: I3a1f8da41338b5d431592f92fca8ef865ee2415c Reviewed-by: Arvid Nilsson <anilsson@blackberry.com> Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Update QWebEnginePage::WebWindowTypeJocelyn Turcotte2014-04-153-4/+21
| | | | | | | | | | | Expose the same values as currently available in QQuickWebEngineView::NewViewDestination. Rename the WebModalDialog to WebDialog, which actually replaces the tool/status/menuBarVisibilityChangeRequested signals. Change-Id: Icc103f434fb3eca49f1a53e476e101c3d6fffd36 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix how NewPopupDisposition is exposed in QQuickWebEngineViewJocelyn Turcotte2014-04-159-16/+18
| | | | | | | | | | | | | | | | | | 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>
* Map Javascript console message level to enum values.Michael BrĂ¼ning2014-04-148-11/+43
| | | | | | | | 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>
* Buildfix for WindowsZoltan Arvai2014-04-111-0/+2
| | | | | | | | You cannot jump past a declaration with an initializer unless the declaration is enclosed in a block. See MSDN compiler error C2360. Change-Id: I692b0f256decf70b6153703ff59f74596cfc2861 Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Use a fence sync to synchronize GL between threadsJocelyn Turcotte2014-04-105-3/+114
| | | | | | | | | | | | | | | | | 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>
* First iteration of adujsting widgets docs and snipperts.Michael BrĂ¼ning2014-04-104-26/+18
| | | | | | | | * Removes inappropriate licensing info. * Corrects simple snippet. Change-Id: I9ac7738d8da22957aa32c91fdcbf81ddedefed72 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Fix an false positive assertion with context menuPierre Rossi2014-04-101-0/+3
| | | | | | | | | | | | Due to the asynchronous nature of context menu events in chromium, we need to filter out the Qt generated events, and rely of what comes back from the chromium side. We keep a flag to ensure we're always in a consistent state, but the part re-setting it in QWEView went missing. This simply re-adds it together with initializing it to false upon view construction. Change-Id: I5d187faf93742898c96a1951b7dc477ce1b3f5bd Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix broken experimental.viewport.devicePixelRatioArvid Nilsson2014-04-091-0/+8
| | | | | | | | | | | | | | The experimental.viewport.devicePixelRatio should be applied in addition to any native devicePixelRatio inherent in the window system or GUI framework. This patch updates RenderWidgetHostViewQt::OnSwapCompositorFrame to match the implementation of RenderWidgetHostViewQt::GetScreenInfo and take the dpiScale (experimental.viewport.devicePixelRatio) into account. Change-Id: Ieadd9fbc73d937d5b5a318091c1157b281bd23c9 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Sort embedded_linux.pri alphabetically.Zeno Albisser2014-04-091-11/+11
| | | | | Change-Id: Ie907ade6c4888f450ee22d4d6bfd00f0e2d1fa09 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Do not use aurax11 clipboard on embedded linux.Zeno Albisser2014-04-091-0/+1
| | | | | Change-Id: I0ed2bd7f27bfba863331390bd5630b552cd41af4 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add GLContextHelper class for EGL context creation.Zeno Albisser2014-04-096-1/+174
| | | | | | | | | | | | | | | | | | | | 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>
* Widgets: Fix a crash on shutdownJocelyn Turcotte2014-04-092-2/+3
| | | | | | | | | The root node doesn't clean itself up immediately inside the SG renderer when destroyed. Just avoid the issue by destroying the renderer first. Change-Id: I833b7fdc411f149631fd13d1c1fca515b9402bf4 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Remove the RenderWidgetHostViewQtDelegateQuickBase templateJocelyn Turcotte2014-04-084-189/+206
| | | | | | | We now only have a QQuickItem subclass and this isn't needed anymore. Change-Id: I3a10943e54f52d1554dc76ccc1841aaacd5171e2 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Get rid of the BackingStore rendering pathJocelyn Turcotte2014-04-0823-447/+49
| | | | | | | | | 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>
* Render the widgets view using the scene graph into a QOpenGLWidgetJocelyn Turcotte2014-04-0815-63/+153
| | | | | | | | | | | | | | | 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>
* Revert part of the RenderWidgetHostViewQtDelegate refactoringJocelyn Turcotte2014-04-0820-436/+138
| | | | | | | | | | | 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>
* Fix reseting of the quick history list modelPeter Varga2014-04-034-11/+10
| | | | | | | 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>
* Run cygwin configurator before build on WindowsZoltan Arvai2014-04-031-0/+0
| | | | | | | | | Running setup_mount will ensure that every build uses it's own cygwin and prevents mixup with other instance. Update 3rdparty's shasum. Change-Id: Ic8f25ce7c6077318bac36b15cfe23a5a27ed51b9 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add Chrome version to our user agent stringPierre Rossi2014-04-022-1/+11
| | | | | | | | Some websites still rely on user agent strings to detect available features in 2014 apparently. Change-Id: If7240be15d6bfb24618bea0d45ed8dc0d7392af4 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Make WebUI popups work with QtQuickPierre Rossi2014-04-027-15/+270
| | | | | | | | | | | | | 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>
* Fix iconChanged signal and add favIconLoad QML testSzabolcs David2014-04-011-3/+20
| | | | | | | | | | If WebContentsDelegateQt::DidUpdateFaviconURL was not called after a page load, we need to reset the favicon URL. We can use the navigation entries to store favicon related information. Change-Id: I7bcfbd46c176fabce319eba32c379a293f8ebba6 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Add the base qualifier where base::string16 is usedArvid Nilsson2014-04-016-14/+14
| | | | | | | | | Be explicit about this since the "using base::string16" statement will be going away eventually. Change-Id: I292928345eec746bea04e15a3f25e46193704463 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Update clipboard selection when selection changesAllan Sandfeld Jensen2014-03-311-0/+9
| | | | | | | | Update the selection when selection changes similar to what is done by Gtk and Aura RenderWidgetHostView's. Change-Id: I92ddd2925c6401693b001baf9ff9f5858c9c504b Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Prevent an embarassing crashPierre Rossi2014-03-311-1/+1
| | | | | | | if people do something as nasty as "return this;" in createWindow. Change-Id: Id9c3e22607e4676b7ea286a6f85816b347262615 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Easily enable proprietary codecsPierre Rossi2014-03-311-0/+2
| | | | | | | | | | | | | | | While we can't ship this by default in our binary packages in the future, it would be nice for users who can afford it to easily build with support for h264 among others. And for our private use, that means we can now watch videos from Vimeo. This simply requires passing WEBENGINE_CONFIG+=proprietary_codecs to qmake when building. Change-Id: Ib2274a7cfd053aaa3d38ac18e360310691e11534 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com> Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Centralize OpenGL initializationSimon Hausmann2014-03-314-1/+85
| | | | | | | | | | 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>
* Implement QWebEngineHistoryItem::lastVisitedJocelyn Turcotte2014-03-314-2/+17
| | | | | | Change-Id: I105cb2a0a2479b146e2ab68db6d194ac2ac2d3f9 Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix tst_QWebEngineHistory::clear()Jocelyn Turcotte2014-03-311-0/+1
| | | | | | | Make sure that the navigation actions are updated when clearing the history. Change-Id: I663d2b68164dd695005165595ea08d051aae9fab Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Implement QWebEngineHistory serializationJocelyn Turcotte2014-03-315-12/+178
| | | | | | | | | | | | | | This does uses logic taken from Chromium's state save and restore code. The history version is incremented from the same method in QtWebKit in cases where the application would try loading a stream from a previous version using QtWebKit. In all cases where Chromium does a restore of a serialized history, it does so on a fresh WebContents instance, thus we must do the same and some of the initialization code has to be updated. Change-Id: I45abb052073bd44c9cb47bc2abcf4b558fe3dbbd Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Do not store a WebContentsAdapter directly in QWebEngineHistoryJocelyn Turcotte2014-03-314-31/+31
| | | | | | | | The adapter might change, while the page association should always remain. Change-Id: Ib2b49c599d497864484dd6758f47473d70fe4cb3 Reviewed-by: Andras Becsi <andras.becsi@digia.com>