diff options
-rw-r--r-- | src/core/web_contents_adapter.h | 2 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.cpp | 4 | ||||
-rw-r--r-- | src/webenginewidgets/api/qwebenginepage.h | 2 | ||||
-rw-r--r-- | tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp | 32 | ||||
-rw-r--r-- | tests/auto/widgets/util.h | 7 |
5 files changed, 25 insertions, 22 deletions
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h index de537541d..2079c89b1 100644 --- a/src/core/web_contents_adapter.h +++ b/src/core/web_contents_adapter.h @@ -67,7 +67,7 @@ public: void stop(); void reload(); void load(const QUrl&); - void setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl, const QUrl &unreachableUrl = QUrl()); + void setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl, const QUrl &unreachableUrl); QUrl activeUrl() const; QString pageTitle() const; diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp index e95433747..11cb7dbc5 100644 --- a/src/webenginewidgets/api/qwebenginepage.cpp +++ b/src/webenginewidgets/api/qwebenginepage.cpp @@ -522,13 +522,13 @@ void QWebEnginePage::toPlainText(const QWebEngineCallback<const QString &> &resu void QWebEnginePage::setHtml(const QString &html, const QUrl &baseUrl) { Q_D(QWebEnginePage); - d->adapter->setContent(html.toUtf8(), QStringLiteral("text/html;charset=UTF-8"), baseUrl); + setContent(html.toUtf8(), QStringLiteral("text/html;charset=UTF-8"), baseUrl); } void QWebEnginePage::setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl) { Q_D(QWebEnginePage); - d->adapter->setContent(data, mimeType, baseUrl); + d->adapter->setContent(data, mimeType, baseUrl, baseUrl); } QString QWebEnginePage::title() const diff --git a/src/webenginewidgets/api/qwebenginepage.h b/src/webenginewidgets/api/qwebenginepage.h index f8b40f507..13be38238 100644 --- a/src/webenginewidgets/api/qwebenginepage.h +++ b/src/webenginewidgets/api/qwebenginepage.h @@ -133,7 +133,6 @@ class QWEBENGINEWIDGETS_EXPORT QWebEnginePage : public QObject { // Ex-QWebFrame properties Q_PROPERTY(qreal textSizeMultiplier READ textSizeMultiplier WRITE setTextSizeMultiplier DESIGNABLE false) Q_PROPERTY(QUrl requestedUrl READ requestedUrl) - Q_PROPERTY(QUrl baseUrl READ baseUrl) Q_PROPERTY(QIcon icon READ icon) Q_PROPERTY(QSize contentsSize READ contentsSize) Q_PROPERTY(QPoint scrollPosition READ scrollPosition WRITE setScrollPosition) @@ -442,7 +441,6 @@ public: void setUrl(const QUrl &url); QUrl url() const; QUrl requestedUrl() const; - QUrl baseUrl() const; QIcon icon() const; QMultiMap<QString, QString> metaData() const; diff --git a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp index fe477c786..6702d5d9f 100644 --- a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp +++ b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp @@ -754,9 +754,6 @@ void tst_QWebEngineFrame::baseUrl_data() void tst_QWebEngineFrame::baseUrl() { -#if !defined(QWEBENGINEPAGE_BASEURL) - QSKIP("QWEBENGINEPAGE_BASEURL"); -#else QFETCH(QString, html); QFETCH(QUrl, loadUrl); QFETCH(QUrl, url); @@ -764,8 +761,8 @@ void tst_QWebEngineFrame::baseUrl() m_page->setHtml(html, loadUrl); QCOMPARE(m_page->url(), url); - QCOMPARE(m_page->baseUrl(), baseUrl); -#endif + QEXPECT_FAIL("null", "Slight change: We now translate QUrl() to about:blank for the virtual url, but not for the baseUrl", Continue); + QCOMPARE(baseUrlSync(m_page), baseUrl); } void tst_QWebEngineFrame::hasSetFocus() @@ -1282,7 +1279,7 @@ void tst_QWebEngineFrame::setUrlToEmpty() QWebEnginePage page; QCOMPARE(page.url(), QUrl()); QCOMPARE(page.requestedUrl(), QUrl()); - QCOMPARE(page.baseUrl(), QUrl()); + QCOMPARE(baseUrlSync(&page), QUrl()); QSignalSpy spy(&page, SIGNAL(loadFinished(bool))); @@ -1294,7 +1291,7 @@ void tst_QWebEngineFrame::setUrlToEmpty() QCOMPARE(spy.count(), expectedLoadFinishedCount); QCOMPARE(page.url(), url); QCOMPARE(page.requestedUrl(), url); - QCOMPARE(page.baseUrl(), url); + QCOMPARE(baseUrlSync(&page), url); // Set empty url page.setUrl(QUrl()); @@ -1303,7 +1300,7 @@ void tst_QWebEngineFrame::setUrlToEmpty() QCOMPARE(spy.count(), expectedLoadFinishedCount); QCOMPARE(page.url(), aboutBlank); QCOMPARE(page.requestedUrl(), QUrl()); - QCOMPARE(page.baseUrl(), aboutBlank); + QCOMPARE(baseUrlSync(&page), aboutBlank); // Set existing url page.setUrl(url); @@ -1313,7 +1310,7 @@ void tst_QWebEngineFrame::setUrlToEmpty() QCOMPARE(spy.count(), expectedLoadFinishedCount); QCOMPARE(page.url(), url); QCOMPARE(page.requestedUrl(), url); - QCOMPARE(page.baseUrl(), url); + QCOMPARE(baseUrlSync(&page), url); // Load empty url page.load(QUrl()); @@ -1322,7 +1319,7 @@ void tst_QWebEngineFrame::setUrlToEmpty() QCOMPARE(spy.count(), expectedLoadFinishedCount); QCOMPARE(page.url(), aboutBlank); QCOMPARE(page.requestedUrl(), QUrl()); - QCOMPARE(page.baseUrl(), aboutBlank); + QCOMPARE(baseUrlSync(&page), aboutBlank); #endif } @@ -1342,7 +1339,7 @@ void tst_QWebEngineFrame::setUrlToInvalid() page.setUrl(invalidUrl); QCOMPARE(page.url(), validUrl); QCOMPARE(page.requestedUrl(), validUrl); - QCOMPARE(page.baseUrl(), validUrl); + QCOMPARE(baseUrlSync(&page), validUrl); // QUrls equivalent to QUrl() will be treated as such. const QUrl aboutBlank("about:blank"); @@ -1354,7 +1351,7 @@ void tst_QWebEngineFrame::setUrlToInvalid() page.setUrl(anotherInvalidUrl); QCOMPARE(page.url(), aboutBlank); QCOMPARE(page.requestedUrl().toEncoded(), anotherInvalidUrl.toEncoded()); - QCOMPARE(page.baseUrl(), aboutBlank); + QCOMPARE(baseUrlSync(&page), aboutBlank); #endif } @@ -1542,7 +1539,7 @@ void tst_QWebEngineFrame::setUrlThenLoads() QVERIFY(finishedSpy.at(0).first().toBool()); QCOMPARE(m_page->url(), url); QCOMPARE(m_page->requestedUrl(), url); - QCOMPARE(m_page->baseUrl(), baseUrl); + QCOMPARE(baseUrlSync(m_page), baseUrl); const QUrl urlToLoad1("qrc:/test2.html"); const QUrl urlToLoad2("qrc:/test1.html"); @@ -1552,7 +1549,8 @@ void tst_QWebEngineFrame::setUrlThenLoads() QCOMPARE(startedSpy.count(), 2); QCOMPARE(m_page->url(), url); QCOMPARE(m_page->requestedUrl(), urlToLoad1); - QCOMPARE(m_page->baseUrl(), baseUrl); + // baseUrlSync spins an event loop and this sometimes return the next result. + // QCOMPARE(baseUrlSync(m_page), baseUrl); // After first URL changed. ::waitForSignal(m_page, SIGNAL(urlChanged(QUrl))); @@ -1560,14 +1558,14 @@ void tst_QWebEngineFrame::setUrlThenLoads() QVERIFY(finishedSpy.at(1).first().toBool()); QCOMPARE(m_page->url(), urlToLoad1); QCOMPARE(m_page->requestedUrl(), urlToLoad1); - QCOMPARE(m_page->baseUrl(), extractBaseUrl(urlToLoad1)); + QCOMPARE(baseUrlSync(m_page), extractBaseUrl(urlToLoad1)); // Just after second load. URL didn't changed yet. m_page->load(urlToLoad2); QCOMPARE(startedSpy.count(), 3); QCOMPARE(m_page->url(), urlToLoad1); QCOMPARE(m_page->requestedUrl(), urlToLoad2); - QCOMPARE(m_page->baseUrl(), extractBaseUrl(urlToLoad1)); + QCOMPARE(baseUrlSync(m_page), extractBaseUrl(urlToLoad1)); // After second URL changed. ::waitForSignal(m_page, SIGNAL(urlChanged(QUrl))); @@ -1575,7 +1573,7 @@ void tst_QWebEngineFrame::setUrlThenLoads() QVERIFY(finishedSpy.at(2).first().toBool()); QCOMPARE(m_page->url(), urlToLoad2); QCOMPARE(m_page->requestedUrl(), urlToLoad2); - QCOMPARE(m_page->baseUrl(), extractBaseUrl(urlToLoad2)); + QCOMPARE(baseUrlSync(m_page), extractBaseUrl(urlToLoad2)); #endif } diff --git a/tests/auto/widgets/util.h b/tests/auto/widgets/util.h index 90526a780..1e60d3e0e 100644 --- a/tests/auto/widgets/util.h +++ b/tests/auto/widgets/util.h @@ -149,4 +149,11 @@ static inline QVariant evaluateJavaScriptSync(QWebEnginePage *page, const QStrin return spy.waitForResult(); } +static inline QUrl baseUrlSync(QWebEnginePage *page) +{ + CallbackSpy<QVariant> spy; + page->runJavaScript("document.baseURI", spy.ref()); + return spy.waitForResult().toUrl(); +} + #define W_QSKIP(a, b) QSKIP(a) |