Qt 5.5 introduces many new features and improvements as well as bugfixes
over the 5.4.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.5 series is binary compatible with the 5.4.x series.
Applications compiled for 5.4 will continue to run with 5.5.

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 40.0.2214.115.
   * The ninja version has been updated to 1.5.3.

 - Platform Support:
   * Support for embedded Android has been removed from Qt WebEngine.
   * [QTBUG-45796] Fix prefix build.
   * Localization fixes and support for --lang command line switch

 - Web Features:
   * Windows: WebGL and accelerated 2D Canvas are enabled,
     when using an ANGLE-based Qt-build.

****************************************************************************
*                          QtWebEngineQML                                  *
****************************************************************************

 - QQuickWebEngineDownloadItem:
   * A new API for handling downloads in QtQuick had been added.

 - QQuickWebEngineCertificateError:
   * A new API for handling certificate errors has been added.

 - QQuickWebEngineProfile:
   * Add a new API for profiles applying to groups of QQuickWebEnginePages.

 - QQuickWebEngineViewExperimental:
   * The inspectable property has been replaced by an environment variable
     QTWEBENGINE_REMOTE_DEBUGGING

 - QQuickWebEngineView:
   * New API has been added to allow installing of user scripts.
   * The findText function was moved to public API.
   * Public API was added to react to javascript requestFullScreen.
   * Support for HTML5 form validation has been added.
   * The featurePermissionRequested API was made public.
   * An integration for using QtWebChannel over chromium IPC has been added.

****************************************************************************
*                         QtWebEngineWidgets                               *
****************************************************************************

 - QWebEngineDownloadItem:
   * An API for handling downloads in Widgets has been added.

 - QWebEngineProfile:
   * Add a new API for profiles applying to groups of QWebEnginePages.
   * New API has been added to allow installing of user scripts.

 - QWebEnginePage:
   * New API has been added to deal with certificate errors.

 - QWebEngineView:
   * Support for HTML5 form validation was added.

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

 - WebEngineWidgets Example Browser:
   * [QTBUG-44633] Fix example on retina display.
   * Re-add user stylesheets example.
   * Private browsing mode has been re-introduced.
