summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/web_contents_delegate_qt.cpp2
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp16
2 files changed, 17 insertions, 1 deletions
diff --git a/src/core/web_contents_delegate_qt.cpp b/src/core/web_contents_delegate_qt.cpp
index 40fc0934d..335c65880 100644
--- a/src/core/web_contents_delegate_qt.cpp
+++ b/src/core/web_contents_delegate_qt.cpp
@@ -186,7 +186,7 @@ void WebContentsDelegateQt::NavigationStateChanged(content::WebContents* source,
// If there is a visible entry there are special cases when we dont wan't to use the actual URL
if (entry && newUrl.isEmpty())
- newUrl = shouldUseActualURL(entry) ? toQt(entry->GetURL()) : toQt(source->GetVisibleURL());
+ newUrl = shouldUseActualURL(entry) ? toQt(entry->GetURL()) : toQt(entry->GetVirtualURL());
if (m_url != newUrl) {
m_url = newUrl;
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index 6fd2a06ee..d62ace045 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -2877,6 +2877,12 @@ void tst_QWebEnginePage::urlChange()
QTRY_COMPARE(urlSpy.size(), 1);
QCOMPARE(urlSpy.takeFirst().value(0).toUrl(), dataUrl2);
+
+ QUrl testUrl("http://test.qt.io/");
+ m_view->setHtml(QStringLiteral("<h1>Test</h1"), testUrl);
+
+ QTRY_COMPARE(urlSpy.size(), 1);
+ QCOMPARE(urlSpy.takeFirst().value(0).toUrl(), testUrl);
}
class FakeReply : public QNetworkReply {
@@ -4310,6 +4316,16 @@ void tst_QWebEnginePage::dataURLFragment()
QTest::mouseClick(m_view->focusProxy(), Qt::LeftButton, 0, elementCenter(m_page, "link"));
QVERIFY(urlChangedSpy.wait());
QCOMPARE(m_page->url().fragment(), QStringLiteral("anchor"));
+
+
+ m_page->setHtml("<html><body>"
+ "<a id='link' href='#anchor'>anchor</a>"
+ "</body></html>", QUrl("http://test.qt.io/mytest.html"));
+ QTRY_COMPARE(loadFinishedSpy.count(), 2);
+
+ QTest::mouseClick(m_view->focusProxy(), Qt::LeftButton, 0, elementCenter(m_page, "link"));
+ QVERIFY(urlChangedSpy.wait());
+ QCOMPARE(m_page->url(), QUrl("http://test.qt.io/mytest.html#anchor"));
}
void tst_QWebEnginePage::devTools()