rem: var feed = recognizeFeedFromLink(linkNodes[i], gDocument.nodePrincipal); if (feed) { var type = feed.type; if (type in feedTypes) type = feedTypes[type]; else type = feedTypes["application/rss+xml"]; addRow(feed.title, type, feed.href); 
add: var link = linkNodes[i]; if (!link.href) continue;  var rel = link.rel && link.rel.toLowerCase(); var rels = {}; if (rel) { for each (let relVal in rel.split(/\s+/)) rels[relVal] = true; }  if (rels.feed || (link.type && rels.alternate && !rels.stylesheet)) { var feed = { title: link.title, href: link.href, type: link.type || "" }; if (isValidFeed(feed, gDocument.nodePrincipal, rels.feed)) { var type = feedTypes[feed.type] || feedTypes["application/rss+xml"]; addRow(feed.title, type, feed.href); } 
context: function initFeedTab(){  const feedTypes = {    "application/rss+xml": gBundle.getString("feedRss"),    "application/atom+xml": gBundle.getString("feedAtom"),    "text/xml": gBundle.getString("feedXML"),    "application/xml": gBundle.getString("feedXML"),    "application/rdf+xml": gBundle.getString("feedXML")  };  // get the feeds  var linkNodes = gDocument.getElementsByTagName("link");  var length = linkNodes.length;  for (var i = 0; i < length; i++) {    var feed = recognizeFeedFromLink(linkNodes[i], gDocument.nodePrincipal);    if (feed) {      var type = feed.type;      if (type in feedTypes)        type = feedTypes[type];      else        type = feedTypes["application/rss+xml"];      addRow(feed.title, type, feed.href);    }  }  var feedListbox = document.getElementById("feedListbox");  document.getElementById("feedTab").hidden = feedListbox.getRowCount() == 0;}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/10234/9ace39b43462e370345a8b9260a36f3fecc92061/feeds.js/buggy/browser/base/content/pageinfo/feeds.js