Qt 5.6 introduces many new features and improvements as well as bugfixes
over the 5.5.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:

  http://doc.qt.io/qt-5/index.html

The Qt version 5.6 series is binary compatible with the 5.5.x series.
Applications compiled for 5.5 will continue to run with 5.6.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

  https://bugreports.qt.io/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                          General                                         *
****************************************************************************

 - Chromium Snapshot:
   * The Chromium version has been updated to 45.0.2554.101.
   * In addition security fixes from Chromium 46 - 49 have been merged.

 - General:
   * The WebEngineCore module now contains shared C++ API.
   * Will now follow Qt Network application proxy settings.

 - Platforms:
   * Linux builds can now link against system libraries instead of Chromium's
     bundled versions.
   * Support for the Aarch64 architecture.

 - Web Features:
   * PPAPI plugins are now supported, including the Flash plugin.

****************************************************************************
*                          Qt WebEngineCore                                *
****************************************************************************

 - QWebEngineCookieStore:
   * A new API for monitoring and controlling cookies.

 - QWebEngineUrlRequestInterceptor:
   * A new API for blocking, modifying or redirecting URL requests.

 - QWebEngineUrlSchemeHandler:
   * A new API for implementing custom URL schemes.

****************************************************************************
*                          Qt WebEngineQML                                 *
****************************************************************************

 - QQuickWebEngineProfile:
   * Now a public C++ API for use with the new core APIs.

 - QQuickWebEngineView:
   * WebAction API added.


****************************************************************************
*                        Qt WebEngineWidgets                               *
****************************************************************************

 - QWebEnginePage:
   * More WebActions added from the old QWebPage API.

****************************************************************************
*                              Examples                                    *
****************************************************************************

 - General:
   * Examples have been renamed to make their purpose more clear.
