diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index 363cd9c6a36292bfe86dea036a27f71d5f2e5e93..03f746f413bf91cfebd61fe6b7cdf946a61f0a47 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -44,7 +44,7 @@
 #include <QTimer>
 #include <QTouchDevice>
 
-static const int batchTimerTimeout = 100;
+static const int batchTimerTimeout = 0;
 
 class BatchTimer : public QTimer {
     Q_OBJECT
@@ -290,4 +290,5 @@ void WebEngineSettings::applySettingsToWebPreferences(WebPreferences *prefs)
     prefs->default_fixed_font_size = fontSize(DefaultFixedFontSize);
     prefs->minimum_font_size = fontSize(MinimumFontSize);
     prefs->minimum_logical_font_size = fontSize(MinimumLogicalFontSize);
+    prefs->default_encoding = defaultTextEncoding().toStdString();
 }
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index d098d8e7322149e21c033f3f7e3fa5160539d784..b6d3f14c505d76a28e8c8916024df74d8827e125 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -2706,29 +2706,27 @@ void tst_QWebEnginePage::testEnablePersistentStorage()
 
 void tst_QWebEnginePage::defaultTextEncoding()
 {
-#if !defined(QWEBENGINESETTINGS_SETDEFAULTTEXTENCODING)
-    QSKIP("QWEBENGINESETTINGS_SETDEFAULTTEXTENCODING");
-#else
-
     QString defaultCharset = evaluateJavaScriptSync(m_page, "document.defaultCharset").toString();
     QVERIFY(!defaultCharset.isEmpty());
     QCOMPARE(QWebEngineSettings::globalSettings()->defaultTextEncoding(), defaultCharset);
 
     m_page->settings()->setDefaultTextEncoding(QString("utf-8"));
+    QCoreApplication::processEvents();
     QString charset = evaluateJavaScriptSync(m_page, "document.defaultCharset").toString();
     QCOMPARE(charset, QString("utf-8"));
     QCOMPARE(m_page->settings()->defaultTextEncoding(), charset);
 
     m_page->settings()->setDefaultTextEncoding(QString());
+    QCoreApplication::processEvents();
     charset = evaluateJavaScriptSync(m_page, "document.defaultCharset").toString();
     QVERIFY(!charset.isEmpty());
     QCOMPARE(charset, defaultCharset);
 
     QWebEngineSettings::globalSettings()->setDefaultTextEncoding(QString("utf-8"));
+    QCoreApplication::processEvents();
     charset = evaluateJavaScriptSync(m_page, "document.defaultCharset").toString();
     QCOMPARE(charset, QString("utf-8"));
     QCOMPARE(QWebEngineSettings::globalSettings()->defaultTextEncoding(), charset);
-#endif
 }
 
 #if defined(QWEBENGINEPAGE_ERRORPAGEEXTENSION)