diff options
-rw-r--r-- | src/core/web_contents_delegate_qt.cpp | 2 | ||||
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 16 |
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() |