Turn off favicon.ico and remove support for turning it on from the UI. r=hixie, sr=ben, a=asa

This commit is contained in:
hyatt%netscape.com 2001-11-08 05:06:48 +00:00
Родитель f9a76a2609
Коммит 70660d7fa3
5 изменённых файлов: 77 добавлений и 16 удалений

Просмотреть файл

@ -92,7 +92,9 @@ pref("browser.urlbar.autoFill", false);
pref("browser.urlbar.showPopup", true);
pref("browser.urlbar.showSearch", true);
pref("browser.chrome.site_icons", false);
pref("browser.chrome.site_icons", true);
pref("browser.chrome.favicons", false);
pref("browser.chrome.toolbar_tips", true);
pref("browser.chrome.toolbar_style", 2);

Просмотреть файл

@ -1554,12 +1554,13 @@ function SetPageProxyState(aState, aURI)
if (aState == "valid") {
gLastValidURLStr = gURLBar.value;
gURLBar.addEventListener("input", UpdatePageProxyState, false);
if (pref.getBoolPref("browser.chrome.site_icons") && aURI && "schemeIs" in aURI && (aURI.schemeIs("http") || aURI.schemeIs("https"))) {
var favurl = gBrowser.buildFavIconString(aURI);
if (favurl != gProxyFavIcon.src) {
gProxyFavIcon.setAttribute("src", favurl);
if (gBrowser.shouldLoadFavIcon(aURI)) {
var favStr = gBrowser.buildFavIconString(aURI);
if (favStr != gProxyFavIcon.src) {
gBrowser.loadFavIcon(aURI, "src", gProxyFavIcon);
gProxyDeck.selectedIndex = 0;
}
else gProxyDeck.selectedIndex = 1;
}
else {
gProxyDeck.selectedIndex = 0;

Просмотреть файл

@ -184,7 +184,8 @@ Contributor(s): ______________________________________. -->
ondraggesture="PageProxyDragGesture(event);"/>
<image id="page-proxy-favicon" validate="never"
ondraggesture="PageProxyDragGesture(event);"
onload="this.parentNode.selectedIndex = 1; event.stopPropagation(); event.preventBubble();"/>
onload="this.parentNode.selectedIndex = 1; event.stopPropagation(); event.preventBubble();"
onerror="gBrowser.addToMissedIconCache(this.src);"/>
</deck>
<menupopup id="ubhist-popup" class="autocomplete-history-popup"
popupalign="topleft" popupanchor="bottomleft"

Просмотреть файл

@ -142,7 +142,7 @@ nsBrowserStatusHandler.prototype =
},
onLinkIconAvailable : function(aHref) {
if (gProxyFavIcon)
if (gProxyFavIcon && pref.getBoolPref("browser.chrome.site_icons"))
gProxyFavIcon.setAttribute("src", aHref);
},

Просмотреть файл

@ -69,7 +69,7 @@
onclick="if (event.button != 1 || event.target.localName != 'tab') return; this.parentNode.parentNode.parentNode.removeTab(event.target);"
ondragover="nsDragAndDrop.dragOver(event, this.parentNode.parentNode.parentNode); event.stopPropagation();"
ondragdrop="nsDragAndDrop.drop(event, this.parentNode.parentNode.parentNode); event.stopPropagation();">
<xul:tab validate="never" onerror="this.removeAttribute('image');" maxwidth="250" width="0" minwidth="30" flex="100000" class="tabbrowser-tab" label="&untitledTab;" crop="end"/>
<xul:tab validate="never" onerror="this.parentNode.parentNode.parentNode.parentNode.addToMissedIconCache(this.getAttribute('image')); this.removeAttribute('image');" maxwidth="250" width="0" minwidth="30" flex="100000" class="tabbrowser-tab" label="&untitledTab;" crop="end"/>
</xul:tabs>
</xul:stack>
<xul:tabpanels flex="1" style="margin:0px; padding:0px; border:0px;">
@ -112,6 +112,9 @@
<field name="mIsBusy">
false
</field>
<field name="mMissedIconCache">
null
</field>
<!-- A web progress listener object definition for a given tab. -->
<method name="mTabProgressListener">
@ -175,9 +178,9 @@
this.mTab.setAttribute("image", this.mIcon);
mIcon = "";
}
else if (pref.getBoolPref("browser.chrome.site_icons") && location && (location.schemeIs("http") || location.schemeIs("https")))
this.mTab.setAttribute("image", this.mTabBrowser.buildFavIconString(location));
else if (this.mTabBrowser.shouldLoadFavIcon(location))
this.mTabBrowser.loadFavIcon(location, "image", this.mTab);
if (this.mTab.label == this.mTabBrowser.mStringBundle.getString("tabs.loading"))
this.mTab.label = this.mTabBrowser.mStringBundle.getString("tabs.untitled")
@ -253,6 +256,57 @@
</body>
</method>
<method name="shouldLoadFavIcon">
<parameter name="aURI"/>
<body>
<![CDATA[
return (aURI && pref.getBoolPref("browser.chrome.site_icons") &&
pref.getBoolPref("browser.chrome.favicons") &&
("schemeIs" in aURI) && (aURI.schemeIs("http") || aURI.schemeIs("https")));
]]>
</body>
</method>
<method name="loadFavIcon">
<parameter name="aURI"/>
<parameter name="aAttr"/>
<parameter name="aElt"/>
<body>
<![CDATA[
var iconURL = this.buildFavIconString(aURI);
if (!this.mMissedIconCache) {
var cacheService = Components.classes['@mozilla.org/network/cache-service;1'].getService(Components.interfaces.nsICacheService);
this.mMissedIconCache = cacheService.createSession("MissedIconCache", Components.interfaces.nsICache.STORE_ON_DISK, true);
if (!this.mMissedIconCache)
return;
}
try {
var entry = this.mMissedIconCache.openCacheEntry(iconURL, Components.interfaces.nsICache.ACCESS_READ, true);
}
catch (exc) {}
if (!entry)
aElt.setAttribute(aAttr, iconURL);
else
entry = null;
]]>
</body>
</method>
<method name="addToMissedIconCache">
<parameter name="aURI"/>
<body>
<![CDATA[
var entry = this.mMissedIconCache.openCacheEntry(aURI, Components.interfaces.nsICache.ACCESS_READ_WRITE, true);
if (entry.accessGranted == Components.interfaces.nsICache.ACCESS_WRITE)
// It's a new entry. Just write a bit of metadata in to the entry.
entry.setMetaDataElement("Icon", "Missed");
entry.markValid();
entry.close();
]]>
</body>
</method>
<method name="updateTitlebar">
<body>
<![CDATA[
@ -351,7 +405,10 @@
<parameter name="event"/>
<body>
<![CDATA[
if (event.target.rel.indexOf("icon") == -1)
if (!pref.getBoolPref("browser.chrome.site_icons"))
return;
if (!event.target.rel.match((/(?:^|\s)icon(?:\s|$)/i)))
return;
// We have an icon.
@ -470,9 +527,9 @@
// Hook up our favicon.
var uri = this.mCurrentBrowser.currentURI;
if (pref.getBoolPref("browser.chrome.site_icons") && uri && (uri.schemeIs('http') || uri.schemeIs('https')))
this.mCurrentTab.setAttribute("image", this.buildFavIconString(uri));
if (this.shouldLoadFavIcon(uri))
this.loadFavIcon(uri, "image", this.mCurrentTab);
// Remove all our progress listeners from the active browser.
if (this.mProgressListeners) {
for (var i = 0; i < this.mProgressListeners.length; i++) {
@ -504,7 +561,7 @@
t.width = 0;
t.setAttribute("flex", "100000");
t.setAttribute("validate", "never");
t.setAttribute("onerror", "this.removeAttribute('image');");
t.setAttribute("onerror", "this.parentNode.parentNode.parentNode.parentNode.addToMissedIconCache(this.getAttribute('image')); this.removeAttribute('image');");
this.mTabContainer.appendChild(t);
b.setAttribute("type", "content");