Chủ đề này đã được lưu trữ. Vui lòng hỏi một câu hỏi mới nếu bạn cần giúp đỡ.
Firefox does not update a site's Favicon in history or bookmarks after the site has changed its icon
This is a bug report, not a question. When I access a web site for the first time, Firefox (version 84.0.2 [64-bit] under Windows 10) displays that site's Favicon in Firefox's search history. If the site then changes its Favicon, Firefox does not update its own copy of the site's Favicon and continues displaying the old one. I had a site like this in my search history but I had not bookmarked it. The site changed its Favicon but the icon displayed in Firefox's search history remained unchanged. I later bookmarked the site, thinking that this might inspire Firefox to update the Favicon but it did not; Firefox displays the old Favicon in its bookmarks as well.
Tất cả các câu trả lời (11)
I think site icons in bookmarks/history are saved (in the favicon.sqlite file) according to the site's original instructions for how long to cache the file. I can't think of a way to selectively override a single saved icon in that file (and I assume it's not annoying enough to justify deleting the file and rebuilding the entire icon cache from scratch by revisiting all of those sites).
Thanks jscher2000. Well I guess this is one of the perils of caching. I accessed the site both before and after the icon change using Microsoft Edge, I believe, and Edge used the new icon immediately after the change. Ditto with Chrome, I think, but I'm not sure. Do you have any idea what a typical default would be for a site's "original instructions for how long to cache the file"?
I suspect they haven't changed it and if you check the expiration on the current site icon (typically favicon.ico) it would be the same.
jscher2000: I know that the site changed the icon because I am the author of the site. When I first created the site in draft form I hadn't bothered specifying a Favicon, so I got the default one supplied by Websitebuilder. Later I realized that I didn't want that default icon and so I supplied a different one. Other browsers recognized the change immediately.
Sorry, I meant the cache expiration headers probably have not changed.
If you open your page, then open Firefox's Network Monitor tool in the lower part of the tab, and then Shift+Reload the page to force a fresh retrieval, you can inspect the response headers for the icon request and see what expiration is set. Either:
- "3-bar" menu button > Web Developer > Network
- (menu bar) Tools > Web Developer > Network
- (Windows) Ctrl+Shift+e
When you reload the page, Firefox should start listing all the files it is requesting. Click any line to open the sidebar on the right side and use the Headers pane for further research.
jscher2000: Thanks again. This gave me some insight but still did not fix things - and in any event a solution that requires the use of the Web Developer would be useless to the general public. I opened the Web Developer and saw that Firefox suggested that it had not downloaded the favicon due to its having been cached. I clicked on that line and didn't see any info that told me how long it would be before the cached image expired. Interestingly on the "Cache" tab there was no information at all.
So I checked the "Disable Cache" checkbox and reloaded the page. This produced a different-looking output that suggested that Firefox had forcibly loaded the icon - this time there was no indication of its having been cached. But as I noticed this it occurred to me that this cannot possibly be the source of the problem, because Firefox had already been displaying the correct image in the upper left of the tab displaying the site's pages. The problem is not that Firefox hadn't downloaded the new image - Firefox had been displaying the correct image on the tab ever since I had changed the web site. Rather the problem is that despite displaying the correct image on the tab, FIREFOX DOESN'T UPDATE THE ICONS THAT IT USES IN ITS HISTORY AND BOOKMARK ENTRIES FOR THE SITE. In other words, when displaying the site Firefox displays the new image on the tab I'm using, but still uses the old image in its history and bookmark entries for the site.
After what appeared to be my forced, non-cached download, I clicked on the address bar to display my history and then I went to my bookmarks and looked at the entry for this site. Neither of them had been updated.
Yes, I think Firefox saved the favicon.ico file in favicons.sqlite before it changed, and whatever we have tried so far has not triggered it to change the icon in that file.
Firefox has code to remove old icons, but I don't know exactly how it works: https://searchfox.org/mozilla-release/source/toolkit/components/places/FaviconHelpers.cpp#840
How did you replace the icon on your site? For example, did you retain the old path and file name and swap out the old icon, or did you use the meta tag to point to a different path?
jscher: Firefox is storing the icon in at least two different places for these three uses:
01 - On the tab displaying the site's pages, the (correct) new icon is being shown 02 - In the history that drops down from the address bar, the old icon is being shown 03 - In the bookmark entry for this site, the old icon is being shown
I am pretty sure that Firefox is internally using one image for 01 and a completely different image for 02 and 03. I believe that 02 and 03 share the same image because I created 03 after I had changed the favicon AND after Firefox had already been displaying the new icon on the tab (i.e. 01 above).
I don't know what method Websitebuilder used to exchange the old for the new icon when I modified the site, but I don't see how that matters. The problem lies in the fact that Firefox stores an old version of the icon (presumably the one used to create the history entry when the site was first visited) that it uses for internal purposes, and that separate copy is a completely different image from the favicon that it uses on the tab that displays the site. The image being used for history and bookmarks (02 and 03) obviously doesn't get updated internally by Firefox in the same way that the image displayed on the tab (01) gets updated. Thus Firefox has an internal discrepancy between multiple internal images when it probably shouldn't be using multiple images in the first place.
I have attached 3 files showing Firefox's displays of the disparate images in the three uses, all within exactly the same session. The site is located at http://mychildwillread.org. You will be unable to reproduce the problem unless I intentionally conduct the test with you by changing the site icon after you've initially accessed the site.
The three attached files are in the order of the list that I supplied above.
Yes, bookmarks and history use an image stored in favicons.sqlite.
This path in the home page is very unusual:
<link href="/var/m_f/fd/fd1/77978/910478-favicon.ico" rel="SHORTCUT ICON" type="image/x-icon" />
I suspect Firefox isn't replacing whatever it had before because the path is in a sub-sub-sub folder, but I really don't know if that's the problem.
Can your provider help with the image paths? They all seem strange to me.
jscher2000: I've reached the point where this is no longer worth the effort. I just wanted to notify Firefox implementers that Firefox probably had a bug. I am not planning on changing favicons again and this problem in my own browser doesn't really bother me. I have no control over how the paths to the favicon work - I am using a web site tool called WebsiteBuilder. Even if I knew how this worked and even if my provider assisted me, I don't see how I could change it. I greatly appreciate your assistance and your interest, but it seems to me that regardless of how a site stores its favicons, Firefox should handle it. Other browsers do, and even if I changed my site to accommodate Firefox, other sites built with WebsiteBuilder would still be a problem for Firefox.
Got it. It might not be worth filing a bug and working with the developers on it at this point.
Maybe it would help to delete this old icon if your host allows deleting it and you can't replace it: