diff options
-rw-r--r-- | src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc | 3 | ||||
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 16 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc index 04ac828e0..fde39fbba 100644 --- a/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc +++ b/src/webenginewidgets/doc/src/qwebenginesettings_lgpl.qdoc @@ -87,7 +87,8 @@ Automatically dowloads images for web pages. When this setting is disabled, images are loaded from the cache. Enabled by default. \value JavascriptEnabled - Enables the running of JavaScript programs. Enabled by default. + Enables the running of JavaScript programs in the + \l{QWebEngineScript::MainWorld}{MainWorld}. Enabled by default. \value JavascriptCanOpenWindows Allows JavaScript programs to open popup windows without user interaction. Enabled by default. diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 8d0d5c43c..8b88973e5 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -159,6 +159,7 @@ private Q_SLOTS: #endif void runJavaScript(); + void runJavaScriptDisabled(); void fullScreenRequested(); void quotaRequested(); @@ -2714,6 +2715,21 @@ void tst_QWebEnginePage::runJavaScript() QVERIFY(watcher.wait()); } +void tst_QWebEnginePage::runJavaScriptDisabled() +{ + QWebEnginePage page; + QSignalSpy spy(&page, &QWebEnginePage::loadFinished); + page.settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, false); + // Settings changes take effect asynchronously. The load and wait ensure + // that the settings are applied by the time we start to execute JavaScript. + page.load(QStringLiteral("about:blank")); + QTRY_COMPARE(spy.count(), 1); + QCOMPARE(evaluateJavaScriptSyncInWorld(&page, QStringLiteral("1+1"), QWebEngineScript::MainWorld), + QVariant()); + QCOMPARE(evaluateJavaScriptSyncInWorld(&page, QStringLiteral("1+1"), QWebEngineScript::ApplicationWorld), + QVariant(2)); +} + void tst_QWebEnginePage::fullScreenRequested() { JavaScriptCallbackWatcher watcher; |