Bug 153049 - Konqueror from KDE4 doesn't load some favicons
Summary: Konqueror from KDE4 doesn't load some favicons
Status: CONFIRMED
Alias: None
Product: konqueror
Classification: Applications
Component: general (show other bugs)
Version: 4.6.2
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: David Faure
URL:
Keywords:
: 156583 185073 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-11-28 12:51 UTC by Enrique Matías Sánchez
Modified: 2014-11-16 21:22 UTC (History)
20 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Enrique Matías Sánchez 2007-11-28 12:51:00 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
OS:                Linux

Konqueror from KDE4 doesn't load some sites' favicons, such as
   http://www.mtv.com
Comment 1 FiNeX 2008-01-26 10:43:23 UTC
Or, from bug #156583, http://www.faz.net/s/homepage.html
Comment 2 FiNeX 2008-01-26 10:43:39 UTC
*** Bug 156583 has been marked as a duplicate of this bug. ***
Comment 3 Enrique Matías Sánchez 2008-12-23 09:33:05 UTC
I confirm this bug is still present on KDE 4.2 beta 2.
Comment 4 Christian González 2009-03-06 18:09:39 UTC
*** Bug 185073 has been marked as a duplicate of this bug. ***
Comment 5 Fred Wells 2009-03-07 17:12:08 UTC
I confirm the bug still present in KDE4.2.1.
Comment 6 Icekiss 2009-04-18 13:44:36 UTC
Confirmed in KDE 4.2.2

Additionally, after importing Bookmarks from KDE3 Konqueror, all bookmark icons are replaced with a questionmark on a white sheet. Yet konqueror does not try to refetch them when visiting the page. Icons for new bookmarks appear correctly.
Comment 7 Jean 2009-05-10 03:11:57 UTC
Confirmed in KDE 4.2.3

This page has more information about the bug:
https://bugs.launchpad.net/ubuntu/+source/kdebase-kde4/+bug/369629
Comment 8 biggerben 2009-07-31 18:49:01 UTC
confirmed in kubuntu karmic too.
the favicons of bookmarks don't show either, not even after "update favicon"
Comment 9 biggerben 2009-08-06 01:50:37 UTC
bug still present on my KDE 4.3
Comment 10 S. Umar 2009-08-07 16:45:07 UTC
Any solutions to this annoying bug?
Comment 11 David Faure 2009-11-17 23:17:28 UTC
I cannot reproduce any of this; it all works fine for me, in both 4.3.3 and 4.4-svn. Opening konqueror on slashdot, mtv.com, faz.net... as well as updating the favicon on individual old bookmarks inside keditbookmarks.

Maybe your kded4 crashed? Otherwise I don't really know what could cause this, given that it works for me (on two different computers, with two different versions of KDE)
Comment 12 S. Umar 2009-11-18 01:00:56 UTC
Unfortunately, this is not the case here. Update does nothing. This
has been the case since 4.x. In 3.5 when you edited the bookmarks
and chose to "update all favicons" you could see the process travelling
each bookmark and updating. Now nothing happens.

So, we need to compare details. I am on Fedora 11+updates, and x86_64
versions with qt-4.5.3. What version of qt are you using? I remember
seeing some place that this could be a qt bug.
Comment 13 Johannes M. Wagner 2010-01-09 18:17:28 UTC
Confirmed for Konqueror 4.3.4 - but to me it seems to be several different (but maybe related) bugs.

My view:

The favicons of the bookmarks are replaced with the question mark when you import bookmarks or delete the cache or change anything else concerning konqueror's bookmark's favicons (~/.kde/share/apps/konqueror/faviconrc) because seem to be unable to update - even in the address bar there will be only a question mark for those favicons saved under your local favicon folder.

The only "clean" workaround seems to be deleting the local favicon folder (~/.kde/cache-$HOST), the bookmarks you want to see the favicons for (e.g. bookmarks bar beneath the address bar), restart konqueror (or your whole system) and then adding the wanted bookmarks again one by one (annoying!).

Favicons unknown to the system (not stored in your local favicon folder) should not be concerned. If that is the case, you should additionally delete your ~/.kde/share/apps/konqueror/faviconrc.

Im checking something else and will update this post, if necessary.
Comment 14 Pollywog 2010-01-19 05:20:32 UTC
I can confirm this on KDE SC 4.3.4. 

The workaround above doesn't do it for me.

Also tried it on a clean /home.
Comment 15 Kjang Kwreuug-Kuq 2010-01-22 17:17:29 UTC
 rm /var/tmp/kdecache-lukrespangrus/kpc/kde-icon-cache.*

think before you try this and try this carefully. hope it work. it works for me.
Comment 16 David Johnson 2010-02-07 09:01:29 UTC
Confirmed on FreeBSD 8.0 / KDE 4.3.4. Clearing the icon cache only helps a little bit. A few bookmarks will then update, but most will not, even when the favicon is clearly showing in the URL.
Comment 17 Leonardo La Malfa 2010-08-19 11:07:20 UTC
Favicons still missing on Kubuntu 10.04 with KDE 4.5, as well.
Comment 18 Anguo 2011-09-08 04:02:08 UTC
Still having this problem on Kubuntu 11.04 / Konqueror 4.6.2.
Comment 19 Simon St James 2011-09-28 18:57:45 UTC
I'm seeing this on my netbook (but I've never seen it anywhere else), and am starting to have a look around.

To make sure it's the same issue, here is what I am seeing in Konqueror:

1) For the failing-to-load favicons, when switched to the tab whose favicon doesn't load, the left-hand side of the url in the location bar is flush with the left hand side of the location bar, whereas with correctly-loaded favicons, the favicon is between the left-hand size of the location bar & the url.  Importantly, there isn't a favicon-sized blank image there: there is simply nothing at all.

2) For tabs with the failing-to-load favicons, the tab does not contain the favicon: just a blank, favicon-sized patch.  (I'm not seeing the "question-mark on a blank sheet" thing, though).

3) The failing-to-load favicons do no show up in the bookmark editor - instead, a blank, favicon-sized patch is theree.

4) In the "Other Tabs" list, the  failing-to-load favicons do no show up - there is a blank, favicon-sized patch instead.  *However*, sometimes if I hover over one of the entries, its favicon *does* show up (in the list), and stays until I unhover the entry.  I haven't discovered a pattern for when this works, though.

5) When switched to a tab with a  failing-to-load favicon, the konqueror app icon (i.e. the one that is shown in the window title & taskbar) is set to a generic "globe on white background" icon, *with a tiny version of the favicon in the bottom-right corner*.  The favicon does seem to be getting loaded correctly somewhere along the line!

Are people seeing the same symptoms as I am?

I've been hacking around inside keditbookmarks, and in the "if (role == Qt::DecorationRole && index.column() == NameColumnId) " block of kbookmarkmodel/model.cpp, the KIcon returned, when I ask for a 16x16 pixmap, is blank (appears to be a 16x16 fully transparent image) for the failing-to-load favicons, but correct for the others, so it may be a problem inside KIcon (it has a special code-path dedicated to favicons).  The required image is present and correct in my kde-cache/favicons folder with the expected filename; it's simply not being loaded, it seems, or is being trashed elsewhere.

I won't have time to investigate further as I'll have to set up a kde build environment on my netbook, which will take a while.
Comment 20 Anguo 2011-10-02 08:11:50 UTC
Woah! Simon! Your description of the bug is very precise and also very accurate! I was able to verify all the points you make (Kubuntu / KDE 4.6.2). You also get special credits for your powers of observations in 4) and 5)!!! Yes, the missing favicons can amazingly be found in the places you describe.

I hope those finding can help someone to get to the bottom of this bug and fix it. Many thanks to the developers.
Comment 21 Simon St James 2011-11-19 10:47:39 UTC
Ok, had a quick look into what's going on here, and (at least from keditbookmark's point of view), it's to do with KIconCache not being invalidated when a favicon is.

Sample run of keditbookmarks, assuming that the favicon for somesite.com is not in /var/tmp/kdecache-<user>/favicons:

- keditbookmarks starts up, displays tree of bookmarks;
- Each bookmark has an icon (usually, for websites, the favicon for the site, in which case the icon starts with the magic string "favicons") that must be rendered;
- To be rendered, the icon must be loaded via KIconLoader;
- KIconLoader has a magic path for favicons, where it deduces the full name of the favicon image in /var/tmp/kdecache-<user>/favicons;
- This image is checked for in the KIconCache - if it is there, that image is returned and this will be displayed in keditbookmarks;
- If not, it tries to load the image from the  /var/tmp/kdecache-<user>/favicons folder;
- If the image is not there - which is the case with somesite.com, then the image, instead of being null, will be a blank 16x16 icon (not entirely sure how this happens yet - will need to get gdb to cooperate in stepping through the code!)
- This image is then added to the KIconCache and will be used by iconloader for any subsequent requests for this favicon, until the KIconCache is deleted.

So essentially, as soon as keditbookmarks starts up, the current version of the favicon - or a 16x16 blank if the favicon has not yet been retrieved - is inserted into the KIconCache and this cached version will always be returned when that favicon is requested.  If the favicon happened not to have been downloaded at this point, then we're stuck with a favicon, even *after* the correct favicon has been downloaded.

One course of action that I haven't yet tried is to call KIconCache::deleteCache() prior to each "emit iconChanged" in lib/konq/favicons/favicons.cpp, but deleting the entire icon cache on this seems like overkill.  There doesn't seem to be a more precise way of just removing specific groups of icons from KIconCache.  We *could*, instead of that, overwrite just the updated  favicon in the KIconCache, but we'd need to duplicate the KIconLoader::makeCacheKey which I'm not keen on, and this wouldn't help invalidating any favicon overlays using the old, invalid favicon.

Another approach might be to make KIconCache itself "favicon-aware" in much the same way that it is currently "theme-aware".

David - a penny for your thoughts? ;)
Comment 22 Simon St James 2011-11-19 11:07:39 UTC
Whoops - turns out that KIconLoader's mIconCache is actually a KSharedDataCache, not a KIconCache - silly me! The above is still (mostly :/) correct, though.