home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / firefox-3.0.14 / chrome / browser.jar / content / browser / pageinfo / feeds.js next >
Encoding:
JavaScript  |  2007-10-02  |  1.8 KB  |  57 lines

  1. //@line 38 "/build/buildd/firefox-3.0-3.0.14+build2+nobinonly/build-tree/mozilla/browser/base/content/pageinfo/feeds.js"
  2.  
  3. function initFeedTab()
  4. {
  5.   const feedTypes = {
  6.     "application/rss+xml": gBundle.getString("feedRss"),
  7.     "application/atom+xml": gBundle.getString("feedAtom"),
  8.     "text/xml": gBundle.getString("feedXML"),
  9.     "application/xml": gBundle.getString("feedXML"),
  10.     "application/rdf+xml": gBundle.getString("feedXML")
  11.   };
  12.  
  13.   // get the feeds
  14.   var linkNodes = gDocument.getElementsByTagName("link");
  15.   var length = linkNodes.length;
  16.   for (var i = 0; i < length; i++) {
  17.     var link = linkNodes[i];
  18.     if (!link.href)
  19.       continue;
  20.  
  21.     var rel = link.rel && link.rel.toLowerCase();
  22.     var rels = {};
  23.     if (rel) {
  24.       for each (let relVal in rel.split(/\s+/))
  25.         rels[relVal] = true;
  26.     }
  27.  
  28.     if (rels.feed || (link.type && rels.alternate && !rels.stylesheet)) {
  29.       var feed = { title: link.title, href: link.href, type: link.type || "" };
  30.       if (isValidFeed(feed, gDocument.nodePrincipal, rels.feed)) {
  31.         var type = feedTypes[feed.type] || feedTypes["application/rss+xml"];
  32.         addRow(feed.title, type, feed.href);
  33.       }
  34.     }
  35.   }
  36.  
  37.   var feedListbox = document.getElementById("feedListbox");
  38.   document.getElementById("feedTab").hidden = feedListbox.getRowCount() == 0;
  39. }
  40.  
  41. function onSubscribeFeed()
  42. {
  43.   var listbox = document.getElementById("feedListbox");
  44.   openUILink(listbox.selectedItem.getAttribute("feedURL"),
  45.              null, false, true, false, null);
  46. }
  47.  
  48. function addRow(name, type, url)
  49. {
  50.   var item = document.createElement("richlistitem");
  51.   item.setAttribute("feed", "true");
  52.   item.setAttribute("name", name);
  53.   item.setAttribute("type", type);
  54.   item.setAttribute("feedURL", url);
  55.   document.getElementById("feedListbox").appendChild(item);
  56. }
  57.