diff --git a/configure.pri b/configure.pri
index 4ce40351aedf075997e7f0979d0c1c6035694f6f..25475574303fc8aa0010aceedc7b7b84654a7548 100644
--- a/configure.pri
+++ b/configure.pri
@@ -286,3 +286,11 @@ defineTest(qtConfReport_macosToolchainVersion) {
     contains(arg, "deploymentTarget"): report_message = "$$QMAKE_MACOSX_DEPLOYMENT_TARGET"
     !isEmpty(report_message): qtConfReportPadded($$1, $$report_message)
 }
+
+defineTest(qtConfTest_isWindowsHostCompiler64) {
+    win_host_arch = $$(VSCMD_ARG_HOST_ARCH)
+    isEmpty(win_host_arch): return(true)
+    contains(win_host_arch,"x64"): return(true)
+    qtLog("Required 64-bit cross-building or native toolchain was not detected.")
+    return(false)
+}
diff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
index 21c2f8c015235e8cacf2933393431689165fa806..0721bdd2c0b8db1865e32d062bbd69e66bed56b9 100644
--- a/mkspecs/features/configure.prf
+++ b/mkspecs/features/configure.prf
@@ -37,6 +37,11 @@ defineTest(runConfigure) {
         return(false)
     }
 
+    win32:!qtConfig(webengine-win-compiler64) {
+        skipBuild("Required 64-bit cross-building or native toolchain could not be found.")
+        return(false)
+    }
+
     !qtConfig(webengine-gperf) {
         skipBuild("Required gperf could not be found.")
         return(false)
diff --git a/src/core/configure.json b/src/core/configure.json
index e546cf899d4da1473374c56a393736067054622e..000faf686fc48493be3e6cf61fe7a35759abe10d 100644
--- a/src/core/configure.json
+++ b/src/core/configure.json
@@ -310,6 +310,10 @@
         "webengine-sanitizer": {
             "label" : "sanitizer support",
             "type": "isSanitizerSupported"
+        },
+        "webengine-win-compiler64": {
+            "label": "64bit compiler",
+            "type": "isWindowsHostCompiler64"
         }
     },
 
@@ -629,6 +633,12 @@
             "autoDetect": "config.unix",
             "condition": "libs.webengine-poppler-cpp",
             "output": [ "privateFeature" ]
+        },
+        "webengine-win-compiler64": {
+            "label": "64bit compiler",
+            "condition": "config.win32 && tests.webengine-win-compiler64",
+            "type": "isWindowsHostCompiler64",
+            "output": [ "privateFeature" ]
         }
     },
 
@@ -662,6 +672,11 @@
             "type": "warning",
             "condition": "config.unix && !features.webengine-host-pkg-config",
             "message": "host pkg-config not found"
+        },
+        {
+            "type": "warning",
+            "condition": "config.win32 && !features.webengine-win-compiler64",
+            "message": "64-bit cross-building or native toolchain is required to build QtWebEngine."
         }
     ],
 
diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp
index f536695ef07fb8c661e8b8a9cdd3d6d687262034..ed2600e493723d1c2c35fb4ebb582a6b05ad66f8 100644
--- a/src/webengine/api/qquickwebengineprofile.cpp
+++ b/src/webengine/api/qquickwebengineprofile.cpp
@@ -69,11 +69,18 @@ ASSERT_ENUMS_MATCH(QQuickWebEngineDownloadItem::MimeHtmlSaveFormat, QtWebEngineC
 
     \inmodule QtWebEngine
 
-    A web engine profile contains properties and functionality shared by a group of web engine
-    pages.
-
-    Information about visited links is stored together with persistent cookies and other persistent
-    data in a storage described by the persistentStoragePath property.
+    A web engine profile contains settings, scripts, persistent cookie policy, and the list of
+    visited links shared by all web engine pages that belong to the profile.
+
+    Information about visited links is stored together with persistent cookies
+    and other persistent data in a storage determined by the storageName
+    property. Persistent data is stored in a subdirectory determined by the
+    persistentStoragePath property and the cache in a subdirectory determined by
+    the cachePath property. The httpCacheType property describes the type of the
+    cache: \e in-memory or \e on-disk. If only the storageName property is set,
+    the other values are generated automatically based on it. If you specify
+    any of the values manually, you should do it before creating any pages that
+    belong to the profile.
 
     Profiles can be used to isolate pages from each other. A typical use case is a dedicated
     \e {off-the-record profile} for a \e {private browsing} mode. An off-the-record profile forces
@@ -310,8 +317,23 @@ void QQuickWebEngineProfilePrivate::userScripts_clear(QQmlListProperty<QQuickWeb
     \brief Contains settings, scripts, and visited links common to multiple web engine views.
 
     WebEngineProfile contains settings, scripts, and the list of visited links shared by all
-    views that belong to the profile. As such, profiles can be used to isolate views
-    from each other. A typical use case is a dedicated profile for a 'private browsing' mode.
+    views that belong to the profile.
+
+    Information about visited links is stored together with persistent cookies
+    and other persistent data in a storage determined by the storageName
+    property. Persistent data is stored in a subdirectory determined by the
+    persistentStoragePath property and the cache in a subdirectory determined by
+    the cachePath property. The httpCacheType property describes the type of the
+    cache: \e in-memory or \e on-disk. If only the storageName property is set,
+    the other values are generated automatically based on it. If you specify
+    any of the values manually, you should do it before creating any pages that
+    belong to the profile.
+
+    Profiles can be used to isolate pages from each other. A typical use case is
+    a dedicated \e {off-the-record profile} for a \e {private browsing} mode. An
+    off-the-record profile forces cookies, the HTTP cache, and other normally
+    persistent data to be stored only in memory. The offTheRecord property holds
+    whether a profile is off-the-record.
 
     Each web engine view has an associated profile. Views that do not have a specific profile set
     share a common default one.
diff --git a/src/webengine/doc/src/qtwebengine-platform-notes.qdoc b/src/webengine/doc/src/qtwebengine-platform-notes.qdoc
index 6c8703fe4811f9417a85606fef29302595b6cf79..59429ec5a4dc7c065c48d3deb342a20904633a4c 100644
--- a/src/webengine/doc/src/qtwebengine-platform-notes.qdoc
+++ b/src/webengine/doc/src/qtwebengine-platform-notes.qdoc
@@ -71,6 +71,12 @@
 
     On Windows, Visual Studio 2017 and Windows 10 SDK are required.
 
+    Qt WebEngine can only be built on 64-bit Windows, with a x64-bit toolchain.
+    For building Qt WebEngine for x86 applications, you need to configure
+    and compile Qt with the Visual Studio 2017 x64 to x86 cross-compile
+    toolchain. This toolchain can be set up on the command line by running
+    \c{vcvarsall.bat amd64_x86}.
+
     \section2 Linux
 
     On Linux, Clang or GCC version 5 or later is required.
diff --git a/src/webenginewidgets/api/qwebengineprofile.cpp b/src/webenginewidgets/api/qwebengineprofile.cpp
index b2fe49da3e6fc1a166dad66bc497c1ec4b57d7e1..537cf41fd4756cde4fbe93845ffb83b7a26617b3 100644
--- a/src/webenginewidgets/api/qwebengineprofile.cpp
+++ b/src/webenginewidgets/api/qwebengineprofile.cpp
@@ -77,7 +77,14 @@ using QtWebEngineCore::ProfileAdapter;
     to a common QWebEngineScriptCollection instance.
 
     Information about visited links is stored together with persistent cookies and other persistent
-    data in a storage returned by persistentStoragePath(). The cache can be cleared of links by
+    data in a storage returned by storageName(). Persistent data is stored in a subdirectory set by
+    calling setPersistentStoragePath(), and the cache is located in a subdirectory set by calling
+    setCachePath(). The cache type can be set to \e in-memory or \e on-disk by calling
+    setHttpCacheType(). If only the storage name is set, the subdirectories are created and named
+    automatically. If you set any of the values manually, you should do it before creating any
+    pages that belong to the profile.
+
+    The cache can be cleared of links by calling
     clearVisitedLinks() or clearAllVisitedLinks(). PersistentCookiesPolicy describes whether
     session and persistent cookies are saved to and restored from memory or disk.