summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* 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>
* Rough port of the documentation to QtWebEngineJocelyn Turcotte2014-03-3115-791/+770
| | | | | | | | | | | | | | | 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>
* Import the QtWebKit documentationJocelyn Turcotte2014-03-3119-0/+4741
| | | | | | | | | | | | 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>
* Fix QtWebEngineProcess name on WindowsZoltan Arvai2014-03-311-0/+5
| | | | | | | | QtWebEngineProcess has an exe extension that need to be added to processPath. Change-Id: I2ab1691f7af35c76bf693046396b5464e0f2dde2 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Add SurfaceFactoryQt and OzonePlatformEglfs.Zeno Albisser2014-03-316-2/+327
| | | | | | | | | | | | | | | | | | | 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>
* Add more options for gyp on WindowsZoltan Arvai2014-03-281-0/+8
| | | | | | | | Turning off gyp's parallel processing that broken on Windows. Disable nacl, remoting and ash. Change-Id: If695799f94111135fcdf4130180e998d0094055d Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix QQuickWebEngineForwardHistoryListModelPeter Varga2014-03-281-1/+1
| | | | | | | | | | 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>
* Fix typo: remove unused function prototype from headerPeter Varga2014-03-281-1/+0
| | | | | Change-Id: Icd56b33c9bd3fe0f906f5ea6257713ab509ba33d Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Override OPENSSLDIR for embedded linux.Zeno Albisser2014-03-281-14/+16
| | | | | | | | | | | Boot2Qt will ship openssl configuration and ca certificates in /usr/lib/ssl. At runtime the environment variable SSL_CERT_DIR can be used to override the location for certificates. Change-Id: Ib5a55f0ff6874e497b3ca9163e4a11f3a1805de0 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add overrides to RenderWidgetHostViewQt on WindowsZoltan Arvai2014-03-281-0/+5
| | | | | | | | More overrides for not yet implemented methods after snapshot update. Change-Id: I2fb7c7a4c7ae2094ccf0d791a75d268fc03f1602 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Force disable libstdc++ debug modeAndras Becsi2014-03-281-0/+2
| | | | | | | | | This reduces the debug library size by about 20% which should make it possible again to successfully link on the CI. Change-Id: Id0ced6b821032eb49a8e34aff81a7e1648a3dfff Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Introduce platform specific pri files for all platforms.Zeno Albisser2014-03-287-27/+76
| | | | | | | | Define qt_os for all supported platforms. Move simple platform specific flags into the pri files. Change-Id: I09b030f4a8a815f48a8100d81669a7729218efc2 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Get rid of GTK dependenciesAndras Becsi2014-03-2810-43/+130
| | | | | | | | | | Build with aura by default and remove GTK related code. This patch introduces a mechanism for setting gyp build configuration variables using a GYP_CONFIG and adds a desktop_linux.pri configuration for this target. Change-Id: I6b044ba52ebb20c187572669af94a6fc280b0412 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Adapt to API changes in new stable branch 1750Andras Becsi2014-03-2820-161/+216
| | | | | | Change-Id: If0cc263f36d396fd505c1d8b026e2493bfc29cc4 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Fix typo in the qquickwebenginehistory headersAndras Becsi2014-03-272-2/+2
| | | | | | | hisOTry -> histTOry Change-Id: I4744721bbd50a76054e38de9578f1f27e92982db Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Remove WebContentsView::SetPageTitle functionAdam Kallai2014-03-272-6/+1
| | | | | | | | | The titleChanged signal is emitted in WebContentsDelegateQt::NavigationStateChanged so We do not need to send this signal in SetPageTitle function any more. Change-Id: Id9a7efa59caae7aa99a82e840061adb7c5e8832b Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Remove wrong library path that is reported by icu-config.Zeno Albisser2014-03-251-1/+1
| | | | | | | | | icu-config reports the path to icu resources on the host so we need to remove this path again, when compiling for an embedded target. Change-Id: Ifaf1c07ad3d0a8794a109b253764834ea3ff6ddc Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Add qt_os embedded_linux for platform specific configuration.Zeno Albisser2014-03-252-6/+15
| | | | | | Change-Id: I2c7878b0f5a84bc299d6c033a69e1f2f904168f3 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix a missing titleChanged signal on navigationJocelyn Turcotte2014-03-241-0/+2
| | | | | | | | | | | WebContentsView::SetPageTitle is only called when the Blink page updated its title. For navigations we have to listen for NavigationStateChanged. Also update the history test to check this case. Change-Id: Ia89c61b32913d647a63b2fb9a4cdf3f6867c4f0c Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Base load signals on Blink loader eventsJocelyn Turcotte2014-03-217-44/+47
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix the HighDPI rendering of QQuickWebEngineViewJocelyn Turcotte2014-03-203-2/+12
| | | | | | | | | | | | | Use the ratio given with the compositor frame instead of taking it directly from the QWindow to make sure that we scale according to the rasterizing of the tiles. Set the scale directly on the DelegatedFrameNode by making it a QSGTransformNode to avoid creating an extra QSGNode. Change-Id: I95bd33c7c6d26e0d456d6df188779dc4e82f9d3b Reviewed-by: Arvid Nilsson <anilsson@blackberry.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Add Quick's navigationHistoryPeter Varga2014-03-207-0/+439
| | | | | | | | Add QQuickWebEngineHistory and list models providing API for the quick's navigationHistory. Change-Id: Ia86c94b120cc5d0b4757fc62386fc7a0dcb3e341 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Fix the Mac build when using the Qt SDKAndras Becsi2014-03-181-0/+3
| | | | | | | | | To fix the build of the core library override Qt's default minimum target version of 10.6 because we need to use libc++ for chromium which is only available from 10.7. Change-Id: I8896c4741d1c9b7bfe6b1c045704aeb2d5affd17 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>