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

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

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

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                                  *
****************************************************************************

Behavior Changes
----------------

 - XSS Auditing has been removed, and the XSSAuditingEnabled setting no
   longer has any effect.
 - [QTBUG-79864] The viz display compositor is now used by default on all
   platforms, but can be disabled with --disable-viz-display-compositor.
 - The network layer integration has been rewritten to use Chromium's network
   service, and now runs in a separate sandboxed process by default.
 - [QTBUG-83656] CTRL+mouse wheel page zoom fixed, and now works by default.


Chromium Snapshot
-----------------

 - Updated the Chromium version to 80.0.3987.163
 - Applied security fixes from Chrome up to version 81.0.4044.138


General
-------

 - Fixed hardware accelerated video decoding on Windows and macOS.
 - Updated where to look for Google Chrome's CDM plugin.
 - [QTBUG-82390] Disabled picture-in-picture to avoid non-functional button
   showing up.
 - Command-line specified PAC files can now be loaded from QRC.
 - [QTBUG-82012] Placeholder for missing PPAPI plugins added.


Libraries
---------

 - Added a renderProcessPid() getter to QWebEnginePage and WebEngineView
   which allows reading the process ID of the underlying render process.
 - [QTBUG-83338] Avoid decoding HTML in default JavaScript message handlers.


****************************************************************************
*                                 Qt PDF                                   *
****************************************************************************

General
-------

 - The qt-labs/qtpdf module was using an out-of-date version of pdfium.
   Development will now continue in the qtwebengine repository in order to
   reuse Qt WebEngine's pdfium build system integration.
 - QtPdf is still in Tech Preview.
 - It's now possible to build QtPDF for iOS (even though Qt WebEngine does not).
 - Added a Qt Quick API (import QtQuick.Pdf):
   * Added an image plugin: Image { source: "my.pdf"; currentFrame: 2 } is
     enough to view the third page in a PDF file.
   * High-level API for full-featured viewers: PdfScrollablePageView shows
     one page at a time; PdfMultiPageView allows flicking vertically from
     page to page. These are implemented in QML and packaged with the module.
 - Low-level QtQuick API:
   * PdfDocument provides API for the document and its metadata.
   * PdfSearchModel can find a text string and provides information about
     the locations where it is found on each page, which can be listed in
     a ListView and visualized by using a Repeater to instantiate
     QtQuick.Shapes for the bounding boxes.
   * PdfSelection allows selecting text and copying to the clipboard;
     visualization of the selected region is done via QtQuick.Shapes.
   * PdfLinkModel provides information about the links in the document;
     visual feedback and clicking can be handled with QtQuick.Shapes
     and TapHandler, respectively.
   * PdfNavigationStack is a model for implementing forward/back navigation.

