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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? viewpasswords.js

?? 現(xiàn)在很火的郵件客戶端軟件thunderbird的源碼
?? JS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
# -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-## ***** BEGIN LICENSE BLOCK *****# Version: MPL 1.1/GPL 2.0/LGPL 2.1## The contents of this file are subject to the Mozilla Public License Version# 1.1 (the "License"); you may not use this file except in compliance with# the License. You may obtain a copy of the License at# http://www.mozilla.org/MPL/## Software distributed under the License is distributed on an "AS IS" basis,# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License# for the specific language governing rights and limitations under the# License.## The Original Code is Mozilla Communicator client code, released# March 31, 1998.## The Initial Developer of the Original Code is# Netscape Communications Corporation.# Portions created by the Initial Developer are Copyright (C) 1998# the Initial Developer. All Rights Reserved.## Contributor(s):#   Ben "Count XULula" Goodger#   Brian Ryner <bryner@brianryner.com>## Alternatively, the contents of this file may be used under the terms of# either the GNU General Public License Version 2 or later (the "GPL"), or# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),# in which case the provisions of the GPL or the LGPL are applicable instead# of those above. If you wish to allow use of your version of this file only# under the terms of either the GPL or the LGPL, and not to allow others to# use your version of this file under the terms of the MPL, indicate your# decision by deleting the provisions above and replace them with the notice# and other provisions required by the GPL or the LGPL. If you do not delete# the provisions above, a recipient may use your version of this file under# the terms of any one of the MPL, the GPL or the LGPL.## ***** END LICENSE BLOCK *****/*** =================== INITIALISATION CODE =================== ***/var kObserverService;var kSignonBundle;var gSelectUserInUse = false;// interface variablesvar passwordmanager     = null;// password-manager listsvar signons             = [];var rejects             = [];var deletedSignons      = [];var deletedRejects      = [];var showingPasswords = false;function Startup() {  // xpconnect to password manager interfaces  passwordmanager = Components.classes["@mozilla.org/passwordmanager;1"].getService(Components.interfaces.nsIPasswordManager);  kSignonBundle = document.getElementById("signonBundle");  // be prepared to reload the display if anything changes  kObserverService = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);  kObserverService.addObserver(signonReloadDisplay, "signonChanged", false);  // be prepared to disable the buttons when selectuser dialog is in use  kObserverService.addObserver(signonReloadDisplay, "signonSelectUser", false);  signonsTree = document.getElementById("signonsTree");  rejectsTree = document.getElementById("rejectsTree");  // set initial password-manager tab  var tabBox = document.getElementById("tabbox");  tabBox.selectedTab = document.getElementById("signonsTab");  // label the show/hide password button and the close button  document.getElementById("togglePasswords").label = kSignonBundle.getString(showingPasswords ? "hidePasswords" : "showPasswords");  document.documentElement.getButton("accept").label = kSignonBundle.getString("close");  // load password manager items  if (!LoadSignons()) {    return; /* user failed to unlock the database */  }  LoadRejects();}function Shutdown() {  kObserverService.removeObserver(signonReloadDisplay, "signonChanged");  kObserverService.removeObserver(signonReloadDisplay, "signonSelectUser");}var signonReloadDisplay = {  observe: function(subject, topic, state) {    if (topic == "signonChanged") {      if (state == "signons") {        signons.length = 0;        if (lastSignonSortColumn == "host") {          lastSignonSortAscending = !lastSignonSortAscending; // prevents sort from being reversed        }        LoadSignons();      } else if (state == "rejects") {        rejects.length = 0;        if (lastRejectSortColumn == "host") {          lastRejectSortAscending = !lastRejectSortAscending; // prevents sort from being reversed        }        LoadRejects();      }    } else if (topic == "signonSelectUser") {      if (state == "suspend") {        gSelectUserInUse = true;        document.getElementById("removeSignon").disabled = true;        document.getElementById("removeAllSignons").disabled = true;        document.getElementById("togglePasswords").disabled = true;      } else if (state == "resume") {        gSelectUserInUse = false;        var selections = GetTreeSelections(signonsTree);        if (selections.length > 0) {          document.getElementById("removeSignon").disabled = false;        }        if (signons.length > 0) {          document.getElementById("removeAllSignons").disabled = false;          document.getElementById("togglePasswords").disabled = false;        }      } else if (state == "inUse") {        gSelectUserInUse = true;      }    }  }}/*** =================== SAVED SIGNONS CODE =================== ***/var signonsTreeView = {  rowCount : 0,  setTree : function(tree) {},  getImageSrc : function(row,column) {},  getProgressMode : function(row,column) {},  getCellValue : function(row,column) {},  getCellText : function(row,column) {    var rv="";    if (column.id=="siteCol") {      rv = signons[row].host;    } else if (column.id=="userCol") {      rv = signons[row].user;    } else if (column.id=="passwordCol") {      rv = signons[row].password;    }    return rv;  },  isSeparator : function(index) { return false; },  isSorted : function() { return false; },  isContainer : function(index) { return false; },  cycleHeader : function(column) {},  getRowProperties : function(row,prop) {},  getColumnProperties : function(column,prop) {},  getCellProperties : function(row,column,prop) {} };var signonsTree;function Signon(number, host, user, rawuser, password) {  this.number = number;  this.host = host;  this.user = user;  this.rawuser = rawuser;  this.password = password;}function LoadSignons() {  // loads signons into table  var enumerator = passwordmanager.enumerator;  var count = 0;  while (enumerator.hasMoreElements()) {    var nextPassword;    try {      nextPassword = enumerator.getNext();    } catch(e) {      /* user supplied invalid database key */      window.close();      return false;    }    nextPassword = nextPassword.QueryInterface(Components.interfaces.nsIPassword);    var host = nextPassword.host;    var user;    var password;    // try/catch in case decryption fails (invalid signon entry)    try {      user = nextPassword.user;      password = nextPassword.password;    } catch (e) {      // hide this entry      dump("could not decrypt user/password for host " + host + "\n");      continue;    }    var rawuser = user;    // if no username supplied, try to parse it out of the url    if (user == "") {      var ioService = Components.classes["@mozilla.org/network/io-service;1"]                    .getService(Components.interfaces.nsIIOService);      try {        user = ioService.newURI(host, null, null).username;        if (user == "") {          user = kSignonBundle.getString('noUserNameForPassword');        }      } catch(e) {        user = kSignonBundle.getString('noUserNameForPassword');      }    }    signons[count] = new Signon(count++, host, user, rawuser, password);  }  signonsTreeView.rowCount = signons.length;  // sort and display the table  signonsTree.treeBoxObject.view = signonsTreeView;  SignonColumnSort('host');  // disable "remove all signons" button if there are no signons  var element = document.getElementById("removeAllSignons");  var toggle = document.getElementById("togglePasswords");  if (signons.length == 0 || gSelectUserInUse) {    element.setAttribute("disabled","true");    toggle.setAttribute("disabled","true");  } else {    element.removeAttribute("disabled");    toggle.removeAttribute("disabled");  }   return true;}function SignonSelected() {  var selections = GetTreeSelections(signonsTree);  if (selections.length && !gSelectUserInUse) {    document.getElementById("removeSignon").removeAttribute("disabled");  }}function DeleteSignon() {  DeleteSelectedItemFromTree(signonsTree, signonsTreeView,                             signons, deletedSignons,                             "removeSignon", "removeAllSignons");  FinalizeSignonDeletions();}function DeleteAllSignons() {  var prompter = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                           .getService(Components.interfaces.nsIPromptService);

  // Confirm the user wants to remove all passwords
  var dummy = { value: false };
  if (prompter.confirmEx(window,
                         kSignonBundle.getString("removeAllPasswordsTitle"),
                         kSignonBundle.getString("removeAllPasswordsPrompt"),
                         prompter.STD_YES_NO_BUTTONS + prompter.BUTTON_POS_1_DEFAULT,
                         null, null, null, null, dummy) == 1) // 1 == "No" button
    return;      DeleteAllFromTree(signonsTree, signonsTreeView,                    signons, deletedSignons,                    "removeSignon", "removeAllSignons");  FinalizeSignonDeletions();}function TogglePasswordVisible() {  if (!showingPasswords && !ConfirmShowPasswords())    return;  showingPasswords = !showingPasswords;  document.getElementById("togglePasswords").label = kSignonBundle.getString(showingPasswords ? "hidePasswords" : "showPasswords");  document.getElementById("passwordCol").hidden = !showingPasswords;}function AskUserShowPasswords() {  var prompter = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);  var dummy = { value: false };  // Confirm the user wants to display passwords  return prompter.confirmEx(window,          null,          kSignonBundle.getString("noMasterPasswordPrompt"),          prompter.BUTTON_TITLE_YES * prompter.BUTTON_POS_0 + prompter.BUTTON_TITLE_NO * prompter.BUTTON_POS_1,          null, null, null, null, dummy) == 0;    // 0=="Yes" button}function ConfirmShowPasswords() {  // This doesn't harm if passwords are not encrypted  var tokendb = Components.classes["@mozilla.org/security/pk11tokendb;1"]                    .createInstance(Components.interfaces.nsIPK11TokenDB);  var token = tokendb.getInternalKeyToken();  // If there is no master password, still give the user a chance to opt-out of displaying passwords  try  {    if (token.checkPassword(""))      return AskUserShowPasswords();  } catch (ex)   {    // for some reason the call to checkPassword throws an exception for users who have never set a master    // password before.    return AskUserShowPasswords();  }  // So there's a master password. But since checkPassword didn't succeed, we're logged out (per nsIPK11Token.idl).  try {    // Relogin and ask for the master password.    token.login(true);  // 'true' means always prompt for token password. User will be prompted until

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日av在线不卡| 99riav久久精品riav| 日韩精品欧美成人高清一区二区| 中文字幕在线播放不卡一区| 国产精品无遮挡| 国产精品高潮久久久久无| 欧美极品美女视频| 国产偷国产偷精品高清尤物| 久久久亚洲精品石原莉奈 | 日韩一区二区电影在线| 欧美日韩视频第一区| 欧美午夜精品久久久| 在线欧美小视频| 欧美日韩国产在线播放网站| 欧美日韩国产乱码电影| 欧美一区二区三区日韩| 日韩精品中文字幕一区二区三区 | 精品久久人人做人人爰| 日韩欧美国产wwwww| 精品少妇一区二区三区日产乱码| 亚洲精品在线一区二区| 久久精品视频在线免费观看| 国产精品欧美一区二区三区| 亚洲图片欧美激情| 亚洲综合男人的天堂| 天堂在线亚洲视频| 久久成人久久爱| 成人一区在线观看| 91老司机福利 在线| 欧美日韩视频专区在线播放| 日韩视频在线观看一区二区| 国产婷婷精品av在线| 亚洲伦理在线精品| 亚洲国产成人tv| 美女视频网站久久| 成人免费电影视频| 欧洲国产伦久久久久久久| 欧美一区二区三区系列电影| 亚洲精品一区二区三区四区高清 | 亚洲精品一区二区三区精华液 | 狠狠色丁香婷婷综合久久片| 成人污污视频在线观看| 欧美日韩五月天| 久久精品欧美日韩精品| 一区二区三区在线视频免费观看| 日产精品久久久久久久性色| 国产精品一级片| 在线国产亚洲欧美| 久久影视一区二区| 一区二区高清视频在线观看| 琪琪久久久久日韩精品| 成人午夜精品一区二区三区| 欧美精品一级二级| 国产精品嫩草久久久久| 丝袜a∨在线一区二区三区不卡| 国产一区二区在线观看视频| 色婷婷久久久亚洲一区二区三区| 日韩精品中文字幕一区二区三区 | 久久久99久久精品欧美| 亚洲在线一区二区三区| 国产一区二区三区电影在线观看| 色综合天天综合色综合av| 欧美www视频| 一区二区三区在线视频免费观看| 国产在线视频一区二区三区| 91丨九色丨尤物| 2014亚洲片线观看视频免费| 亚洲午夜激情av| 成人免费不卡视频| 精品精品国产高清a毛片牛牛 | 亚洲私人黄色宅男| 激情欧美一区二区| 在线播放中文一区| 一区二区三区丝袜| 国产a精品视频| 日韩天堂在线观看| 一区二区三区四区视频精品免费 | 亚洲国产日韩在线一区模特| 床上的激情91.| 久久嫩草精品久久久精品| 亚洲777理论| 一本久久精品一区二区| 久久精品亚洲国产奇米99| 蜜臀av性久久久久蜜臀aⅴ| 色8久久人人97超碰香蕉987| 国产精品国产三级国产a| 久久99久久99精品免视看婷婷| 欧美日韩免费一区二区三区 | 国产尤物一区二区在线| 日韩亚洲欧美成人一区| 婷婷丁香激情综合| 欧美视频一区二区三区四区| 国产精品久久久久久久浪潮网站| 国产成人自拍网| 亚洲精品在线观| 久久福利视频一区二区| 欧美一区二区三区免费观看视频| 亚洲国产美女搞黄色| 91精品办公室少妇高潮对白| 综合久久综合久久| 99在线精品观看| 亚洲视频在线一区| 91丨porny丨国产入口| 亚洲欧洲日韩av| 99精品偷自拍| 亚洲三级在线播放| 9久草视频在线视频精品| 国产精品天干天干在线综合| 成人激情免费电影网址| 中文字幕av资源一区| 大白屁股一区二区视频| 国产精品久久久久aaaa樱花| 99久久精品国产导航| 亚洲日本va午夜在线电影| 99re这里都是精品| 樱花影视一区二区| 欧美三级在线看| 日韩在线一二三区| 精品久久久久久无| 国产精品主播直播| 中文字幕在线不卡国产视频| 日本精品视频一区二区| 午夜欧美视频在线观看| 欧美一区二区日韩| 国内久久精品视频| 欧美国产日韩精品免费观看| eeuss鲁片一区二区三区在线看| 亚洲情趣在线观看| 国产日韩影视精品| 97精品国产露脸对白| 亚洲国产视频直播| 日韩女优av电影| 成人深夜福利app| 一区二区三区精品久久久| 欧美猛男超大videosgay| 青娱乐精品在线视频| 久久青草欧美一区二区三区| www.在线成人| 亚洲一区二区三区四区在线观看| 欧美日韩性生活| 国产一区二区在线免费观看| 亚洲人成网站精品片在线观看| 在线观看日韩国产| 精品一区二区在线看| 国产精品久99| 欧美在线观看一二区| 久久国内精品自在自线400部| 欧美激情一区二区| 欧美美女激情18p| 国产精品自在在线| 亚洲一区中文在线| 欧美成人性战久久| 91麻豆国产精品久久| 日韩福利电影在线观看| 国产欧美一区二区精品性 | 成人免费在线视频观看| 欧美视频一区二区三区在线观看| 黄色日韩三级电影| 亚洲一区在线播放| 久久久久久久网| 欧美三级三级三级爽爽爽| 国产一区二区毛片| 午夜伊人狠狠久久| 国产精品福利av| 精品欧美一区二区在线观看| 在线观看亚洲专区| 福利电影一区二区| 麻豆一区二区三| 樱桃视频在线观看一区| 国产亚洲欧美一级| 欧美电影一区二区三区| 成人动漫一区二区在线| 蜜桃精品在线观看| 亚洲一区av在线| 国产精品国产三级国产aⅴ中文 | 91亚洲精华国产精华精华液| 捆绑紧缚一区二区三区视频| 一区二区激情小说| 国产精品国产成人国产三级| 精品国产乱码久久久久久影片| 欧美色电影在线| 99久久婷婷国产精品综合| 久久99精品国产| 视频一区国产视频| 悠悠色在线精品| 亚洲天堂福利av| 国产精品美女久久久久久久久| 日韩欧美亚洲国产精品字幕久久久| 色噜噜狠狠成人网p站| 国产成人在线影院| 国产原创一区二区三区| 日韩在线观看一区二区| 夜夜操天天操亚洲| ...xxx性欧美| 国产精品护士白丝一区av| 久久午夜电影网| 欧美不卡激情三级在线观看| 91精品婷婷国产综合久久性色| 欧美在线不卡视频| 一本一本久久a久久精品综合麻豆|