diff --git a/dom/base/BrowserElementChild.js b/dom/base/BrowserElementChild.js index beeacae32fbb..77ce4dcfe90e 100644 --- a/dom/base/BrowserElementChild.js +++ b/dom/base/BrowserElementChild.js @@ -45,6 +45,11 @@ BrowserElementChild.prototype = { this._titleChangedHandler.bind(this), /* useCapture = */ true, /* wantsUntrusted = */ false); + + addEventListener('DOMLinkAdded', + this._iconChangedHandler.bind(this), + /* useCapture = */ true, + /* wantsUntrusted = */ false); }, _titleChangedHandler: function(e) { @@ -61,6 +66,25 @@ BrowserElementChild.prototype = { } }, + _iconChangedHandler: function(e) { + debug("Got iconchanged: (" + e.target.href + ")"); + var hasIcon = e.target.rel.split(' ').some(function(x) { + return x.toLowerCase() === 'icon'; + }); + + if (hasIcon) { + var win = e.target.ownerDocument.defaultView; + // Ignore iconchanges which don't come from the top-level + //