Bug 998171 Clear the Aero Peek favicon when the document changes r=mcsmurf a=Ratty
--- a/suite/browser/nsBrowserStatusHandler.js
+++ b/suite/browser/nsBrowserStatusHandler.js
@@ -155,17 +155,18 @@ nsBrowserStatusHandler.prototype =
{
this.feeds.push(aLink);
this.feedsMenu.removeAttribute("disabled");
this.feedsButton.hidden = false;
},
onLinkIconAvailable : function(aHref)
{
- if (gProxyFavIcon && Services.prefs.getBoolPref("browser.chrome.site_icons")) {
+ if (aHref && gProxyFavIcon &&
+ Services.prefs.getBoolPref("browser.chrome.site_icons")) {
var browser = getBrowser();
if (browser.userTypedValue === null)
gProxyFavIcon.setAttribute("src", aHref);
}
},
onProgressChange : function (aWebProgress, aRequest,
aCurSelfProgress, aMaxSelfProgress,
--- a/suite/browser/tabbrowser.xml
+++ b/suite/browser/tabbrowser.xml
@@ -542,17 +542,17 @@
// The first location change is gotoIndex called from mInstallSH,
// the second one is considered a user action.
mLocationChangeCount : 0,
onLocationChange: function(aWebProgress, aRequest, aLocation, aFlags) {
const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener;
if (aWebProgress.isTopLevel) {
if (!(aFlags & nsIWebProgressListener.LOCATION_CHANGE_SAME_DOCUMENT)) {
- this.mBrowser.mIconURL = "";
+ this.mTabBrowser.setIcon(this.mTab, "");
this.mFeeds = [];
}
if (this.mLocationChangeCount > 0 ||
aLocation.spec != "about:blank")
++this.mLocationChangeCount;
if (this.mLocationChangeCount == 2) {
@@ -708,19 +708,23 @@
</method>
<method name="setIcon">
<parameter name="aTab"/>
<parameter name="aURI"/>
<body>
<![CDATA[
var browser = aTab.linkedBrowser;
- if (!(aURI instanceof Components.interfaces.nsIURI))
- aURI = this.mIOService.newURI(aURI, null, null);
- browser.mIconURL = aURI.spec;
+ if (!aURI)
+ browser.mIconURL = "";
+ else {
+ if (!(aURI instanceof Components.interfaces.nsIURI))
+ aURI = this.mIOService.newURI(aURI, null, null);
+ browser.mIconURL = aURI.spec;
+ }
if (aURI && this.mFaviconService) {
var faviconFlags = this.usePrivateBrowsing ?
this.mFaviconService.FAVICON_LOAD_PRIVATE :
this.mFaviconService.FAVICON_LOAD_NON_PRIVATE;
this.mFaviconService.setAndFetchFaviconForPage(browser.currentURI,
aURI, false,
faviconFlags);