summaryrefslogtreecommitdiffstats
path: root/lib/web_contents_delegate_qt.cpp
diff options
context:
space:
mode:
authorArvid Nilsson <anilsson@blackberry.com>2013-10-03 12:33:54 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-03 14:52:36 +0200
commitef6cb53a1d49de616067126c8f49d2406c9a7f43 (patch)
treeb515263fb14a8ddaa8e54a4652446dd47a9ba071 /lib/web_contents_delegate_qt.cpp
parent8c1de0f07a4b83ad50278231a8866143cf01333c (diff)
Quick: Add Favicon API
Adds a favicon API modelled after the WebKit2 QQuickWebView API, but using an http(s) URL instead of a custom protocol, because there's no icondatabase yet. The icon URL lingers even when a new load is committed, until the load finishes. It might be more prudent to clear the icon when committing a new load, but I opted to let the app take care of that detail if desired. Many browsers show a spinner instead of the favicon while loading, for example. There's no widget API implementation for favicons yet, because that API only makes sense if we have a full-fledged icon database (case in point: QWebEngineSettings::iconForUrl()). Change-Id: I1e7b85104c80de2ae46a5fe9a273104d43a5c71f Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'lib/web_contents_delegate_qt.cpp')
-rw-r--r--lib/web_contents_delegate_qt.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/web_contents_delegate_qt.cpp b/lib/web_contents_delegate_qt.cpp
index e64649aea..12a00481c 100644
--- a/lib/web_contents_delegate_qt.cpp
+++ b/lib/web_contents_delegate_qt.cpp
@@ -48,6 +48,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/invalidate_type.h"
+#include "content/public/common/favicon_url.h"
WebContentsDelegateQt::WebContentsDelegateQt(content::WebContents *webContents, WebContentsAdapterClient *adapterClient)
: m_viewClient(adapterClient)
@@ -96,3 +97,14 @@ void WebContentsDelegateQt::DidFinishLoad(int64 frame_id, const GURL &validated_
if (is_main_frame)
m_viewClient->loadFinished(true);
}
+
+void WebContentsDelegateQt::DidUpdateFaviconURL(int32 page_id, const std::vector<content::FaviconURL>& candidates)
+{
+ Q_UNUSED(page_id)
+ Q_FOREACH (content::FaviconURL candidate, candidates) {
+ if (candidate.icon_type == content::FaviconURL::FAVICON && !candidate.icon_url.is_empty()) {
+ m_viewClient->iconChanged(toQt(candidate.icon_url));
+ break;
+ }
+ }
+}