summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-02-03 16:27:01 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-12 17:13:35 +0100
commitf5f5a86c7e9bb2196d345d9cb4684b6529d81184 (patch)
treefb5caef053deb97b59cfd8b9ddfba9be997bba5f
parentbf65a7dcad419ed8d7e504a3ceece56cd7afa1e4 (diff)
Implement QWebEnginePage::requestedUrl
Change-Id: I6accd8fd40ad72041770439aa6a7aa59ba904418 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
-rw-r--r--src/core/web_contents_adapter.cpp11
-rw-r--r--src/core/web_contents_adapter.h1
-rw-r--r--src/webenginewidgets/api/qwebenginepage.cpp6
-rw-r--r--tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp28
4 files changed, 20 insertions, 26 deletions
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index d67edbe7a..af141b5dd 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -301,6 +301,17 @@ QUrl WebContentsAdapter::activeUrl() const
return toQt(d->webContents->GetVisibleURL());
}
+QUrl WebContentsAdapter::requestedUrl() const
+{
+ Q_D(const WebContentsAdapter);
+ if (content::NavigationEntry* entry = d->webContents->GetController().GetVisibleEntry()) {
+ if (!entry->GetOriginalRequestURL().is_empty())
+ return toQt(entry->GetOriginalRequestURL());
+ return toQt(entry->GetURL());
+ }
+ return QUrl();
+}
+
QString WebContentsAdapter::pageTitle() const
{
Q_D(const WebContentsAdapter);
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index 2079c89b1..93027c19c 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -69,6 +69,7 @@ public:
void load(const QUrl&);
void setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl, const QUrl &unreachableUrl);
QUrl activeUrl() const;
+ QUrl requestedUrl() const;
QString pageTitle() const;
void navigateToIndex(int);
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 11cb7dbc5..0f414f313 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -548,6 +548,12 @@ QUrl QWebEnginePage::url() const
return d->adapter->activeUrl();
}
+QUrl QWebEnginePage::requestedUrl() const
+{
+ Q_D(const QWebEnginePage);
+ return d->adapter->requestedUrl();
+}
+
void QWebEnginePage::render(QPainter *p, const QRegion &clip)
{
Q_D(const QWebEnginePage);
diff --git a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
index 6702d5d9f..92b91967e 100644
--- a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
+++ b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
@@ -295,8 +295,8 @@ protected:
void tst_QWebEngineFrame::requestedUrl()
{
-#if !defined(QWEBENGINEPAGE_REQUESTEDURL)
- QSKIP("QWEBENGINEPAGE_REQUESTEDURL");
+#if !defined(QWEBENGINEPAGE_SETNETWORKACCESSMANAGER)
+ QSKIP("QWEBENGINEPAGE_SETNETWORKACCESSMANAGER");
#else
QWebEnginePage page;
@@ -339,9 +339,6 @@ void tst_QWebEngineFrame::requestedUrl()
void tst_QWebEngineFrame::requestedUrlAfterSetAndLoadFailures()
{
-#if !defined(QWEBENGINEPAGE_REQUESTEDURL)
- QSKIP("QWEBENGINEPAGE_REQUESTEDURL");
-#else
QWebEnginePage page;
QSignalSpy spy(&page, SIGNAL(loadFinished(bool)));
@@ -361,7 +358,6 @@ void tst_QWebEngineFrame::requestedUrlAfterSetAndLoadFailures()
QCOMPARE(page.url(), first);
QCOMPARE(page.requestedUrl(), second);
QVERIFY(!spy.at(1).first().toBool());
-#endif
}
void tst_QWebEngineFrame::javaScriptWindowObjectCleared_data()
@@ -1240,9 +1236,6 @@ void tst_QWebEngineFrame::setUrlWithFragment_data()
// Based on bug report https://bugs.webengine.org/show_bug.cgi?id=32723
void tst_QWebEngineFrame::setUrlWithFragment()
{
-#if !defined(QWEBENGINEPAGE_REQUESTEDURL)
- QSKIP("QWEBENGINEPAGE_REQUESTEDURL");
-#else
QFETCH(QUrl, previousUrl);
QWebEnginePage page;
@@ -1264,14 +1257,10 @@ void tst_QWebEngineFrame::setUrlWithFragment()
QVERIFY(!page.toPlainText().isEmpty());
QCOMPARE(page.requestedUrl(), url);
QCOMPARE(page.url(), url);
-#endif
}
void tst_QWebEngineFrame::setUrlToEmpty()
{
-#if !defined(QWEBENGINEPAGE_REQUESTEDURL)
- QSKIP("QWEBENGINEPAGE_REQUESTEDURL");
-#else
int expectedLoadFinishedCount = 0;
const QUrl aboutBlank("about:blank");
const QUrl url("qrc:/test2.html");
@@ -1320,14 +1309,10 @@ void tst_QWebEngineFrame::setUrlToEmpty()
QCOMPARE(page.url(), aboutBlank);
QCOMPARE(page.requestedUrl(), QUrl());
QCOMPARE(baseUrlSync(&page), aboutBlank);
-#endif
}
void tst_QWebEngineFrame::setUrlToInvalid()
{
-#if !defined(QWEBENGINEPAGE_REQUESTEDURL)
- QSKIP("QWEBENGINEPAGE_REQUESTEDURL");
-#else
QWebEnginePage page;
const QUrl invalidUrl("http:/example.com");
@@ -1352,14 +1337,10 @@ void tst_QWebEngineFrame::setUrlToInvalid()
QCOMPARE(page.url(), aboutBlank);
QCOMPARE(page.requestedUrl().toEncoded(), anotherInvalidUrl.toEncoded());
QCOMPARE(baseUrlSync(&page), aboutBlank);
-#endif
}
void tst_QWebEngineFrame::setUrlHistory()
{
-#if !defined(QWEBENGINEPAGE_REQUESTEDURL)
- QSKIP("QWEBENGINEPAGE_REQUESTEDURL");
-#else
const QUrl aboutBlank("about:blank");
QUrl url;
int expectedLoadFinishedCount = 0;
@@ -1417,7 +1398,6 @@ void tst_QWebEngineFrame::setUrlHistory()
QCOMPARE(m_page->url(), url);
QCOMPARE(m_page->requestedUrl(), url);
QCOMPARE(m_page->history()->count(), 2);
-#endif
}
void tst_QWebEngineFrame::setUrlUsingStateObject()
@@ -1523,9 +1503,6 @@ void tst_QWebEngineFrame::setUrlThenLoads_data()
void tst_QWebEngineFrame::setUrlThenLoads()
{
-#if !defined(QWEBENGINEPAGE_REQUESTEDURL)
- QSKIP("QWEBENGINEPAGE_REQUESTEDURL");
-#else
QFETCH(QUrl, url);
QFETCH(QUrl, baseUrl);
QSignalSpy urlChangedSpy(m_page, SIGNAL(urlChanged(QUrl)));
@@ -1574,7 +1551,6 @@ void tst_QWebEngineFrame::setUrlThenLoads()
QCOMPARE(m_page->url(), urlToLoad2);
QCOMPARE(m_page->requestedUrl(), urlToLoad2);
QCOMPARE(baseUrlSync(m_page), extractBaseUrl(urlToLoad2));
-#endif
}
void tst_QWebEngineFrame::loadFinishedAfterNotFoundError()