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

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

?? am-smime.js

?? 現在很火的郵件客戶端軟件thunderbird的源碼
?? JS
字號:
# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-# ***** 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.org Code.## The Initial Developer of the Original Code is# Netscape Communications Corporation.# Portions created by the Initial Developer are Copyright (C) 1998-2001# the Initial Developer. All Rights Reserved.## Contributor(s):#   ddrinan@netscape.com#   Scott MacGregor <mscott@netscape.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 *****const nsIX509CertDB = Components.interfaces.nsIX509CertDB;const nsX509CertDBContractID = "@mozilla.org/security/x509certdb;1";const nsIX509Cert = Components.interfaces.nsIX509Cert;const email_recipient_cert_usage = 5;const email_signing_cert_usage = 4;var gIdentity;var gPref = null;var gEncryptionCertName = null;var gHiddenEncryptionPolicy = null;var gEncryptionChoices = null;var gSignCertName  = null;var gSignMessages  = null;var gEncryptAlways = null;var gNeverEncrypt = null;var gBundle = null;var gBrandBundle;var gSmimePrefbranch;var gEncryptionChoicesLocked;var gSigningChoicesLocked;const kEncryptionCertPref = "identity.encryption_cert_name";const kSigningCertPref = "identity.signing_cert_name";function onInit() {  // initialize all of our elements based on the current identity values....  gEncryptionCertName = document.getElementById(kEncryptionCertPref);  gHiddenEncryptionPolicy = document.getElementById("identity.encryptionpolicy");  gEncryptionChoices = document.getElementById("encryptionChoices");  gSignCertName       = document.getElementById(kSigningCertPref);  gSignMessages       = document.getElementById("identity.sign_mail");  gEncryptAlways      = document.getElementById("encrypt_mail_always");  gNeverEncrypt       = document.getElementById("encrypt_mail_never");  gBundle             = document.getElementById("bundle_smime");  gBrandBundle        = document.getElementById("bundle_brand");  gEncryptionChoicesLocked = false;  gSigningChoicesLocked = false;  gEncryptionCertName.value = gIdentity.getUnicharAttribute("encryption_cert_name");  gEncryptionChoices.value = gIdentity.getIntAttribute("encryptionpolicy");      if (!gEncryptionCertName.value)  {    gEncryptAlways.setAttribute("disabled", true);    gNeverEncrypt.setAttribute("disabled", true);  }  else {    enableEncryptionControls(true);  }  gSignCertName.value = gIdentity.getUnicharAttribute("signing_cert_name");  gSignMessages.checked = gIdentity.getBoolAttribute("sign_mail");  if (!gSignCertName.value)  {    gSignMessages.setAttribute("disabled", true);  }  else {    enableSigningControls(true);  }  // Always start with enabling signing and encryption cert select buttons.  // This will keep the visibility of buttons in a sane state as user  // jumps from security panel of one account to another.  enableCertSelectButtons();  // Disable all locked elements on the panel  onLockPreference();}function onPreInit(account, accountValues){  gIdentity = account.defaultIdentity;}function onSave(){  // find out which radio for the encryption radio group is selected and set that on our hidden encryptionChoice pref....  var newValue = gEncryptionChoices.value;  gHiddenEncryptionPolicy.setAttribute('value', newValue);  gIdentity.setIntAttribute("encryptionpolicy", newValue);  gIdentity.setUnicharAttribute("encryption_cert_name", gEncryptionCertName.value);  gIdentity.setBoolAttribute("sign_mail", gSignMessages.checked);  gIdentity.setUnicharAttribute("signing_cert_name", gSignCertName.value);}function onLockPreference(){  var initPrefString = "mail.identity";   var finalPrefString;   var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService);  var allPrefElements = [    { prefstring:"signingCertSelectButton", id:"signingCertSelectButton"},    { prefstring:"encryptionCertSelectButton", id:"encryptionCertSelectButton"},    { prefstring:"sign_mail", id:"identity.sign_mail"},    { prefstring:"encryptionpolicy", id:"encryptionChoices"}  ];  finalPrefString = initPrefString + "." + gIdentity.key + ".";  gSmimePrefbranch = prefService.getBranch(finalPrefString);  disableIfLocked( allPrefElements );}// Does the work of disabling an element given the array which contains xul id/prefstring pairs.// Also saves the id/locked state in an array so that other areas of the code can avoid// stomping on the disabled state indiscriminately.function disableIfLocked( prefstrArray ){  var i;  for (i=0; i<prefstrArray.length; i++) {    var id = prefstrArray[i].id;    var element = document.getElementById(id);    if (gSmimePrefbranch.prefIsLocked(prefstrArray[i].prefstring)) {      // If encryption choices radio group is locked, make sure the individual       // choices in the group are locked. Set a global (gEncryptionChoicesLocked)       // indicating the status so that locking can be maintained further.      if (id == "encryptionChoices") {        document.getElementById("encrypt_mail_never").setAttribute("disabled", "true");        document.getElementById("encrypt_mail_always").setAttribute("disabled", "true");        gEncryptionChoicesLocked = true;      }      // If option to sign mail is locked (with true/false set in config file), disable      // the corresponding checkbox and set a global (gSigningChoicesLocked) in order to      // honor the locking as user changes other elements on the panel.       if (id == "identity.sign_mail") {        document.getElementById("identity.sign_mail").setAttribute("disabled", "true");        gSigningChoicesLocked = true;      }      else {        element.setAttribute("disabled", "true");        if (id == "signingCertSelectButton") {          document.getElementById("signingCertClearButton").setAttribute("disabled", "true");        }        else if (id == "encryptionCertSelectButton") {          document.getElementById("encryptionCertClearButton").setAttribute("disabled", "true");        }      }    }  }}function getPromptService(){  var ifps = Components.interfaces.nsIPromptService;  var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService();  if (promptService) {    promptService = promptService.QueryInterface(ifps);  }  return promptService;}function alertUser(message){  var ps = getPromptService();  if (ps) {    ps.alert(      window,      gBrandBundle.getString("brandShortName"),       message);  }}function askUser(message){  var ps = getPromptService();  if (!ps)    return false;    return ps.confirm(    window,    gBrandBundle.getString("brandShortName"),     message);}function checkOtherCert(nickname, pref, usage, msgNeedCertWantSame, msgWantSame, msgNeedCertWantToSelect, enabler){  var otherCertInfo = document.getElementById(pref);  if (!otherCertInfo)    return;  if (otherCertInfo.value == nickname)    // all is fine, same cert is now selected for both purposes    return;  var certdb = Components.classes[nsX509CertDBContractID].getService(nsIX509CertDB);  if (!certdb)    return;    if (email_recipient_cert_usage == usage) {    matchingOtherCert = certdb.findEmailEncryptionCert(nickname);  }  else if (email_signing_cert_usage == usage) {    matchingOtherCert = certdb.findEmailSigningCert(nickname);  }  else    return;  var userWantsSameCert = false;  if (!otherCertInfo.value.length) {    if (matchingOtherCert) {      userWantsSameCert = askUser(gBundle.getString(msgNeedCertWantSame));    }    else {      if (askUser(gBundle.getString(msgNeedCertWantToSelect))) {        smimeSelectCert(pref);      }    }  }  else {    if (matchingOtherCert) {      userWantsSameCert = askUser(gBundle.getString(msgWantSame));    }  }  if (userWantsSameCert) {    otherCertInfo.value = nickname;    enabler(true);  }}function smimeSelectCert(smime_cert){  var certInfo = document.getElementById(smime_cert);  if (!certInfo)    return;  var picker = Components.classes["@mozilla.org/user_cert_picker;1"]               .createInstance(Components.interfaces.nsIUserCertPicker);  var canceled = new Object;  var x509cert = 0;  var certUsage;  var selectEncryptionCert;  if (smime_cert == kEncryptionCertPref) {    selectEncryptionCert = true;    certUsage = email_recipient_cert_usage;  } else if (smime_cert == kSigningCertPref) {    selectEncryptionCert = false;    certUsage = email_signing_cert_usage;  }  try {    x509cert = picker.pickByUsage(window,      certInfo.value,      certUsage, // this is from enum SECCertUsage      false, false, canceled);  } catch(e) {    canceled.value = false;    x509cert = null;  }  if (!canceled.value) {    if (!x509cert) {      var errorString;      if (selectEncryptionCert) {        errorString = "NoEncryptionCert";      }      else {        errorString = "NoSigningCert";      }      alertUser(gBundle.getString(errorString));    }    else {      certInfo.removeAttribute("disabled");      certInfo.value = x509cert.nickname;      if (selectEncryptionCert) {        enableEncryptionControls(true);        checkOtherCert(certInfo.value,          kSigningCertPref, email_signing_cert_usage,           "signing_needCertWantSame",           "signing_wantSame",           "signing_needCertWantToSelect",          enableSigningControls);      } else {        enableSigningControls(true);        checkOtherCert(certInfo.value,          kEncryptionCertPref, email_recipient_cert_usage,           "encryption_needCertWantSame",           "encryption_wantSame",           "encryption_needCertWantToSelect",          enableEncryptionControls);      }    }  }  enableCertSelectButtons();}function enableEncryptionControls(do_enable){  if (gEncryptionChoicesLocked)    return;  if (do_enable) {    gEncryptAlways.removeAttribute("disabled");    gNeverEncrypt.removeAttribute("disabled");  }  else {    gEncryptAlways.setAttribute("disabled", "true");    gNeverEncrypt.setAttribute("disabled", "true");    gEncryptionChoices.value = 0;  }}function enableSigningControls(do_enable){  if (gSigningChoicesLocked)    return;  if (do_enable) {    gSignMessages.removeAttribute("disabled");  }  else {    gSignMessages.setAttribute("disabled", "true");    gSignMessages.checked = false;  }}function enableCertSelectButtons(){  document.getElementById("signingCertSelectButton").removeAttribute("disabled");  if (document.getElementById('identity.signing_cert_name').value.length)    document.getElementById("signingCertClearButton").removeAttribute("disabled");  else    document.getElementById("signingCertClearButton").setAttribute("disabled", "true");  document.getElementById("encryptionCertSelectButton").removeAttribute("disabled");  if (document.getElementById('identity.encryption_cert_name').value.length)    document.getElementById("encryptionCertClearButton").removeAttribute("disabled");  else    document.getElementById("encryptionCertClearButton").setAttribute("disabled", "true");}function smimeClearCert(smime_cert){  var certInfo = document.getElementById(smime_cert);  if (!certInfo)    return;  certInfo.setAttribute("disabled", "true");  certInfo.value = "";  if (smime_cert == kEncryptionCertPref) {    enableEncryptionControls(false);  } else if (smime_cert == kSigningCertPref) {    enableSigningControls(false);  }    enableCertSelectButtons();}function openCertManager(){  //check for an existing certManager window and focus it; it's not application modal  const kWindowMediatorContractID = "@mozilla.org/appshell/window-mediator;1";  const kWindowMediatorIID = Components.interfaces.nsIWindowMediator;  const kWindowMediator = Components.classes[kWindowMediatorContractID].getService(kWindowMediatorIID);  var lastCertManager = kWindowMediator.getMostRecentWindow("mozilla:certmanager");  if (lastCertManager)    lastCertManager.focus();  else    window.open('chrome://pippki/content/certManager.xul',  "",                'chrome,centerscreen,resizable=yes,dialog=no');}function openDeviceManager(){  //check for an existing deviceManger window and focus it; it's not application modal  const kWindowMediatorContractID = "@mozilla.org/appshell/window-mediator;1";  const kWindowMediatorIID = Components.interfaces.nsIWindowMediator;  const kWindowMediator = Components.classes[kWindowMediatorContractID].getService(kWindowMediatorIID);  var lastCertManager = kWindowMediator.getMostRecentWindow("mozilla:devicemanager");  if (lastCertManager)    lastCertManager.focus();  else {    window.open('chrome://pippki/content/device_manager.xul',  "devmgr",                'chrome,centerscreen,resizable=yes,dialog=no');  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久久久漫画| 欧美日本免费一区二区三区| 国产v日产∨综合v精品视频| 国产乱码一区二区三区| 国产精品一区专区| www..com久久爱| 欧美日韩情趣电影| 337p粉嫩大胆噜噜噜噜噜91av| 久久久久9999亚洲精品| 亚洲伦在线观看| 日日夜夜免费精品视频| 精品在线免费视频| 97se亚洲国产综合在线| 日韩一区二区在线观看视频| 亚洲欧美经典视频| 国产一区二区三区久久悠悠色av| 欧美日韩一区二区三区视频| 亚洲国产成人私人影院tom| 亚洲国产精品久久久久秋霞影院 | 国产精品久久久久久久午夜片 | 五月天激情综合| 99久久夜色精品国产网站| 在线成人高清不卡| 国产三级一区二区三区| 亚洲电影中文字幕在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | jvid福利写真一区二区三区| 日韩欧美一二区| 亚洲成人午夜电影| 99精品视频一区二区| 精品国产91乱码一区二区三区| 亚洲专区一二三| 91成人在线精品| 亚洲欧美激情小说另类| 不卡高清视频专区| 国产精品美女一区二区三区 | 99re这里只有精品6| 亚洲人成精品久久久久久| av在线一区二区| 亚洲欧美日韩综合aⅴ视频| 国产91露脸合集magnet| 一区二区三区免费在线观看| 色狠狠桃花综合| 亚洲成人动漫一区| 91精品国产综合久久精品性色| 婷婷一区二区三区| 日韩精品最新网址| 韩国精品久久久| 国产精品色一区二区三区| 99九九99九九九视频精品| 亚洲精品成人悠悠色影视| 欧美日韩中文国产| 久久国产精品99精品国产| 久久久久青草大香线综合精品| 成人黄色一级视频| 亚洲成av人**亚洲成av**| 欧美一区二区黄| 国产suv精品一区二区883| 一区二区理论电影在线观看| 91精品国产黑色紧身裤美女| 亚洲国产精品久久久久秋霞影院| 亚洲一线二线三线久久久| 欧美日韩一卡二卡三卡 | 97久久超碰国产精品| 午夜不卡av在线| 国产亚洲美州欧州综合国| 91九色02白丝porn| 国内精品久久久久影院色| 亚洲精品免费在线观看| 久久日一线二线三线suv| 欧美性大战久久久| 成人国产精品视频| 看电影不卡的网站| 亚洲一区在线看| 中文字幕综合网| 国产午夜亚洲精品午夜鲁丝片| 欧美亚洲自拍偷拍| 成人aa视频在线观看| 久久精品国产久精国产爱| 秋霞国产午夜精品免费视频| 午夜精彩视频在线观看不卡| 国产午夜精品福利| 日韩视频在线一区二区| 欧美亚洲国产bt| 91福利精品视频| 成人av免费在线观看| 国产精品91xxx| 国产伦精品一区二区三区免费 | 久久99国产精品久久99果冻传媒| 亚洲最大的成人av| 亚洲视频在线观看三级| 狠狠色丁香婷综合久久| 九一九一国产精品| 韩国v欧美v日本v亚洲v| 久久国产福利国产秒拍| 国产一区二区三区精品欧美日韩一区二区三区 | 日韩欧美一区二区久久婷婷| 欧美午夜不卡在线观看免费| 91黄视频在线| 欧美三级电影网站| 日韩视频免费观看高清完整版 | 国产精品中文字幕一区二区三区| 国产乱理伦片在线观看夜一区| 国产精品亚洲人在线观看| 成人黄色大片在线观看| 久久精品一区二区三区不卡 | 亚洲日本欧美天堂| 亚洲精品免费在线播放| 色猫猫国产区一区二在线视频| 色视频欧美一区二区三区| 欧美日韩一区二区三区视频| 欧美一级欧美一级在线播放| 久久午夜色播影院免费高清| 1024国产精品| 日韩国产成人精品| 国产激情偷乱视频一区二区三区 | 91精品国产一区二区三区蜜臀 | 午夜精品久久久久久| 精品亚洲aⅴ乱码一区二区三区| 成人性生交大片免费看中文| 欧美日韩精品一区二区三区四区| 久久午夜国产精品| 亚洲香肠在线观看| 成人网男人的天堂| 欧美精品第1页| 亚洲精品v日韩精品| 国产九九视频一区二区三区| 在线观看日韩高清av| 中文一区在线播放| 麻豆久久久久久| 欧美日韩一二三| 自拍av一区二区三区| 成人在线视频首页| 久久综合九色综合97婷婷| 亚洲一本大道在线| av亚洲产国偷v产偷v自拍| 精品动漫一区二区三区在线观看 | 成人精品在线视频观看| 欧美大肚乱孕交hd孕妇| 亚洲国产人成综合网站| 91在线观看高清| 日韩毛片在线免费观看| 成人性视频免费网站| 久久网这里都是精品| 精品一区二区三区欧美| 欧美大尺度电影在线| 日韩精品一级二级| 91精品国产综合久久久久久久 | 欧美精品一区二区久久婷婷| 免费成人深夜小野草| 日韩亚洲欧美成人一区| 日韩va亚洲va欧美va久久| 欧美一区二区三区四区视频| 蜜臀av一区二区在线观看| 欧美一区二区网站| 蓝色福利精品导航| 久久久国产一区二区三区四区小说 | 日本一区二区高清| 99久久777色| 五月天一区二区| 欧美zozo另类异族| 北条麻妃一区二区三区| 亚洲午夜久久久| 91精品国产综合久久精品app| 国产麻豆91精品| 亚洲精品欧美二区三区中文字幕| 欧美日韩精品一区二区三区| 久久er精品视频| 中文字幕一区二区三区蜜月| 欧美在线999| 久久电影网电视剧免费观看| 国产精品蜜臀在线观看| 欧美挠脚心视频网站| 国产不卡视频一区二区三区| 亚洲一区二区三区影院| 欧美大片一区二区三区| 99久久国产综合色|国产精品| 丝袜美腿成人在线| |精品福利一区二区三区| 91精品国产综合久久福利软件 | 欧美本精品男人aⅴ天堂| 99国产精品久久| 国产一区 二区 三区一级| 亚洲美女区一区| 日本韩国一区二区三区| 久久99精品国产| 午夜欧美大尺度福利影院在线看| 国产精品二三区| www亚洲一区| 欧美一区二区人人喊爽| 欧美性一级生活| 色先锋久久av资源部| 丁香激情综合五月| 精品一区二区三区在线观看| 国产高清无密码一区二区三区| 天天亚洲美女在线视频| 亚洲伦在线观看| 亚洲男同性恋视频| 亚洲视频在线一区二区| 国产精品成人午夜|