亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? newsblog.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁 / 共 2 頁
字號:
  },  helpInfo : ""};var nsNewsBlogFeedDownloaderModule ={  getClassObject: function(aCompMgr, aCID, aIID)  {    if (!aIID.equals(Components.interfaces.nsIFactory))      throw Components.results.NS_ERROR_NOT_IMPLEMENTED;    for (var key in this.mObjects)       if (aCID.equals(this.mObjects[key].CID))        return this.mObjects[key].factory;    throw Components.results.NS_ERROR_NO_INTERFACE;  },  mObjects:   {    feedDownloader:     {       CID: Components.ID("{5c124537-adca-4456-b2b5-641ab687d1f6}"),      contractID: "@mozilla.org/newsblog-feed-downloader;1",      className: "News+Blog Feed Downloader",      factory:       {        createInstance: function (aOuter, aIID)         {          if (aOuter != null)            throw Components.results.NS_ERROR_NO_AGGREGATION;          if (!aIID.equals(Components.interfaces.nsINewsBlogFeedDownloader) &&              !aIID.equals(Components.interfaces.nsISupports))            throw Components.results.NS_ERROR_INVALID_ARG;          // return the singleton          return nsNewsBlogFeedDownloader.QueryInterface(aIID);        }             } // factory    }, // feed downloader        nsNewsBlogAcctMgrExtension:     {       CID: Components.ID("{E109C05F-D304-4ca5-8C44-6DE1BFAF1F74}"),      contractID: "@mozilla.org/accountmanager/extension;1?name=newsblog",      className: "News+Blog Account Manager Extension",      factory:       {        createInstance: function (aOuter, aIID)         {          if (aOuter != null)            throw Components.results.NS_ERROR_NO_AGGREGATION;          if (!aIID.equals(Components.interfaces.nsIMsgAccountManagerExtension) &&              !aIID.equals(Components.interfaces.nsISupports))            throw Components.results.NS_ERROR_INVALID_ARG;          // return the singleton          return nsNewsBlogAcctMgrExtension.QueryInterface(aIID);        }             } // factory    }, // account manager extension    nsFeedCommandLineHandler:     {      CID: Components.ID("{0E377BF7-E4FE-4c94-804C-0C33D49F883E}"),      contractID: "@mozilla.org/newsblog-feed-downloader/clh;1",      className: "Feed CommandLine Handler",      factory:       {        createInstance: function (aOuter, aIID)         {          if (aOuter != null)            throw Components.results.NS_ERROR_NO_AGGREGATION;          if (!aIID.equals(Components.interfaces.nsICommandLineHandler) &&              !aIID.equals(Components.interfaces.nsISupports))            throw Components.results.NS_ERROR_INVALID_ARG;          // return the singleton          return nsFeedCommandLineHandler.QueryInterface(aIID);        }             } // factory    }  },  registerSelf: function(aCompMgr, aFileSpec, aLocation, aType)  {            aCompMgr = aCompMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);    for (var key in this.mObjects)     {      var obj = this.mObjects[key];      aCompMgr.registerFactoryLocation(obj.CID, obj.className, obj.contractID, aFileSpec, aLocation, aType);    }    // we also need to do special account extension registration    var catman = Components.classes["@mozilla.org/categorymanager;1"].getService(Components.interfaces.nsICategoryManager);    catman.addCategoryEntry("mailnews-accountmanager-extensions",                            "newsblog account manager extension",                            "@mozilla.org/accountmanager/extension;1?name=newsblog", true, true);    catman.addCategoryEntry("command-line-handler",                            "l-feed",                            "@mozilla.org/newsblog-feed-downloader/clh;1", true, true);  },  unregisterSelf: function(aCompMgr, aFileSpec, aLocation)  {    aCompMgr = aCompMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);    for (var key in this.mObjects)     {      var obj = this.mObjects[key];      aCompMgr.unregisterFactoryLocation(obj.CID, aFileSpec);    }    // unregister the account manager extension    catman = Components.classes["@mozilla.org/categorymanager;1"].getService(Components.interfaces.nsICategoryManager);    catman.deleteCategoryEntry("mailnews-accountmanager-extensions",                               "@mozilla.org/accountmanager/extension;1?name=newsblog", true);    catMan.addCategoryEntry("command-line-handler",                            "@mozilla.org/newsblog-feed-downloader/clh;1", true);  },  canUnload: function(aCompMgr)  {    return true;  }};function NSGetModule(aCompMgr, aFileSpec){  return nsNewsBlogFeedDownloaderModule;}function loadScripts(){  var scriptLoader =  Components.classes["@mozilla.org/moz/jssubscript-loader;1"]                     .getService(Components.interfaces.mozIJSSubScriptLoader);  if (scriptLoader)  {     scriptLoader.loadSubScript("chrome://messenger-newsblog/content/Feed.js");    scriptLoader.loadSubScript("chrome://messenger-newsblog/content/FeedItem.js");    scriptLoader.loadSubScript("chrome://messenger-newsblog/content/feed-parser.js");    scriptLoader.loadSubScript("chrome://messenger-newsblog/content/file-utils.js");    scriptLoader.loadSubScript("chrome://messenger-newsblog/content/utils.js");  }  gExternalScriptsLoaded = true;}// Progress glue code. Acts as a go between the RSS back end and the mail window front end// determined by the aMsgWindow parameter passed into nsINewsBlogFeedDownloader.// gNumPendingFeedDownloads: keeps track of the total number of feeds we have been asked to download//                           this number may not reflect the # of entries in our mFeeds array because not all//                           feeds may have reported in for the first time...var gNumPendingFeedDownloads = 0;var progressNotifier = {  mSubscribeMode: false,  mMsgWindow: null,   mStatusFeedback: null,  mFeeds: new Array,  init: function(aMsgWindow, aSubscribeMode)  {    if (!gNumPendingFeedDownloads) // if we aren't already in the middle of downloading feed items...    {      this.mStatusFeedback = aMsgWindow ? aMsgWindow.statusFeedback : null;      this.mSubscribeMode = aSubscribeMode;      this.mMsgWindow = aMsgWindow;      if (this.mStatusFeedback)      {        this.mStatusFeedback.startMeteors();        this.mStatusFeedback.showStatusString(aSubscribeMode ? GetNewsBlogStringBundle().GetStringFromName('subscribe-validating')                                             : GetNewsBlogStringBundle().GetStringFromName('newsblog-getNewMailCheck'));      }    }  },  downloaded: function(feed, aErrorCode)  {    if (this.mSubscribeMode && aErrorCode == kNewsBlogSuccess)    {      // if we get here...we should always have a folder by now...either      // in feed.folder or FeedItems created the folder for us....      updateFolderFeedUrl(feed.folder, feed.url, false);              addFeed(feed.url, feed.name, feed.folder); // add feed just adds the feed to the subscription UI and flushes the datasource            // Nice touch: select the folder that now contains the newly subscribed feed...this is particularly nice       // if we just finished subscribing to a feed URL that the operating system gave us.      this.mMsgWindow.SelectFolder(feed.folder.URI);    }     else if (feed.folder)      feed.folder.setMsgDatabase(null);    if (this.mStatusFeedback)    {      var newsBlogBundle = GetNewsBlogStringBundle();      if (aErrorCode == kNewsBlogNoNewItems)        this.mStatusFeedback.showStatusString(newsBlogBundle.GetStringFromName("newsblog-noNewArticlesForFeed"));      else if (aErrorCode == kNewsBlogInvalidFeed)        this.mStatusFeedback.showStatusString(newsBlogBundle.formatStringFromName("newsblog-invalidFeed",                                              [feed.url], 1));      else if (aErrorCode == kNewsBlogRequestFailure)        this.mStatusFeedback.showStatusString(newsBlogBundle.formatStringFromName("newsblog-networkError",                                              [feed.url], 1));                                                 this.mStatusFeedback.stopMeteors();    }    gNumPendingFeedDownloads--;    if (!gNumPendingFeedDownloads)    {      this.mFeeds = new Array;      this.mSubscribeMode = false;      // should we do this on a timer so the text sticks around for a little while?       // It doesnt look like we do it on a timer for newsgroups so we'll follow that model.      if (aErrorCode == kNewsBlogSuccess && this.mStatusFeedback) // don't clear the status text if we just dumped an error to the status bar!        this.mStatusFeedback.showStatusString("");    }  },  // this gets called after the RSS parser finishes storing a feed item to disk  // aCurrentFeedItems is an integer corresponding to how many feed items have been downloaded so far  // aMaxFeedItems is an integer corresponding to the total number of feed items to download  onFeedItemStored: function (feed, aCurrentFeedItems, aMaxFeedItems)  {     // we currently don't do anything here. Eventually we may add    // status text about the number of new feed articles received.    if (this.mSubscribeMode && this.mStatusFeedback) // if we are subscribing to a feed, show feed download progress    {      this.mStatusFeedback.showStatusString(GetNewsBlogStringBundle().formatStringFromName("subscribe-fetchingFeedItems", [aCurrentFeedItems, aMaxFeedItems], 2));      this.onProgress(feed, aCurrentFeedItems, aMaxFeedItems);    }  },  onProgress: function(feed, aProgress, aProgressMax)  {    if (feed.url in this.mFeeds) // have we already seen this feed?      this.mFeeds[feed.url].currentProgress = aProgress;    else      this.mFeeds[feed.url] = {currentProgress: aProgress, maxProgress: aProgressMax};        this.updateProgressBar();       },  updateProgressBar: function()  {    var currentProgress = 0;    var maxProgress = 0;    for (index in this.mFeeds)    {      currentProgress += this.mFeeds[index].currentProgress;      maxProgress += this.mFeeds[index].maxProgress;    }    // if we start seeing weird "jumping" behavior where the progress bar goes below a threshold then above it again,    // then we can factor a fudge factor here based on the number of feeds that have not reported yet and the avg    // progress we've already received for existing feeds. Fortunately the progressmeter is on a timer    // and only updates every so often. For the most part all of our request have initial progress    // before the UI actually picks up a progress value.     if (this.mStatusFeedback)    {      var progress = (currentProgress * 100) / maxProgress;      this.mStatusFeedback.showProgress(progress);    }  }}function GetNewsBlogStringBundle(name){  var strBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"].getService();   strBundleService = strBundleService.QueryInterface(Components.interfaces.nsIStringBundleService);  var strBundle = strBundleService.createBundle("chrome://messenger-newsblog/locale/newsblog.properties");   return strBundle;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品伦一区二区三级视频| 国产麻豆精品在线观看| 韩国午夜理伦三级不卡影院| 99re成人在线| 国产无人区一区二区三区| 日韩激情视频在线观看| 99久久久国产精品免费蜜臀| 久久久久久毛片| 久久99热99| 欧美日韩大陆一区二区| 亚洲综合一区在线| 不卡一区在线观看| 欧美国产激情二区三区| 精品一区二区在线免费观看| 欧美一区二区视频观看视频| 亚洲成人一区在线| 91精品91久久久中77777| 中文字幕五月欧美| a亚洲天堂av| 欧美经典一区二区| 国产成人精品免费| 国产欧美一区二区三区网站| 激情五月播播久久久精品| 欧美一区二区三区白人| 免费观看在线综合色| 7777精品伊人久久久大香线蕉完整版| 综合激情网...| 99视频精品全部免费在线| 中文字幕色av一区二区三区| av不卡一区二区三区| 国产精品高清亚洲| 色综合天天视频在线观看| 亚洲同性同志一二三专区| 91免费看视频| 一区二区不卡在线视频 午夜欧美不卡在| 99国产精品久久| 亚洲最大的成人av| 欧美日韩另类国产亚洲欧美一级| 午夜国产精品影院在线观看| 在线不卡的av| 国产中文一区二区三区| 国产欧美一区二区三区网站| 成人h精品动漫一区二区三区| 中文字幕中文字幕一区| 91久久奴性调教| 婷婷久久综合九色综合绿巨人| 91精品中文字幕一区二区三区| 男人的天堂久久精品| 亚洲精品一区二区三区四区高清| 国产成人综合网站| 亚洲激情男女视频| 91麻豆精品国产91久久久更新时间| 日韩精品电影一区亚洲| 久久精品水蜜桃av综合天堂| 成人午夜私人影院| 亚洲高清三级视频| 久久综合中文字幕| 色狠狠色狠狠综合| 久久99国产乱子伦精品免费| 国产精品久久三| 91精品婷婷国产综合久久性色| 国产乱子伦视频一区二区三区| 亚洲欧洲国产专区| 日韩欧美精品三级| 国产91丝袜在线播放| 午夜精品久久久久久久久久| 国产亚洲成年网址在线观看| 欧美日韩精品欧美日韩精品| 国产成人午夜视频| 日韩**一区毛片| 中文字幕 久热精品 视频在线 | 成人在线综合网| 亚欧色一区w666天堂| 国产亚洲欧美色| 欧美精品视频www在线观看 | 美女被吸乳得到大胸91| 亚洲天天做日日做天天谢日日欢 | 色先锋久久av资源部| 激情成人综合网| 午夜视频在线观看一区二区三区 | 亚洲综合图片区| 日本一区二区三区高清不卡| 91精品国产综合久久福利软件| 国产+成+人+亚洲欧洲自线| 日本成人在线电影网| 亚洲精品一二三| 国产精品久久二区二区| 精品免费国产一区二区三区四区| 久久美女高清视频| 欧美在线观看一二区| 成人动漫一区二区| 国产一区二区三区免费| 日韩国产欧美在线观看| 亚洲精品自拍动漫在线| 国产精品免费视频观看| 久久精品在线观看| 久久伊人中文字幕| 精品国产一二三| 精品久久久久久久一区二区蜜臀| 9191国产精品| 欧美福利视频导航| 欧美日本一区二区三区| 在线观看成人小视频| 91激情在线视频| 色综合久久综合网97色综合 | 一区二区在线观看不卡| 国产精品私人自拍| 国产欧美精品区一区二区三区| 欧美大片在线观看一区二区| 欧美一区二区三区免费在线看| 欧美日韩国产一区| 欧美巨大另类极品videosbest| 欧美日韩亚洲国产综合| 欧美喷水一区二区| 欧美一区二区国产| 精品日韩欧美一区二区| 久久欧美一区二区| 国产精品久久午夜夜伦鲁鲁| 亚洲人成在线观看一区二区| 亚洲欧美一区二区在线观看| 亚洲免费观看高清完整版在线观看熊 | www.色综合.com| 一本色道a无线码一区v| 欧美丝袜自拍制服另类| 欧美日韩不卡视频| 精品国产乱码久久久久久1区2区 | 久久综合九色综合97婷婷女人 | 日韩一区二区三区电影在线观看 | 亚洲永久免费视频| 五月天激情综合| 精品一区二区三区免费观看| 国产精品亚洲综合一区在线观看| 国产激情一区二区三区四区| 白白色亚洲国产精品| 在线观看视频一区二区欧美日韩| 欧美乱妇20p| 精品国产一区a| 日本一区二区动态图| 亚洲特级片在线| 麻豆精品视频在线| 不卡av在线网| 91麻豆精品国产91久久久久久久久| 日韩免费视频一区二区| 中文字幕在线不卡| 五月综合激情网| 懂色av噜噜一区二区三区av| 欧美中文字幕一区| 国产欧美精品区一区二区三区| 亚洲国产中文字幕在线视频综合| 久久精品国产亚洲一区二区三区| 懂色av一区二区夜夜嗨| 51精品国自产在线| 国产精品第一页第二页第三页| 亚洲午夜电影在线观看| 国产精品 欧美精品| 6080yy午夜一二三区久久| 国产精品美女视频| 久久91精品久久久久久秒播| 91麻豆123| 国产婷婷色一区二区三区| 亚洲一级在线观看| 懂色av一区二区三区蜜臀| 69堂精品视频| 亚洲一区中文日韩| a级精品国产片在线观看| 欧美一卡2卡3卡4卡| 一区二区欧美国产| 成人av集中营| 国产午夜亚洲精品理论片色戒| 亚洲国产aⅴ成人精品无吗| 成人精品电影在线观看| 精品国产一区二区精华| 亚洲h在线观看| 色噜噜狠狠成人中文综合 | 不卡欧美aaaaa| 久久天堂av综合合色蜜桃网| 亚洲大片在线观看| 色就色 综合激情| 中文字幕在线播放不卡一区| 国产精品99久久不卡二区| 日韩午夜在线影院| 日韩精品乱码av一区二区| 色哟哟精品一区| 亚洲色图视频免费播放| 成人黄页在线观看| 欧美激情在线一区二区| 国产精品2024| 久久久久久久综合日本| 国产一区二区女| 久久久久久久久免费| 久久www免费人成看片高清| 欧美电视剧免费观看| 久久99精品国产.久久久久| 日韩区在线观看| 日本伊人精品一区二区三区观看方式| 在线观看国产一区二区| 亚洲成av人在线观看| 欧美日韩亚洲国产综合| 日本最新不卡在线| 欧美r级在线观看|