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

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 49.0.2623.111.
   * In addition security fixes from Chromium 50 and 51 have been merged.

 - Web Features:
   * Drag'n'drop is now supported
   * Encrypted Media Extensions EME is now supported
     if the PPAPI Widevine CDM plugin is installed.
   * Spellchecking is now available if dictionaries are installed.

- OS X:
   * Added 'use_appstore_compliant_code' option to allow compiling WebEngine as Mac App Store compliant.

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

 - WebEngineView:
   * New WebAction for saving page on disk in multiple different formats
     including MHTML.
   * JavaScript can now be executed in separate worlds.
   * WebChannels can now be installed in separate worlds.
   * Properties for recentlyAudible notification and muting of page.
   * Content size and scroll position properties are now available.
   * New API to print to PDF.

 - WebEngineProfile:
   * New API for disabling or clearing HTTP cache

 - WebEngineSettings:
   * New settings for controlling WebGL, automatic favicon download and more.


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

 - QWebEngineContextMenuData:
   * A new API exposing data useful for context menu generation.

 - QWebEnginePage:
   * New WebAction for opening new tabs in background.
   * New WebAction for saving page on disk in multiple different formats
     including MHTML.
   * Direct access to QIcon version of favicons.
   * JavaScript can now be executed in separate worlds.
   * WebChannels can now be installed in separate worlds.
   * Signals for recentlyAudible notification and muting of page.
   * Content size and scroll position properties are now available.
   * New API to print to PDF.

 - QWebEngineProfile:
   * New API for disabling or clearing HTTP cache

 - QWebEngineSettings:
   * New settings for controlling WebGL, automatic favicon download and more.

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

