From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; N; WinNT4.0; en-US; m14)
like IE5 mozilla shows icons in the location bar. Why not have this be a user
defined icon like is possible in ie5. and maybe also make the location bar a
list like object where you can choose previous locations
Steps to Reproduce:
1. go to url
Things to bare in mind are:
* This is a privacy issue -- it lets the site author know if you have
bookmarked the site. Thus this should be a pref if we implement it.
* This should not assume that the icon has a particular name, e.g. favicon.ico.
Much better would be to only check for the file if the web page includes
a link to the icon, like this:
<link rel="icon" href="..." type="image/png">
This would allow the entire site to automatically be given an icon by using
HTTP headers -- give the entire site a "Link:" HTTP header and then every
page automatically has an icon.
This may be a duplicate.
The problem with ms's implementation is that bookmarks/favourites are refreshed
and the icon only appears upon bookmarking.
The icon needn't be loaded only if the page were bookmarked. It can just show
always when the page is loaded and appear in the location bar drop down list
(which isn't there yet)
the icon can be stored in cache and only changed when the page is accessed by
the user. in this way there's no privacy issue.
I agree that implementation of the link feature is better and allows for system
independent icons by specifying the type of file. However most image formats
don't come in a package of 1 16x16 image and 1 32x32 image.
MS' implementation also means servers get hammered with random requests for
non-existent copies of the file "favicon.ico"...
Anyway, wouldn't this count as an MS proprietary feature, and therefore one we
aren't going to implement?
If it's not desired to add an icon to a web page, then you might as well not put
an icon in the location bar. Is there a function to this icon? In Netscape 4.7
there's no icon in front of the location.
If a larger integration between the desktop and the internet is desired the way
windows, kde and gnome are persueing it, then an icon associeted with a document
is not a silly idea. So implementation of ONLY the <link icon= ... > feature
might be desirable.
We can add helpwanted and see if anyone picks this up but I doubt it.
Adding helpwanted to keyword adn assigning to email@example.com
marking this new, so that it gets out of the unconfirmed list. sorry for the spamm
well, currently the modern skin has a 16x12 pixel bookmark icon, and the
classic has a 16x16 in the location bar (but the bookmark icons in the sidebar
are 16x15!)... so even if this were to be implemented (which would be a good
idea...), the skins would have to be standardized in this respect.
i also modified the summary to be a bit more descriptive.
*** Bug 51278 has been marked as a duplicate of this bug. ***
This is an interesting feature, and I agree, we should use the <LINK...> method.
Just a question, since I don't read W3C specs, it's probably not in there,
correct? And if it isn't, do they accept recommendations? Anyway, back to
implementation, Hixie suggests the link tag, however I suggest dropping the
'type' attribute (and have it act like a normal <IMG SRC> tag). Also, is there a
more than a slim-to-none chance of Mozilla implementing .ico Windows icon files?
I'm sure web developers would place the tag in there if that's all they had to
do (not converting their favicon to an actual image).
<link rel="icon" type="image/png" href="/logo.png" />
<link rel="icon" type="image/svg-xml" href="/logo.svg" />
Mozilla could *suggest* to Web authors that if the icon is a bitmap it should be
supplied as 16*16 or 32*32, but we wouldn't make it compulsory -- if it wasn't
the right size for the current skin, it would be scaled.
A potential gotcha: let's say MS decides not to implement this ... but on every
page of every MS-owned site (Hotmail, MSN, MSNBC, Slate, etc), they start putting
<link rel="icon" type="image/png" href="/bloody-huge-randomly-generated.png" />
just to slow Mozilla down. We'd probably want a hard limit on how many kilobytes
of the icon we read before we said `ok, no more, you've had your little game'.
lol, Microsoft has a little credibility, they wouldn't do that (well, netscape
engineers are weenies, so let me take that back ;). I don't think this is
and a document.write with a huge image, if they really have a bone to pick with
Mozilla. So, in closing, I'd be happy x2 if this gets implemented. That's not
something that I think warrants the time spent on it.
Interesting. Glad to finally learn what all these requests for favicon.ico in
my web logs mean :-)
I think supporting the "magic name" favico.ico proprietary feature of MSIE would
be a very bad idea. However, using the "link" tag would be very good.
About the "DoS" problem, I don't think this is a serious issue. If someone
wants to make a web page inaccessible or useless or whatever, for a given
browser, he can always find a way. What happens if I put a huge pr0n file named
favicon.ico for example?
mpt: Microsoft has already implemented this:
Granted, we don't want Mozilla to automatically look for a "favicon.ico" file
automatically the way IE does, but it seems like wanton incompatibility not to
ape their LINK relationship names here.
The reasons for using rel="icon" instead of Microsoft's rel="shortcut icon" are
* Specifying a rel attribute consisting of more than one word implies that the
current document has two equally valid relationships to the linked resource.
Microsoft has made a mistake here.
* The icon would not be used just for shortcuts, but for bookmarks, the location
bar, the `Top' icon on the Links Toolbar, Find in Bookmarks search results,
* Most crucially, where link rel="shortcut icon" is currently used, it is saved
as an .ico file, which Mozilla does not (and probably will not ever) recognize.
So aping their shortcut names would just be a waste of time on both sides,
because Mozilla doesn't recognize Windows's icon format, while IE doesn't
recognize anything else.
> Specifying a rel attribute consisting of more than one word implies that the
> current document has two equally valid relationships to the linked resource.
> Microsoft has made a mistake here.
Says who? "alternate stylesheet" doesn't mean that.
> The icon would not be used just for shortcuts, but for bookmarks, the location
> bar, the `Top' icon on the Links Toolbar, Find in Bookmarks search results,
What if we decide we want to give Web authors the capability to use different
icons for those display location? I imagine this is exactly the kind of
flexibility MS had in mind when they decided to use the "shortcut" modifier.
> Most crucially, where link rel="shortcut icon" is currently used, it is saved
> as an .ico file, which Mozilla does not (and probably will not ever)
That prediction strikes me as hasty. I doubt it would be very difficult to
support this format, and it would certainly add value to the browser. I perceive
a reasonable possibility that someone could decide to add it.
> So aping their shortcut names would just be a waste of time on both sides,
> because Mozilla doesn't recognize Windows's icon format, while IE doesn't
> recognize anything else.
IE should be smart enough to fail gracefully if it gets a file format it doesn't
recognize. So should Mozilla.
anyone here interested in owning this bug. I'm trying to clear out nobody's bug
list. firstname.lastname@example.org is overburdened
Braden, "alternate" is only a modifier when applied to "stylesheet" - any other
time it means literally an alternate to the current resource. Even that usage
may be suspect! I got smacked about this in discussion on bug 2800 back in late
June. Take a look at what Hixie and Tim Hill said in reply to my comment.
Also, mpt's latest comment sounds good to me, regarding places this icon could
be used and why it should be rel="icon" rather than "shortcut icon". IMO the
author's HTML shouldn't be able to start changing parts of the UA interface
willy-nilly. Using one icon consistently may be a nice convenience and even
useful, but if I saw 5 different widgets simultaneously change into 5 distinct
icons my response as a user would probably be, "Gaaah! What just invaded my
I don't think anyone has suggested this yet (IE does it), but this icon could
also be used when saving to the desktop as a file or link/shortcut. In the case
of the Mac, perhaps "badged" onto the standard document icon, or however the OS
handles this sort of thing.
As far as what size image to use, anything should work as long as the author
knows it may be scaled, and scaled differently in different widgets and skins.
And as for image type, anything that Mozilla can render should work. If someone
wants to add support of .ico files, more power to them, and to Mozilla.
Tim: I agree with you about "alternate". I think you have mistaken the context
of my comment. I was simply countering mpt's assertion that "Specifying a rel
attribute consisting of more than one word implies that the current document has
two equally valid relationships to the linked resource," which is simply
incorrect. It is a matter of fact that "alternate" can act as a modifier rather
than as a distinct relationship, and there is no reason that other relationship
type modifiers could not be introduced in the future.
Fact is, Microsoft has introduced "shortcut" as a modifier for "icon", and the
coupling of those two has a de facto standard meaning. I find mpt's objections
to the "shortcut" modifier wholly unconvincing. But I've already countered them
and no one has addressed those arguments.
You say that HTML authors shouldn't be able to arbitarily modify the client UI,
and I agree. Supposing Microsoft or someone introduced additional modifiers to
do that, supporting the "shortcut" modifier by no means implies that we would
have to support those hypothetical additional modifiers as well.
OTOH, you say, "this icon could also be used when saving to the desktop as a
file or link/shortcut." That's entirely possible. But suppose someone wanted to
use a different icon for that than they use for the bookmarks entry? Well, that
kind of situation is exactly what modifiers are for.
Braden, http://www.w3.org/TR/REC-html40/types.html#h-6.12 nowhere states or
implies that such a behavior for "alternate" links is required. There _may_ be
room for that interpretation, but the counter argument, IMO, has more merit.
The description for the "alternate" type itself says that it "designates
substitute versions for the document in which the link occurs" and goes on to
explain how it can be used for alternate language/media versions of the same
page. The only place you see "alternate" used as a modifier is in the
description for "stylesheet". This seems to be the exception, not the rule.
"In the DTD, %LinkTypes refers to a space-separated list of link types." So
multiple link types are permitted - how do you disambiguate modifiers from
multiple distinct types? Is it a "shortcut" and an "icon" or is it a "shortcut
IMO it was a mistake to use "alternate" as a modifier; "alt-stylesheet" or
similar should have been used instead. And in this case, if you want different
types of icons, create a new link type: icon, shortcut-icon, desktop-icon, etc.
Modifiers only create ambiguity - the spec does not address them in any general
sense. How do we know how they should be handled?
De facto standards are not a spec. We can get the same functionality as MSIE by
just supporting the "icon" type. IE uses the same icon in all the locations,
essentially ignoring any modification that "shortcut" might have done. I agree
with mpt, MS basically bolluxed here.
Some more information about Microsoft's favicon.ico implementation:
According to <http://www.microsoft.com/TechNet/iis/mimeiis.asp> the MIME-Type
is 'image/x-icon' for all Windows-icons (ending: '.ico').
There is a severe security issue with invalid favicon.ico files at least in IE5:
You may find some more links on the topic at
(website in German language, but most links to English pages)
Something similar was allready part of the HTML 3.0 working draft.
I think making Mozilla's icon implementation something betwheen Microsoft's
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> and this old
<link rel="icon" href="img/big-banner.png" type="image/png"> might be a good idea.
Adding [RFE] to Summary.
It seems concensus here and NG discussions on this issue is that LINK is the
preferred way to implement this feature. That way the file is only requested if
the author specifies it to be.
Hixie: You made a comment that this could be specified in HTTP headers for an
entire site. This would be very convenient, since authors wouldn't have to
remember to put the same LINK in every page. However, I don't see that "Link"
is a valid HTTP header, as you seem to suggest. I'm not very knowledgable about
the protocol...does it allow arbitrary headers? I've seen META tags that try to
mimic headers, but not headers that try to mimic HTML.
Dan Nunn: I disagree on dropping the "type" attribute from the LINK. It's not a
required attribute, but can help if provided. Note that the IMG tag is a rather
broken implementation of including other media inline. OBJECT is probably a
I agree that putting some sort of size limitation on the image file is probably
a good idea, if only to guard against newbies that don't understand bandwidth
issues. I think 5kB is reasonable; it's only supposed to be an icon after all.
Regarding physical dimensions and justin's skin concerns, would it be possible
to scale the image as appropriate to wherever it's being used?
If these icons are to be used for bookmarks, should the image files be stored
somewhere other than the normal cache? We don't want to have to refetch them
every few days when they expire just to build the UI. Perhaps when the bookmark
is visited, the icon could be refreshed. (The file may have changed, or the
site may be pointing to a different file.) I believe that's what Jos suggested.
I'm going to try to set up a build environment. If I can get Moz to build, I
might try giving this a shot. An out-of-the-way non-critical bug like this
seems a good place to start at. I'm going to be moving soon though, so this may
not be real soon.
tim: See bug 3248. The 'Link' header was present in RFC 2068 , and
subsequently removed from later drafts due to lack of implementations. We now
Asa: Assign to me. I may eventually be able to add support for this.
*** Bug 77429 has been marked as a duplicate of this bug. ***
adding alecf as he mentioned some interest in this bug.
Personally, I think this would be a great little feature to add. And supporting
the favicon.ico spec shouldnt be considered as supporting microsoft's
proprietary spec, but instead taking advantage of something that is already out
there, is becomming more widely adopted, and shows that we are willing and able
to integrate features from IE as they are for ours.
That's not to say we couldnt also offer an alternative in some other way, but
not implementing it just to snub microsoft hurts us more than them and gives a
little more incentive for folks to stay with IE...
This part of favicon.com is sort of interesting... it might be a part of IE's
spec that we might overlap:
FREQUENTLY ASKED QUESTION (PLEASE READ): I switched my favicon but my system
continues to read the old one.
Change the name of the favicon from the default favicon.ico to something else.
Then add or update the link tag in the section of your html page:
<LINK REL="SHORTCUT ICON" HREF="http://www.favicon.com/favicon2.ico">
Remember, if you do not add this to your head tag, Internet Explorer will look
for favicon.ico (all lowercase).
That sounds like a cache problem with IE. I have noticed that happens and we
wouldn't want to imitate that.
Konqueror has the same caching problem btw.
Side note: Where do I go to request that bugzilla not send me mail when the CC
bottom of a bugzilla page. edit *prefs*. *email settings*
uncheck each [ ] CC field changes box.
stay away from: When I'm the Bug Owner, email me: [ ] When I'm added to or
removed from this capacity ;-)
*** Bug 82130 has been marked as a duplicate of this bug. ***
Bug 18502 only partially blocks this one. Reasoning is that favicons don't HAVE
to be .ico files. Mozilla can support favicon for gifs, jpgs and pngs
until .ico support is added to Mozilla (bug 18502).
It would actually be ironic. Microsoft only would support it for .ico files,
yet Mozilla would eventually support it for .ico, .gif, .jpg, .png, and any
other image that Mozilla can read.
Just to recap a few things:
We should load the icon during page load, not during bookmarking. This removes
the privacy issue, and shows off the feature more. (It's hardly noticible in IE
due to the icon only being available post-bookmark).
We should NOT NOT NOT scale. You can't scale images when your working with 16x16
or 16x12 icons, it'll look like utter shit. It's hard enough to make anything
legible in 16x16 pixels, but if the browser is choping it down to 16x12 to fit
with the modern skin, you'll have nothing but a blob of colors. Skins need to
all go to 16x16, as does the bookmark sidebar, if we implement this.
Using the icon for the desktop is probably a whole seperate issue, considering
every platform has a differant format and size for desktop icon's we'd have to
convert to. Most likely more trouble then it's worth, unless we implement a
rel="gnome-icon", etc, and have the webmaster do the scaling and converting.
Will using rel=icon for our implementation allow us to understand rel="shortcut
icon"? If mpt is correct in his interpretation of a two word rel meaning two
seperate relationships, we should be able to grok the second relationship
seperatly, and ignore the first, non? That would be quite nice, as we'd be
compatible with the thousands of pages out there already.
Yep, icons should be used whenever referenced in the page, not just when
After reading about the problems that icon designers are having with MacOS
X, I think I agree that icons should not be scaled, but standardized. Scaling a
photorealistic icons may sound like a good idea but it's probably not so good in
practice. OTOH we could scale them but simply tell designers that if they want
the icons to look good, the standard is 16x16 (or whatever). Five years from
now the Mozilla browser may want a different standard icon size, maybe 100x100
when we're all using those super-hi-res displays.
If we introduce more rel types, I suggest we make them as general as
possible, i.e., "desktop-icon" rather than "gnome-icon".
From 12.2 of the HTML 4.01 spec: The value of this attribute is a
space-separated list of link types. I believe Mozilla is handling this
correctly, so we should be fine.
*** Bug 100540 has been marked as a duplicate of this bug. ***
Why does everybody here talk about M$ and bookmarks.
Why don't do it just like Konqueror has it.
When going to a webpage Konqueror always shows the icon in front of the url.
I didn't try bookmarks, but I guess bookmarks also have icons in front of them.
Why is this dependant on Bug #18502 ?
I just wanted to add that .ico files has one important feature: They are
multi-image files, so that they contain many versions of the icon, from which
the browser selects the proper one. This is a reason for: 1) Implement .ico
files in mozilla 2) Look some similar solution with .mng files.
I have to disagree with Jeremy on scaling. Scaling of 12x12 to 16x16 or 32x32
to 16x16 can look just fine with a half-decent algorithm. Using an expensive
algorithm is even plausible given the size limit we're talking about.
I mention this because if the icon is going to be the same for the desktop icon
(which might be 128x128), the bookmarks icon (at 16x16) and perhaps the icon in
the corner of the Window Manager's window (maybe 32x32) then either scaling or
multi-sized files need to be considered.
For the non-Microsoft developers here, .ico files actually support multiple
internal sizes. This has been a standard feature for a long time and was used
extensively in help files to size up an image if the user upped their font
Specifying which file to use for different sizes is out of the question if we're
only going to support one file in the first place, but scaling down and up to
the correct sizes is going to have to be standard. Who's going to be the first
to argue that icons will always be 16x16 in Mozilla skins?? We only need 640k
to run a PC, remember ...
*** Bug 104886 has been marked as a duplicate of this bug. ***
I'm taking this. I'm working on an ICO decoder now.
As Guardian of the Accept: header, your accept changes are bogus. You've put
image/x-icon in there with no q value, so it has the default q of 1.0, and
image/bmp with the same q as */*, meaning you might as well not have it at all.
Given that there's approximately zero cases in which we'd prefer BMP to some
other format, there is no gain to be had here, as they can be incorporated into
*/*. Making this change would bloat every GET request we make by 31 bytes. We
are already getting complaints that our GETs are too big. Please leave the
Accept: header as it is now.
Also, just a reminder: if any of the files with the MPL on are completely new
and not derivatives, could they be tri-licensed, please?
Drat. Wrong bug.
Created attachment 56382 [details] [diff] [review]
Add favicon support to the URL bar and tabbrowser.
I still maintain that asking for files we haven't been given URLs for is bad -
hammering every server we visit for favicon.ico is really rude.
Why do we need to? If we respect <link rel="icon">, and websites see that if
they bother to add that they can get tab and URL bar icons in Netscape 6.x (as
opposed to well-hidden bookmark icons in IE), they'll all do things the _right_
way (which IE also supports) without us having to adopt the broken IE behaviour.
I doubt I'm going to win this one, but I am right :-)
Gerv, even IE isn't broken that bad. It only requests favicon.ico when you
bookmark the site. The only other way it gets a custom icon I know of is with a
<link>. At the least we should only request the file then. But preferably we
should only request it based on <link>. Aside from being dumb and rude, adding
an extra GET to every site load is a perf problem too.
I also don't like the idea of hardcoding 'favicon.ico' as special. This is
avoided when you only follow <link>s, since the filename can be anything you want.
Eventually HTML editors will allow each page to have its own icon and insert the
<link> for users. Why go backwards to a less controllable (for the browser and
for web site authors) method.
It would be a good idea to set a max size for the icon to say 16x16. Try
freshmeat.net and see what wonders it will do to your window with this patch
Prefs control for this needs to be implemented to turn this off due to a bit of
It would be quite simple to add this to the bookmarks menu now with the right
caching work shouldnt it?
Overall patch is quite good.
> Gerv, even IE isn't broken that bad. It only requests favicon.ico when you
> bookmark the site.
Konqueror in KDE requests favicon.ico for every site. It does a HEAD so this
operation isn't too expensive.
IMO. It isn't ideal but I think we should just be pragmatic on this issue. I
think that intellectually Gerv is correct but any alternative would need to be
pushed forward and we would be at least 1 year away from seeing a clean
implementation of this.
The issue I think is that content developers are NOT going to want to rewrite
all of their pages to add a <link> to the icon.
Copying a file and putting it into /favicon.ico (similar to the way they deploy
robots.txt) is very easy to implement and doesn't require a lot of work.
Until we have a way to do this with RDF or something "clean" we will have to
support the favicon.ico hack.
Yes, pragmatically, we want to support the feature in such a way that custom
icons are actually seen, and that means fetching favicon.ico from the root of a
site. If you only honor the <link> method (something i also want to support),
then the feature becomes largely useless, since nobody uses the <link> method,
even though IE supports it.
I can add a pref to turn this off for those who don't want favicons.
Comment on attachment 56382 [details] [diff] [review]
Add favicon support to the URL bar and tabbrowser.
Looked it over. Looks fine to me. It would be nice to find a way to update other skin developers so they can add this capability.
Andrews, see ancillary bug 108403, XUL images don't scale. With that bug
fixed, the larger icons will scale down to 16x16.
Couple of points, relating to this line (and some others):
+ if (aURI && aURI.schemeIs && aURI.schemeIs("http"))
if you're looking for a method called |schemeIs| defined in aURI, your check
here will give a js warning.. prefer |"schemeIs" in aURI|.
Also, what about https? (on this line, and some others)
(fix those, and email@example.com, with mac testing, of course)
Created attachment 56469 [details] [diff] [review]
Patch that also adds back the tabbrowser close box
| Konqueror in KDE requests favicon.ico for every site.
One more reason to not like it ...
| It does a HEAD so this operation isn't too expensive.
It is SPAM nevertheless!
| IMO. It isn't ideal but I think we should just be pragmatic on this issue. I
| think that intellectually Gerv is correct but any alternative would need to be
| pushed forward and we would be at least 1 year away from seeing a clean
| implementation of this.
| The issue I think is that content developers are NOT going to want to rewrite
| all of their pages to add a <link> to the icon.
You think ...
I think they will _love_ to do one simple search and replace run over their
site, if they are interested in that feature and if documentation about
Mozilla's implementation exists (==> Evangelism).
But they will shurely _hate_ Mozilla if it floods their logfiles with 404
messages for each visit of each site.
I can't see any delay for implementation _inside_ Mozilla. There is only the
link method (if there was one by the webservers http-configuration this was a
fine solution as well).
If full web author's support for a new feature needs some months, that is not a
| Copying a file and putting it into /favicon.ico (similar to the way they
| deploy robots.txt) is very easy to implement and doesn't require a lot of
If you think that every webmaster _has_to_ have a file called favicon.ico in his
root directory, write a proposal for a new RfC and make this an new standard.
Before this is ready each browser that is looking for odd files on a webserver
without having been told so, has to be considdered broken.
Mozilla is comitted to standards, not to M$-de-facto-monopolism!
| Until we have a way to do this with RDF or something "clean" we will have to
| support the favicon.ico hack.
WE DON'T HAVE TO!
That Microsoft is doing things wrong for years is never a valid argument to do
What about some MIME-type-guessing? What about smarttags?
What about the icon in the task manager like KDE or GNOME panels? Any progress on that part? Also, Michael, what are the other reasons not to like Konqueror? This is a little bit offtopic, but Konqueror performs quite well for me.
> Yes, pragmatically, we want to support the feature in such a way that custom
> icons are actually seen, and that means fetching favicon.ico from the root of
> a site. If you only honor the <link> method (something i also want to
> support), then the feature becomes largely useless, since nobody uses the
> <link> method, even though IE supports it.
I think there's a very good chance that Mozilla/NS6/Beonex will get very popular
very soon. If Mozilla only supports <link>, webmasters will start using <link>
when Mozilla gets popular. So we might as well do it the right way.
Whoa there. favicon.ico is, in the final analysis, eye candy. There is
absolutely no reason we should be smacking around web servers for the sake of
following an ill-designed MS "feature", especially when there's a way for web
designers to activate it both here and in IE.
I'm with the group who's opposed to having Mozilla look for "favicon.ico"
unbidden (i.e., in the absence of explicit reference, as in a LINK element).
What's the point of there being alternative browsers if they all jump over one
another in a race to scrupulously imitate all features, misfeatures, and bugs of
the most popular current browser?
> | Konqueror in KDE requests favicon.ico for every site.
> One more reason to not like it ...
Don't be insulting. Diversity of opinion is a good thing and just helps everyone.
> | all of their pages to add a <link> to the icon.
> You think ...
Yes... do you :)
> I think they will _love_ to do one simple search and replace run over their
> site, if they are interested in that feature and if documentation about
> Mozilla's implementation exists (==> Evangelism).
Really? What if they don't have one site? What if they have a site like yahoo
where it is generated from a DB and they have to pay someone $150 an hour to
come in and rework all their code tos support this small piece of functionality.
Instead they just run
scp favicon.ico firstname.lastname@example.org:/home/httpd/
> But they will shurely _hate_ Mozilla if it floods their logfiles with 404
> messages for each visit of each site.
No... they can probably implement <link> if they want. This way they will get
their favicon and no 404.
This is the pragmatic approach I was talking about.
Balance is a good thing..
> I can't see any delay for implementation _inside_ Mozilla. There is only the
> link method (if there was one by the webservers http-configuration this was a
> fine solution as well).
> If full web author's support for a new feature needs some months, that is not a
Yes it *is* a problem.
> | Copying a file and putting it into /favicon.ico (similar to the way they
> | deploy robots.txt) is very easy to implement and doesn't require a lot of
> | work.
> If you think that every webmaster _has_to_ have a file called favicon.ico in his
> root directory, write a proposal for a new RfC and make this an new standard.
It is already a standard. It is called a defacto standard. We already have 70%
of the browser that implement this.
> Before this is ready each browser that is looking for odd files on a webserver
> without having been told so, has to be considdered broken.
> Mozilla is comitted to standards, not to M$-de-facto-monopolism!
Keep an open mind here. I don't like MS either but this isn't about MS vs
Mozilla. This is about implementing a technical solution that helps customers
and pushes Mozilla forward.
> | Until we have a way to do this with RDF or something "clean" we will have to
> | support the favicon.ico hack.
> WE DON'T HAVE TO!
> That Microsoft is doing things wrong for years is never a valid argument to do
> the same! What about some MIME-type-guessing? What about smarttags?
Did I say that those were acceptable approaches? I did not!
The favicon.ico approach is not that bad of a hack. If users don't want the
spam they can implement <link>
So what is the problem here? I think you should really keep an open mind.
Balance is good.
Please take this discussion to netscape.public.mozilla.general
I have started a thread 'favicon' at
Surely the sensible thing to do is as follows:
hyatt said he'd put the objectionable behaviour behind a pref. So, we start with
the pref off, and all those who don't like this behaviour put their money where
their mouth is and head out to evangelise topsites which have favicons. If some
percentage (say 80% of the top100 which have favicons) implement <link> before
the next Netscape release, Netscape leaves the pref off. Otherwise they flip it on.
Dave - would you sign up for that? It's seems the majority opinion is against
auto-request, but we should give them some time to do the evangelism they think
is the necessary replacement.
This war needs to stop right now, take this discussion to the newsgroup
and no more konq vs. moz fights here! Discuss that in alt.fan.mozilla or
something like that... If you keep this up, you are running the risk of having
your bugzilla accounts pulled!
A page author should not have to add an arcane piece of HTML to prevent their
servers from being hosed, just so somebody can see a tiny little graphic that
serves no useful purpose. It's ridiculous.
I feel this needs to be briefly reiterated, since everyone seems to think we're
implementing IE's behaviour.
IE *DOES NOT* request /favicon.ico every time it goes it a site. It *ONLY*
requests it when a user bookmarks the site (hence the name. Otherwise they would
have called it spam-me-with-lots-of-404s-for-this-icon.ico). Additionally, a
<link> tag in an individual document will force a load immediatly, and override
the default /favicon.ico path.
To respond to hyatt:
> we want to support the feature in such a way that custom icons are
> actually seen. ... If you only honor the <link> method ... then the feature
> becomes largely useless
Do you consider it largely useless in IE, then? The truth is, many sites out
there DO now use the <link> method, because that's the ONLY WAY you get it to
display in IE, unless the user bookmarks a page.
Check it in with just honoring <link>, and if you must, have it fetch the icon
when you bookmark as well. Have someone fix up mozilla.org, netscape.com,
cnn.com, and aol.com with the <link>. Everyone will quickly notice
Mozilla/Netscape6 support URL icons, and can add support on their own page.
The other issue here that hasn't been discussed is caching. From what I can
tell, the current patch doesn't actually save these icons anywhere. IE caches
the icons seperatly, but at least with IE5, it had a lot of issues. Even
deleting the bookmark and rebookmarking didn't fetch a new icon. Mozilla needs a
seperate URL icon cache, which will require some thought.
zach: this is not a Moz/Konq/IE flamewar, it's a legitimate discussion of the
best way to implement a feature. And if I get in trouble for pulling people's
Bugzilla accounts, I don't think it's threat you can make :-)
Since there seems to be a split as to loading favicon.ico as the default
behaviour, why don't we just make it an option? That way, the people that would
like to see it could enable it, and other could just leave it until they
bookmark the site (or if the site has a <link> for it).
Ok, here's the additional work regarding favicons that I'm going to do before
any sort of landing occurs.
(1) Have a little cache of "missed" favicons. I'll remember the last 10 missed
sites. That way as you're browsing around on a site, I'll only spam the site
for its /favicon.ico once.
(2) Improve the XUL <image> tag to have a capability to continue to show its
old image until its new image is available. This will stop the "blinking"
effect in the URL bar and tabs as you browse through sites that don't have
(3) Get support for both <link rel="icon"> and <link rel="shortcut icon">
working in the tabs and url bar.
Created attachment 56533 [details] [diff] [review]
Patch that ensures the URL bar doesn't flash if favicons are absent.
Created attachment 56536 [details] [diff] [review]
Add the pref and default it to OFF.
Ok, ready for a new r/sr to actually land this thing. I've added a pref that
defaults the whole feature to off for now.
Disregard the change to the accept header pref in all.js. That isn't part of
Created attachment 56542 [details] [diff] [review]
Ready to land.
I don't believe this should be checked in. We should not probe every website
for favicon.ico. This always asumes that a website's root is / whereas many
websites arn't going to be this way. If I go to
http://www.mozilla.org/projects/, that shouldn't fetch the favicon from
http://www.mozilla.org/favicon.ico, it should fetch it from
We all know that checking in new features that are turned off by default
eventually get turned on by flipping a pref. Adding this without it being on
is just adding additional bloat to our app which we don't need. Websites that
host lots of users are going to get very angry when all the hits to their user
sites attempt to load /favicon.ico from their root for no apparent reason.
Lets get this right before we turn this on. We should only fetch this icon if
the document has a <link> element in it.
People will claim that fetching the icon only for sites that are bookmarked is
a privacy violation... then lets not do that (unless the site bookmarked has a
There are a lot of people against this patch landing, and I think we should
carefully review the implementation of this "feature" before landing anything
for it (since we all know it will just end up turned on and broken).
We should probably move this argument to the newsgroups to figure out the
proper behavior. I feel very strongly that auto-fetching /favicon.ico is the
wrong behavior. People that run websites are going to get angry with this file
being requested automatically. While I believe that auto-fetching is probably
what the user might want, it is certainly not what websites want (unless they
explicitly ask for it (using <link>), and we don't want to piss off websites
or, worst case, they'll start blocking our browser all together (more than the
ones that already block us for other reasons...).
How about creating a variant of this patch that only uses <link>. There seems
to be more agreement that pages using <link> to specify an icon is a legitimate
use. That patch could be safely reviewed and landed, and would stop the "custom
site/bookmark icon" gap.
The favicon.ico debate could the be extracted into a separate issue of
providing IE compatibility, if you will.
>Websites that host lots of users are going to get very angry when all the hits
>to their user sites attempt to load /favicon.ico from their root for no apparent
A more insidious problem happened to a friend. He got space on an ISP for his
site, and the ISP had it's logo at /favicon.ico. Friend could only get rid of it
by adding <LINK> to all of his pages. Switched since then.
Stuart, I have no intention of turning on the pref in Mozilla if it is the will
of the community that it stay off.
As for bloat arguments, the part about fetching /favicon.ico is insignificant
code bloat. Nearly all of the patch is just devoted to supporting custom icons
at all (code that would be used by the <link> mechanism as well).
Whether or not to fetch /favicon.ico is one pref, and a couple of lines of JS,
and I am completely willing to leave it turned off. For advanced users who
would like the capability in Mozilla, however, it should be possible to turn it on.
> (3) Get support for both <link rel="icon"> and <link rel="shortcut icon">
> working in the tabs and url bar.
Isn't "icon" part of "shortcut icon"? If it is so, do you need to look for both
or is it enough to look for "icon"?
Love your work Dave. The bug's 25 votes speak for themselves.
My only suggestion would be to split the pref:
[ ] Show custom icons in URL bar and bookmarks
When a web page has no icon specified:
(o) do nothing
( ) request favicon.ico
That way, people who are queasy about implementing de facto standards & causing
404s can use the feature with a clear conscience.
hyatt: the "rel" attribute is a space separated list of words. You can totally
ignore the word "shortcut", and just look for "icon". The following should all
result in the relevant <link> element being used as the icon:
<link rel="shortcut icon" href="...">
<link rel="icon" href="...">
<link rel="icon next" href="...">
<link rel="my icon is lovely" href="...">
<link rel="next icon" href="...">
(Indeed, the last one should also end up being used in the link toolbar as the
link for the "next" button. This works already.)
Can't wait for this to be checked in, btw! :-D
Ewww. Hixie, for performance, I'd rather not have to search for a substring on
each link to figure out if it has an icon.
I ran some tests against a current build, the same current build plus the
pending patch above, and then with the patch and the pref turning this on.
I ran my standard page loading test, which has all of the content hosted on
the same server. For this page load test, there is no significant (read none)
difference in page load performance. The favicon.ico is GET once, upon the
first visit to that server, and is not GET again.
I also did some tests for window open time, and there may be between a 1 and 2%
cost to new window time, although I'm not sure I really trust that test yet (I
think I do, but I don't want to start putting to fine a point on how
representative it is of real end user experience). However, it does fit with
the fact that features have costs.
I do note that the cacheing of the favicon.ico is not working correctly in a
1) The first time you open a second tab (type Ctrl-t), the /favicon.ico for
the URL of the first tab is GET again.
2) If you "leave" a site (e.g., follow an external link), with either a
browser window, or with a tab, and then come back to that previous
page/site, then /favicon.ico is requested again. The same thing
occurs when you switch tabs A->B->A, then A/favicon.ico is refetched.
3) The cacheing of /favicon.ico is per window, so that if window A is pointed
to foo.bar.com, then if window B tries to load foo.bar.com/bax,
/favicon.ico is fetched again
4) Similarly, the cacheing is per tab, so that if a second tab opens site A,
/favicon.ico is fetched again. But, even worse, reloading one tab at site
A can cause the other tabs to want to check for /favicon.ico (e.g., I was
seeing up to three GET's when reloading while 3 tabs were pointed at the
John, the next patch should address those problems. It uses VALIDATE_NEVER in
order to avoid refetching favicons. This next patch also adds full support for
the <link rel="...icon..."> form in the tabs and in the url bar.
Also, before playing with this new patch, you're well-advised to pick up the
patch in 108318. There were a couple of bugs in the ICO decoder still that
would cause favicons to display incorrectly.
Created attachment 56703 [details] [diff] [review]
Patch that supports <link> and is smarter about not refetching custom icons (either through <link> or favicon.ico).
Comments on the patch:
Why call them Internet Explorer Favourites Icons? If we're going to Embrace
and Extend this Microsoft Innovation, we should do it right... and that
means changing the name. :-)
You have a lot of code that does things similar to this:
t.setAttribute("image", uri.scheme + "://" + uri.host + "/favicon.ico");
If the URI is:
...surely the favicon should be
...which I think is what your patch does. (benc, bbaetz: comments?)
(What does IE do for this?)
Finally, you check for the icon by doing:
if (event.target.rel.indexOf("icon") == -1)
...but surely that will also catch:
<link rel="lexicon" href="a-humougous-multimegabyte-file.html">
You should look for strings matching the following regexp:
\bicon\b (\b is regexp for "word boundary")
Another solution would be to have the events trigger once for each word in
the rel attribute (and have another event trigger once for each word in the
rev attribute) and do the splitting at the C++ level (assuming that is
Finally one small note -- you discard the "type" attribute of the <link>
element. That's ok (it's only advisory and HTTP headers should override it)
but I would recommend putting a comment there to that effect, e.g.:
// XXX type attribute discarded
...near the call to onLinkIconAvailable in the onLinkAdded method.
> Ewww. Hixie, for performance, I'd rather not have to search for a substring
> on each link to figure out if it has an icon.
Don't shoot the messenger, I am merely telling you what the spec says. :-)
Please don't make an automatic request for favicon.ico under any circumstance.
If it's hidden behind a pref I can be a good netizen and not spam others, but
what about everyone else using Mozilla (and IE) that continues to spam me with
these requests? It gives me half a mind to put some bloody huge favicon.ico on
my server just to annoy you all. :S :P
If there exists a mechanism for specifying which resource to request, it should
be used instead of relying on a "magic name". That's just bad design. And in
this case, there are privacy concerns as well.
Regarding the substring search for each <link>, I'm surprised this parsing isn't
done once when the page is loaded, and all the relationships stored somewhere
that you could look up. If every bit of <link> functionality has to do its own
parsing, that's a waste.
Tim: we are going to support <link rel="icon">, so yes, we support the "good
netizen" behaviour. Secondly, the pref will not be a hidden pref. Thirdly, if
I read the patch correctly, the pref will default to "off". Finally, why is this
a privacy concern?
Hyatt: Tim makes a very good point... we should have a single place to parse
<link> elements instead of duplicating the parsing code in three places (the
stylesheet loader, the icon handler, and the link toolbar).
It's the same old privacy concern, if we duplicate IE's behavior of looking for
"favicon.ico" when a user bookmarks the site. Obviously access logs tell us
what a user looks at. The extra request upon bookmarking tells us how the user
is using the info, which isn't really any of our business.
If we have this behavior, even if it is off by default, people can turn it on
and spam me with requests for a resource I never claimed to have. Sometimes
I'll have a dead link that will 404, and that's my fault. Sometimes a user will
typo a URL and 404, and that's just life. But I look at a browser intentionally
making a request for something the user didn't explicitly ask for and the author
never indicated was there to be a bug, not a feature.
Hixie: hopefully the Link: header you told me about will also be supported here,
so that authors won't have to modify every page with a <link> tag. Then, I
think, the primary argument to use the "favicon.ico by default" behavior would
Let me just comment that after reading this bug, I rushed to add the <link> to
my own pages. IE's method of requesting favicon.ico when you bookmark is
annoying, but Mozilla looking for it on every visit would be maddening.
I am glad this will be off by default, but still... yarg :(
I think the pref name should be something like
Sorry for the spam... But it's amazing that people are rushing
to implement a misfeature (even if disabled) just to be compatible
with a MSIE misfeature!
I can't use sites beacuse of "document.all" and I was told that it
was better this way and all the blah-blah, and I agree with that.
As somebody pointed before me, this feature bothers server admins not
users. Every user will likely enable it, and IMO requesting non-existant
files from servers is more broken than document.all. Or, if not,
please let somebody implement "document.all" with a pref that
defaults to off. If you don't agree with doing this
then leave this misfeature out of mozilla.
I can see that folks are not taking Stuart's advice and moving personal
comments about the bug off into a newsgroup. Since there has been so
many comments in the negative I wanted to post a comment in the
I believe this feature can become something better than microsoft's
original intention. Having these icons show up in the bookmarks list, in
the tabs view and other places can really help users locate and assocate
that icon with that site and more easily find bookmarks, etc.
I believe that via prefs a middle ground can be reached so that folks who
wish to refrain from asking for the icon by default can be happy and know
that this is the default behavior for mozilla. However I believe that users
should be allowed the choice to turn this on - and even have the sort of
granular control of say only fetching it if it's from a link tag or however.
I imagine that folks who are the most opposed to this have not actually
seen it in action. When you have a list of bookmarks a mile long - as I can
bet most folks do - having these icons allow you to locate your desired
bookmark very quickly. And I also notice that when I use the "tab
browsing" feature that it is often difficult to distinguish between tabs
without constantly rereading the titles. This would be a big step toward
I belive that this is something that users will find quite useful and helpful.
And with the preferences set up properly, can also be server-friendly.
Hixie, good call on my dropping the port. Trivial to fix.
Comment on attachment 56703 [details] [diff] [review]
Patch that supports <link> and is smarter about not refetching custom icons (either through <link> or favicon.ico).
sr=hewitt, but fix the port thing
Comment on attachment 56703 [details] [diff] [review]
Patch that supports <link> and is smarter about not refetching custom icons (either through <link> or favicon.ico).
r=andreww on new patch.
The pref in the current patch is called "Show Internet Explorer Favorites Icons
where available". When checked, it activated both the <link> and the /favicon.ico.
But users do not understand the consequences of enabling this pref (namely rude
requests to the servers), because you deliberately didn't tell them.
I believe that the /favicon.ico request should be guarded by a non-UI pref,
default off. IF you really want to offer a UI pref, it should be possible to
activate <link> without /favicon.ico, and the wording for the latter must make
the consequences clear. (Yes, it will be hard to explain to the user, that's
part of the reason why there should be no UI to activate this.)
In general, I see no valid reason to implement /favicon.ico at all, and I
strongly oppose its including in Mozilla. <link> is not rude and by far
superiour. As pointed out before, we require page authors to follow good
standards at other places, too, with possible costs for our users. I do think
that standards are worth those costs, esp. in this case.
(Sorry for adding my comments here, but with 2 exceptions, the discussion on the
newsgroup has been ignored by the other developers.)
No. <link> is always supported. There is no pref for it.
The pref in the UI is specifically for /favicon.ico (hence the use of the term
"Show Internet Explorer Favorites Icons where available"
A novice user isn't going to have any more idea what it is, what IE icons are,
or why they're in mozilla/netscape. The context help can explain "it's the cute
little thing right in front of the web address you're at."
Link, Site, Web or URL Icon is fine with me. We certainly can't call it
"Internet Explorer Favorites", though.
The code also needs a little more consistancy. You call it favicon in CSS and in
a comment, the pref is called 'site_icons', and the function calls it LinkIcon.
Oh, and the variable is favicon.
Ideally, once this is found to work and have negligable perf impact, we don't
need a user-visable pref for it at all, do we? Who does't like cute little icons?!
And I agree with Ben, /favicon.ico should be a seperate, hidden pref if it
REALLY must be checked in now, and defaulted to off. I think the people who
argue for '/favicon.ico' would be surprised how many sites out there already
have the <link rel=icon>... remember! it's the ONLY way to show the icon to the
90% of your traffic that uses IE, visits the page, but doesn't bookmark it.
Yes I think that's an important clarification - the pref is to turn on/off the
aspect that folks have been expressing an issue with (the fetching
/favicon.ico) otherwise the code does the right thing and looks for the <link
> attribute. I agree that the wording of that pref could be made clearer
somehow. I'll volunteer to file a bug on that and ask someone in docs
(Ian?) to go in and help find the right wording.
LinkIcon is not inconsistent. I use "LinkIcon" to denote an icon found using
the <link> element.
I will change the pref name to be favicons instead of site_icons.
Er, that's going in the wrong direction, actually :) We need to get away from
that word. Yes, I do hate this bugs summary line :) There's nothing special
about IE, other then it was the first browser to implement this type of thing.
Favorites is the name of it's bookmark equivilent. Not only is it a misnomer on
IE, since it can appear in other places, it's even more out of place in Moz and
NS, as there are no "favorites". Thankfully, the link rel value is generic
enough that we don't have to use IE's branded name *anywhere*, so let's not.
No, this is the right word. This pref is specifically for whether or not to
fetch favicon.ico. It is not about the <link> implementation.
> No. <link> is always supported. There is no pref for it.
Oh, ic. There should be. I don't necessarily want companies determine how the
icons on my browser UI and bookmarks look like.
> Who does't like cute little icons?!
Me. You can also call them corporate graffiti.
> I agree that the wording of that pref could be made clearer somehow.
How about "Blatantly spam servers with invalid requests to get more icons"?
Fixed. I am opening a separate bug for the support of custom icons in
bookmarks and on the personal toolbar.
I believe that you should not have ignored the concerns of many people, incl
I filed bug 108823 and bug 108825.
great work, hyatt. this feature rocks.
With this new preference turned on, using a CVS build on RH7.1 from about
12 hours ago, I find that going to slate.msn.com in a tab causes a segv. I'm
rebuilding now with current CVS and will put a gdb backtrace in a new bugreport,
but I thought a headsup would be in order
anthony@interlink: did you get a new build and reproduce that crash?
I can't reproduce this, but I do see the a request for
slate.msn.com/favicon.ico returns a 'HTTP/1.1 302 Object moved' and
then a 'HTTP/1.1 200 OK'. (C'mon MSN, that's an error code not a
"OK Not Found"). Maybe we have some problem when we pass this 'OK' but
bogus to the icon decoder.
> uri.scheme + "://" + uri.host + "/favicon.ico"
What happened to uri.resolve("/favicon.ico") ?
Please do not ever add the UI for this pref. If some people who are "web
knowledgable" want to destroy the internet by spamming the servers then they
know what they are doing wrong and let them. But please do not make it so the
average user can do such a thing. We have the ability to right a wrong done by
Microsoft by making this feature a standard only when the <LINK> tag is added -
and be HEROS :-) Let's not botch it up please. Eventually, hopefully we will be
able to remove that code and people won't notice.
"destroy the internet"! That's awesome. Please don't tell bin Laden about this
secret way to bring down our information society.
It is too late. Favicons of allah have been installed. Make your time.
To dispel some myths. The Al-Quaida's favorite favicons (aggresively searched
favicon.ico files at server root directory) are defaulted to "true" on the trunk
and "false" on 0.9.6 branch. The good guys' favicons (the ones using <link
rel="icon">) are swithed on by default on both the trunk and the branch.
I believe this is correct and needs no change. The trunk is for testing and test
them we do. Most people use the milestone releases anyway.
Concerning removing the code, I am against it. OK, there is no standard about
theis but thge majority of the most visited websites has them anyway. We may
(and probably should) evangelise towards using <link rel="icon"> favicons but
this also is no standard, so our moral standing is rather shaky. Anyway, the
server load of reading one icon (usually about 2-3 kB) per session is minimal.
It can be decreased further (if one hates the favicon.ico idea) by creating an
empty file called favicon.ico.
> defaulted to "true" on the trunk and "false" on 0.9.6 branch.
> I believe this is correct and needs no change. The trunk is for testing and test
> them we do. Most people use the milestone releases anyway.
I think you misinterpreted the intention. It's more coincidence. See bug 109843.
FYI: netscape.com and netcenter.com have favicon.ico's but don't have the icon
The favicons netscape.center and netcenter.com show are the icon any site
powered by Netscape httpd server. Check www.dilbert.com or www.unitedmedia.com
for other examples. If you used Netscape 4.* you would see the name "Location"
to the left of the URL bar change to "Netsite" when the sites are viewed.
Those comments belong in bug 110296 which is about evangelism for <link rel="icon">
From now on, if you find sites to evangalize, use that bug please :-)
It seems that in 0.9.7 it is requesting favicon.ico even when there is no <LINK>
in the page.
email@example.com: Yes. Thanks to the brains at Microsoft, we have to do it this way
as most people don't use the <link> method. Hopefully people will switch over.
That is what the evangelism bug is for.
I noticed that IE does the same thing on dilbert.com and unitedmedia.com
http://www.favicon.com/ Didn't waste any time in mentioning Mozilla.
1) http://bugzilla.mozilla.org/show_bug.cgi?id=32087 does indeed mention mozilla.
2) I thought the consensus was *not* to do this. I was unaware of the whole
debate going on in bug 109843
1) I don't know what you are talking about. I said "http://www.favicon.com/
Didn't waste any time in mentioning Mozilla."
2) Please take this argument to the newsgroups. If you want to get rid of
favicon in place of link, then get sites to implement this method. Bug 109843 is
for that. Chances of getting the favicon search reversed is minimal.
*SIGH* I meant bug 110296.
> Chances of getting the favicon search reversed is minimal.
> > Chances of getting the favicon search reversed is minimal.
Why not? What are the chances?
Please discuss this elsewhere. I just wanted to make sure that the situation is
I request that favicon in bookmarks be readded to the current builds. 1.0+ :)