Qt-contributors-summit-2013-Qt Web Engine

From Qt Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.
  • state-of-the-art: webkit team in Digia is small, lot of work to keep up, playing catch up, and even that is hard. Becoming hard to push the Qt side of WebKit 2 APIs moving forward while trying to keep on par with other ports at the platform level.
  • Investigating a path using Chromium instead of WebKit. Chromium simplifies platform abstractions (which we would not want to change anyhow because of lack of manpower).
  • QWebEngine state of the art:
    • just thin layer around Chromium (Quick and Widgets)
    • basic QEvent mapping works, more work needed for nice touch and JS gestures integration.
    • Chromium provides all API to do that as of now. Problem: with Chromium we are making a toolkit, no app, so slight divergence here with the Chromium project and other adopters. Content API prone to minor changes, but should be maintainable.
    • problem on iOS: we cannot ship another web engine; we could just use the native web view there. Some platforms might be restrictive about scheme handlers etc.
    • current QWebEngine API too limited, WebKit 1 API too broad. What we would like to have? -> discussion to be continued here:http://wiki.qt.io/QtWebEngine/
  • QWebEngine going forward:
    • need for sandboxing, security in general.
    • for API of QWebEngine: need to define use cases: execute javascript?, custom network managers? etc. integration with QtQuick might be nice… need to pass values back to HTML, problem: objects live in a different process. We could add API on the JavaScript side in contrast to the Qt side, so Web elements can be accessed from C++
    • more use cases: run-time / browser on embedded, using API being standardized by the community (e.g. saving history), passing in own certificates
    • network layer: settings, cookie storage, proxy, authentication, request interception, custom schemes etc.
    • How to solve problem of QNAM in hybrid apps / in general? Ideally have only one HTTP stack per app.
    • downside of Chromium: it is really big; we could disable features like NaCl etc.
  • going forward with WebKit:
    • needs to be maintained for some time in any case, there are features in WebKit 1 that Chromium does not have and that could be tricky to match.
    • Current WebKit2 API could be deprecated in favor of Chromium; API would be similar but not exactly the same (inheritance from Flickable not so desirable as it brings tons of side effects, etc)
    • 2nd step: WebKit 1 would be put in “mainteneance” mode; i.e. only critical fixes like security fixes backported
  • Please send in use cases for web engine, so we can shape the API!

Going forward

List of use cases and APIs to consider [qt.io]

Trello board [trello.com]