summaryrefslogtreecommitdiffstats
path: root/src/core
Commit message (Collapse)AuthorAgeFilesLines
...
* 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>
* 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-289-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-2819-161/+216
| | | | | | Change-Id: If0cc263f36d396fd505c1d8b026e2493bfc29cc4 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Zeno Albisser <zeno.albisser@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-213-14/+22
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* 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>
* Tooltip support.Pierre Rossi2014-03-143-4/+5
| | | | | | | | | | Basic tooltip support for widgets relying on the existing QToolTip mechanism. Left unimplemented on the Qt Quick side for now since ToolTip support is still very much a work in progress there. Change-Id: Ia4bfd715a224e0cbc147c8860e131d1545cebe1e Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Fix clipboard build on WindowsZoltan Arvai2014-03-141-0/+2
| | | | | | | | Add missing guard to clipboard.h. Exclude unneeded Windows specific source files from build. Change-Id: I40fbea35dc1721ddf4e9c184515d57428a7ffe4d Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Always disable tcmalloc.Zeno Albisser2014-03-111-6/+0
| | | | | | | | | | | | | | | We cannot enable tcmalloc as otherwise we would have to use it for all of Qt as well. If we allocate with tcmalloc and free without (or the other way round) this leads to errors. Specifically it led to something that looked like a double free corruption on embedded linux for an event that is created in qtwebengine code but deleted within Qt. Change-Id: Ia8c8da09e78968648046761e34f7f674769cfdc2 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix deployment of qtwebengine_locales with make installAndras Becsi2014-03-101-2/+2
| | | | | | | | | | The install_locales target silently fails when running make install with the message "install: omitting directory." Add all the translations to the files variable and set the path to $$[QT_INSTALL_TRANSLATIONS]/qtwebengine_locales. Change-Id: I375077982d9b3e2154cf90ae13142bb42a07e38d Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix debug_and_release buildsJocelyn Turcotte2014-03-071-14/+27
| | | | | | | | | | | | | | | This makes sure that gyp_run.pro follows the same behavior as core_module.pro and that ninja is run for each config, in the appropriate directory. A special .NOTPARALLEL make fake target is added to avoid running ninja for both configurations in parallel (this would cause build failures). This target will be ignored by nmake, but might cause issues if trying to build with jom. Change-Id: Ibaa5f6aa4972cb24c83cc7a63e496938a5c16a3f Reviewed-by: Zoltan Arvai <zarvai@inf.u-szeged.hu> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Use the shadow build directory for the ninja outputJocelyn Turcotte2014-03-073-7/+7
| | | | | | | | | | | | The gyp/ninja build is moved from out/(Debug|Release) to src/core/(Debug|Release). The ninja build as well as generated gyp files and python intermediate files all stay in the source tree for the moment. Change-Id: I6948380c45896540fe508238ceef9fe48e41f5af Reviewed-by: Zoltan Arvai <zarvai@inf.u-szeged.hu> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Do not pass linking information from qmake to gyp and to qmake againJocelyn Turcotte2014-03-072-3/+6
| | | | | | | | | | | | | 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>
* Deploy QtWebEngineCore as a Qt moduleJocelyn Turcotte2014-03-074-19/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Override path for perl, bison and gperf on WindowsZoltan Arvai2014-03-051-0/+3
| | | | | | | | Use these dependencies from environment. No need to include them in the snapshot. Change-Id: I81623cc15e8c1e9431c5569985c90a4fbac638e7 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Add comman line switches needed for embedded AndroidAndras Becsi2014-03-041-4/+22
| | | | | Change-Id: I870952054a11ec531e2d2a85ea1331cc67a5b8f3 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Add opacity control to video texture streamingMansoor Chishtie2014-03-041-3/+8
| | | | | | | | | Modified fragment shader of StreamVideoMaterialShader class to support alpha. Added m_id_opacity member to the class and update it with state.opacity. Change-Id: I92173fac84c48862fb92f3a6338acf8c9bf91bc1 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Add Qt clipboard integrationJocelyn Turcotte2014-03-044-0/+443
| | | | | | | | | | | | 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>
* Add HTTP and proxy authentication signals directly to QWebEnginePageJocelyn Turcotte2014-02-286-1/+224
| | | | | | | | | | | | | | | | | | 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>
* Extend search path in libvpx to enable build with QtWebEngineZoltan Arvai2014-02-281-0/+6
| | | | | | | Paths are paritally hardcoded for Windows in libvpx. Change-Id: Ic1c537bcc8b988c9803326709e38f44cb0943ee3 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Handle CheckerboardDrawQuads in DelegatedFrameNodeAndras Becsi2014-02-261-1/+12
| | | | | Change-Id: I66541842650af4a2cc50cd0443eacde510df566f Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Video texture streaming support via external EGLImage texturesMansoor Chishtie2014-02-254-2/+246
| | | | | | | | | | | | 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>
* Fix unused variable suppression on WindowsZoltan Arvai2014-02-241-4/+4
| | | | | | | | | MSVC fails with undefined type error when an argument passed by reference but suppressed as normal variable. Change-Id: I93a89aea4fae5f820c9ab0d1222d63b01ca3ed3c Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Implement QInputMethodEvent::Attribute translation and compositionAndras Becsi2014-02-211-8/+55
| | | | | | | | | | | Translate QInputMethodEvent::Attribute list to WebCompositionUnderline when processing input method events, and implement ImeCancelComposition to fix input method handling with the Qt Virtual Keyboard technology preview. Change-Id: Id06db3d04066841093ed90cabd659def3cb3b73c Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Keep the selection when done searching to match Chromium's behaviorJocelyn Turcotte2014-02-211-1/+1
| | | | | | | | | This basically transforms the "search selection" into normal selected text when findText(QString()) is called and allow pressing enter to trigger links, etc. Change-Id: I590dfddef174d3ebf2f36453b5f44e692bf5f827 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Implement basic editing actions for QWebEnginePageJocelyn Turcotte2014-02-202-0/+50
| | | | | Change-Id: I1b58d2b2e86f60e296ae48095ed8d5e8172e0d1e Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Cancel ongoing "fling" animations on tap-downAndras Becsi2014-02-191-4/+20
| | | | | | | | Synthesize WebGestureEvent::GestureFlingCancel on if we receive a WebGestureEvent::GestureTapDown to stop the ongoing scroll animation. Change-Id: I5b500ebbde815a54a466736492c2b5781f5ef91e Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Fix filename in core_gyp_generator.pro's makefile on WindowsZoltan Arvai2014-02-191-0/+1
| | | | | | | | | | | 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>
* Avoid locking up the web view when starting a dragJocelyn Turcotte2014-02-142-0/+13
| | | | | | | | | | | We currently don't have an implementation for drag and drop and we need to explicitly call SystemDragEnded to avoid leaving the render process in an inconsisten state. See http://crbug.com/157134 Change-Id: I52220602d4e4832d11ef601589a588c91bb81285 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Make Qt 5.2 a minimum requirementPierre Rossi2014-02-145-15/+0
| | | | | | | | 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>
* Fix title getter in WebContentsAdapterPierre Rossi2014-02-131-2/+1
| | | | | | | | Using GetTitle directly seems more reliable than going through the navigation controller. Change-Id: I0529a92295de063c6cea3371cdb9c44602950e9a Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix path service assertionsAndras Becsi2014-02-135-27/+21
| | | | | | | | | | | | | Registering a path provider did not turn out to be a clean enough solution for overriding chromium paths because of debug assertions that require the key range not to collide with already registered path providers. Instead of patching chromium or using workarounds switch back to using PathService::Override and only replace the jni-based default PathProviderAndroid on embedded android. Change-Id: I4530bc8fa3eba36c0d2403729be9a792f3c2120f Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
* Implement QWebEnginePage::findTextJocelyn Turcotte2014-02-135-0/+38
| | | | | | | | | | | | | | | | | | | A few changes to the API: - Return the success result asynchronously. - FindWrapsAroundDocument and HighlightAllOccurrences are enabled by defaults and cannot be disabled. - Found text isn't updating the selection on the page like QtWebKit did, but triggers a separate state not available. A find count and current index could be exposed, but isn't in this case to keep the API delta lower. This also adds the possibility to pass bool results through the CallbackDirectory and add a new tst_QWebEnginePage::findTextResult test since the old test relied on the selection to be updated when the searched text is found. Change-Id: I8189b5aea8d832df183c6c1ae03e3f08198a9c45 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Implement QWebEnginePage::selectedTextJocelyn Turcotte2014-02-135-0/+17
| | | | | Change-Id: Idebde8da0befbea7ccc5942de1e09fcc61ce16d4 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Move the requestID argument before the resultJocelyn Turcotte2014-02-136-18/+18
| | | | | | | | | | This tries to get the order of declaration to be consistent. It also follows the order used by Chromium in some places where the routing_id usually comes first, then the request_id and then the result of the asynchronous request. Change-Id: I88e164dee67e1631161a222f7dd7a4679c3d3acd Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Avoid an extra loadStarted/Finished on errorJocelyn Turcotte2014-02-121-1/+4
| | | | | | | | | | | | | | Chromium currently triggers the load of an error page synchronously from the render process when it encounters a load failure. This has the nasty effect of producing extra loadStarted and loadFinished signals, the later also emitted as a successful load. Disable error pages loading until we can implement the error page extension properly. Change-Id: Id6aebc6f63bd810b37d89e9297c0b221e8b81448 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix tst_QWebEngineFrame::setUrlWithFragmentJocelyn Turcotte2014-02-121-1/+3
| | | | | | | | The query string and the fragment are part of the path. Make sure that they aren't used for the file lookup. Change-Id: I7adfe913a56b1292e7444de18b2dbe332bd4657a Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Implement QWebEnginePage::requestedUrlJocelyn Turcotte2014-02-122-0/+12
| | | | | Change-Id: I6accd8fd40ad72041770439aa6a7aa59ba904418 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix tst_QWebEngineFrame::baseUrlJocelyn Turcotte2014-02-121-1/+1
| | | | | | | | | | | Update tests to check that we can keep the same functionality by querying document.baseURI through runJavaScript instead of implementing QWebEnginePage::baseUrl. This also removes QWebEnginePage::baseUrl from the header. Change-Id: I549e57d3986e22986438f8a23e469bbd220633b7 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix resizing not working on new windowsJocelyn Turcotte2014-02-121-1/+2
| | | | | | | | | | | | | | | We have to re-run initialize on attached WebContentsAdapter to update the client. We currently however initialize the renderer inconditionally at the end if the initialization, which in this case would create an extra RenderWidgetHostView and keep the old one in limbo. Fix the issue by checking if the WebContents already has a live view before forcing the creation of a new one. Change-Id: Icfdbde016f9a49bfad643286881a6e409c958e94 Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Adam Kallai <kadam@inf.u-szeged.hu>
* Fix WebEngineContext not being ramped down in testsJocelyn Turcotte2014-02-121-1/+1
| | | | | | | | | | | | | aboutToQuit is only emitted if QCoreApplication::exec is run, which isn't used by Qt's testlib. Register an application shutdown handler using qAddPostRoutine instead, which is going to be executed whenever the QCoreApplication is destroyed. Change-Id: Iec7d1e528dce79cbe7a73b450b2a0d2df793038a Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>