summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/web_contents_adapter.h2
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp4
-rw-r--r--src/webenginewidgets/api/qwebenginepage.h2
-rw-r--r--tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp32
-rw-r--r--tests/auto/widgets/util.h7
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)