except:
etype, emsg, tb = sys.exc_info()
self.log(" no icon : %s %s" % (etype, emsg))
- etype = None
- emsg = None
- tb = None
+ etype = emsg = tb = None
icons[icon] = None
else:
content_type = headers["Content-Type"]
- if content_type.startswith("image/"):
+ if content_type.startswith("application/") \
+ or content_type.startswith("image/") \
+ or content_type.startswith("text/plain"):
icon_file = open(icon_fname, "rb")
icon_data = icon_file.read()
icon_file.close()
bookmark.icon_href = icon
- bookmark.icon = "data:%s;base64,%s" % (content_type, b64encode(icon_data))
self.log(" got icon : %s" % content_type)
+ if content_type.startswith("application/") \
+ or content_type.startswith("text/plain"):
+ self.log(" got non-image icon, assume x-icon")
+ content_type = 'image/x-icon'
+ bookmark.icon = "data:%s;base64,%s" % (content_type, b64encode(icon_data))
icons[icon] = (content_type, bookmark.icon)
else:
self.log(" no icon : bad content type '%s'" % content_type)
Get favicon before HTML redirect (refresh).
+Get favicon even if it's of a wrong type; many sites return favicon as
+text/plain or application/*; the only exception is text/html which is usually
+an error page instead of error 404.
+
WHAT'S NEW in version 4.3.0 (2011-01-01).