Qt 5.6.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.6.0.

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:
   * Security fixes from Chromium up to version 51.0.2704.63
   * [QTBUG-52602] Fixed devtools so it works with newer Chrome releases.
   * [QTBUG-52085, QTBUG-53108] qrc urls can now load local files.

 - QtWebEngineCore:
   * [QTBUG-52124] Fixed crashes due to multithreaded use of qputenv.
   * [QTBUG-52216] Fixed access of labels of MediaStream tracks.
   * [QTBUG-52715] Fixed copying images to clipboard.
   * [QTBUG-51789] Fixed crashes when instantiating QCoreApplication.
   * [QTBUG-52121] Ensured cookies are flushed to disk on exit.
   * Fixed numerous race-conditions when changing profile settings and using
     custom URL scheme handlers.

 - WebEnginePage:
   * [QTBUG-48995] Stopped triggering extra urlChanged signals.
   * [QTBUG-51319] Accepted certificate errors are now remembered correctly.
   * [QTBUG-51851, QTBUG-51969] Fixed zoom behavior.
   * [QTBUG-53033] Reset the selected text of a page when setHtml is called.
   * Fixed memory leak in standardContextMenu()


****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************

 - Linux:
   * NSS is now only used for certificate handling. BoringSSL is used
     for SSL encryption like on OS X and Windows.
   * [QTBUG-48298] Fixed compilation against old Linux kernel headers.

 - Windows:
   * [QTBUG-51920] Fixed building on Japanese Windows.
   * [QTBUG-50252] Fixed doubled characters when using IME.
   * [QTBUG-51971] Fixed CommandLine initialization.
   * [QTBUG-51847] Fixed compilation issue with moc.
   * [QTBUG-46720] Added support for linking to QtWebEngine from a plugin.

 - OS X:
   * [QTBUG-51939] Fixed QtWebEngineProcess not being found after
     macdeployqt is used.
