From 8bbfa1fe12b88a8cd1e27652ed54d1afc4d872e2 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Wed, 24 Sep 2014 11:42:26 +0200 Subject: Fix WebContentsAdapater::requestedUrl() function The requestedUrl function didn't return empty URL even if the empty URL was really requested. It was assumed if GetOriginalRequestURL returned empty string that means the requested url was not set in the navigation entry. This fix handles that case when empty url is set in the navigation entry as requested url. If the navigation entry is in pending state that means the request url has not been set yet thus the actual URL should be returned. Change-Id: Ic2eff5c487686f7c0e349a7a34a86b80551a002f Reviewed-by: Andras Becsi --- src/core/web_contents_adapter.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/core') diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp index 739b3b423..3533c0743 100644 --- a/src/core/web_contents_adapter.cpp +++ b/src/core/web_contents_adapter.cpp @@ -454,10 +454,15 @@ QUrl WebContentsAdapter::activeUrl() const QUrl WebContentsAdapter::requestedUrl() const { Q_D(const WebContentsAdapter); - if (content::NavigationEntry* entry = d->webContents->GetController().GetVisibleEntry()) { + content::NavigationEntry* entry = d->webContents->GetController().GetVisibleEntry(); + content::NavigationEntry* pendingEntry = d->webContents->GetController().GetPendingEntry(); + + if (entry) { if (!entry->GetOriginalRequestURL().is_empty()) return toQt(entry->GetOriginalRequestURL()); - return toQt(entry->GetURL()); + + if (pendingEntry && pendingEntry == entry) + return toQt(entry->GetURL()); } return QUrl(); } -- cgit v1.2.3