summaryrefslogtreecommitdiff
path: root/lib/web_contents_adapter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Moving sources to src part 1: Move files.Jocelyn Turcotte2013-11-281-346/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Delegated renderer: enable by default for QQuickWebView.Jocelyn Turcotte2013-11-151-5/+5
| | | | | | | | | | | 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>
* Implement QWebEnginePage::runJavaScriptPierre Rossi2013-11-041-1/+100
| | | | | | | | | | | | | | | | | | | | | 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>
* QtWebEngine Dev Tools (Web Inspector)Chris Hutten-Czapski2013-10-291-0/+5
| | | | | | | | | | | | | | | | | | 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>
* Fix my broken coding style from 8c1de0fPierre Rossi2013-10-041-3/+1
| | | | | Change-Id: Ibde02d2ef64f2684ccf626b908aad9721148297a Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Widgets: implement zoomFactorPierre Rossi2013-10-011-0/+16
| | | | | | Change-Id: I7ef26e4a2e6c9eb228bcf5542ad272b998f8c6a3 Reviewed-by: Michael Bruning <michael.bruning@digia.com> Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Implement window creation through QWebEnginePage::createWindow.Jocelyn Turcotte2013-09-021-11/+21
| | | | | | | | | | | | | | | | | | | | | | | | | This makes the necessary changes to handle WebContentsDelegateQt::AddNewContents and funnel the callback through createWindow in QWebEnginePage and QWebEngineView. - Expose the AddNewContents callback through WebContentsAdapterClient - Allow creating a WebContentsAdapter attached only on the Chromium side, leaving the choice to QWebEnginePage to either adopt it and call WebContentsAdapter::initialize to attach itself as the client, or destroy it if the application isn't handling the call. - Delay the InitAsChild handling in RenderWidgetHostViewQt when it is called before an adapter client has been attached. - Since WebContentsAdapterClient::CreateRenderWidgetHostViewQtDelegate is only a factory method, not creating any link with the callee client, allow using the creating window's adapter client to create the RWHVQtDelegate. This allows an unparented delegate to be created instead of needing to add numerous null-checks in RWHVQt. Use content::WebContents::CreateParams::context for this purpose, which can be used both when creating a WebContents ourselves and when a new window's WebContents is created for us. Change-Id: I032262e867931dc40a7c2eca0c993027a555f56e Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Get rid of WebContentsAdapter::webContents().Jocelyn Turcotte2013-08-291-29/+38
| | | | | | | This isn't needed since the ownership was removed from WebContentsDelegateQt. Change-Id: I44755966fd7681c638da083803cfde6262cb2dc2 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Let WebContentsAdapter own the WebContents directly.Jocelyn Turcotte2013-08-291-6/+30
| | | | | | | | | | Flatten the ownership tree by removing WebContentsDelegateQt from the ownership chain of the content::WebContents. This also let WebContentsAdapter do the needed initialization work. Change-Id: Ie652bbcad54799b66d28a4a33e627f667b1c0d28 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Implement the basic parts of QWebEngineHistory.Jocelyn Turcotte2013-08-201-6/+48
| | | | | | | | | | | | | | Mark the remaining methods as not implemented to allow enabling most of the dependent code in the demo browser and in API tests. Add two new tests to cover cases that might be problematic with the index-based implementation. This also renames WebContentsAdapter::navigateHistory to navigateToOffset in order to avoid confusion with navigateToIndex. Change-Id: I7c5cb9f5f878e34206fdfe48334a2dc7d9d95a1d Reviewed-by: Zeno Albisser <zeno.albisser@digia.com> Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Centralize type conversion functions.Jocelyn Turcotte2013-08-201-9/+3
| | | | | | | | | | | | | This adds the common GURL->QUrl and string16->QString conversions into a common header and use those functions throughout the code. Move the qStringToStringType into the same header and rename it to a name consistent with the others. This also cleans up shared_globals.h by moving content:: forward declarations in the cpp, where they are used. Change-Id: I19527ea7de1f6047aae8b44c97eb4d7c3e5a0e54 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Let the application sanitize the URL.Jocelyn Turcotte2013-08-201-2/+0
| | | | | | | | | | Do like the QtQuick example and let the Widgets example use urlFromUserInput to add a missing http scheme instead of letting QtWebEngine do it. This is the same behavior as QtWebKit does. Change-Id: Iac1570523253126e059afb00c3a2ff844e177ff1 Reviewed-by: Andras Becsi <andras.becsi@digia.com>
* Fix the segfault on exit.Jocelyn Turcotte2013-08-121-8/+15
| | | | | | | | | | | | The WebEngineContext member was declared after the WebContentsDelegateQt in WebContentsAdapter. This means that the delegate was destroyed after the context and would cause the crash. Reorder the declaration and move the WebContentsDelegateQt also to the private class to reduce future confusion. Change-Id: I343504d4fd1ede80feb710446368fdf12f360b15 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Split out the Widgets and QtQuick integrationPierre Rossi2013-07-311-0/+144
This is the first step to making proper Qt Modules out of QtWebEngine. The Widgets integration becomes a proper C++ Qt Module while we make the QtQuick side a QML plugin for now (could probably be promoted if the need arises). Code-wise, this means the introduction of a WebContentsAdapterClient interface that is subclassed by the private implementation of our API classes for delegation of things that are UI specific. Functionality from WebContents and the like is exposed via the WebContentsAdapter. Change-Id: I4ca3395b9fe8502a24e36002cfd5af44067bb6e8 Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>