/****************************************************************************
**
** Copyright (C) 2015 The Qt Company Ltd.
** Contact: http://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see http://www.qt.io/terms-conditions. For further
** information use the contact form at http://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: http://www.gnu.org/copyleft/fdl.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
\page topics-web-content.html
\title Integrating Web Content
\brief Qt's WebKit integration

To create Qt-based web applications, Qt provides both
\l {http://www.webkit.org/}{WebKit}-based and Chromium-based
(\l{Qt WebEngine}{WebEngine}) layout engines with support for a wide range of
standard web techologies such as HTML, CSS, and JavaScript, that make it possible
to embed content from the World Wide Web into your Qt application.

It is also possible to combine Qt C++ and QML code with HTML and JavaScript to
create web applications. Through Qt WebChannel, several of Qt's APIs are
accessible to remote clients.

\section1 WebKit in Qt

\l{Qt WebKit} allows WebKit 2 functionality in QML applications by
importing the \l{WebView} QML type. \l WebView has a minimalistic QML API for
web content visualization. While it is not as feature-rich as the C++ API of the
widget classes, it has multi-touch support and employs a multi-process
architecture to render web content in a separate helper process (QtWebProcess).
WebView makes it possible to interact with content using touch gestures such as
panning with inertia (flick), pinch-zoom, tap and double- tap-to-zoom. The
underlying split-process model (\l
{http://trac.webkit.org/wiki/WebKit2}{WebKit2}) assures smooth animations in the
embedding application (UI process) as well as increases stability.

These pages have more information about QML:
\list
\li \l{Qt WebKit Examples}
\li \l{QML Applications}
\endlist

\section2 WebKit Widgets

The \l{Qt WebKit Widgets} module provides a feature-rich C++ API that
facilitates loading, viewing, and editing web documents. Qt WebKit Widgets
provides facilities for rendering of HyperText Markup Language (HTML),
Extensible HyperText Markup Language (XHTML) and Scalable Vector Graphics (SVG)
documents, styled using Cascading Style Sheets (CSS) and scripted with
JavaScript.

\section1 WebEngine in Qt

As with Qt WebKit, \l{Qt WebEngine} allows web content to be displayed in
Qt applications. This module is new in Qt 5.4 and in future releases will serve
as a replacement to Qt WebKit.

These pages contain information about porting applications to use Qt WebEngine
and the various APIs:
\list
\li \l{Qt WebEngine} - provides a QML API
\li \l{Qt WebEngine Widgets} - provides a C++ API
\li \l{Porting from Qt WebKit to Qt WebEngine}
\endlist

\section1 Qt and HTML-JavaScript Hybrid Applications

The \l{Qt WebChannel} module enables HTML or JavaScript clients to access
Qt APIs such as QObject. It provides both C++ or QML API, allowing Qt apps
to communicate with JavaScript and HTML frontends.

These pages contain more information about the various APIs:
\list
\li \l{Qt WebChannel JavaScript API}{JavaScript API}
\li \l{Qt WebChannel C++ Classes}{C++ API}
\li \l{Qt WebChannel QML Types}{QML API}
\li \l{Qt WebChannel Standalone Example}{Standalone Example}
\endlist

*/
