Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2280|回复: 7
打印 上一主题 下一主题

锁屏

[复制链接]

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
跳转到指定楼层
楼主
发表于 2016-4-21 00:21:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//判断是否设置了密码  isNeed2TipsMasterPass()
var login = _token.needsLogin() ? true : false;
    if (login){
        var mainPassword = Cc["@mozilla.org/preferences-service;1"]
                           .getService(Ci.nsIPrefService)
                           .getBranch(null).getCharPref("richinfo.masterPass");
        _token.loginEx(true, mainPassword);
    }



     if( pref.prefHasUserValue("richinfo.masterPass.modify"))
           masterPasswordModify = pref.getBoolPref("richinfo.masterPass.modify");




//相关配置
user_pref("richinfo.masterPass", "");
user_pref("richinfo.masterPass.modify", false);




写信面缓存窗口方案:
mail.compose.max_recycled_windows

class nsMsgCachedWindowInfo
{
public:
  void Initialize(nsIDOMWindow *aWindow, nsIXULWindow *aXULWindow, nsIMsgComposeRecyclingListener *aListener, bool aHtmlCompose)
  {
    window = aWindow;
    xulWindow = aXULWindow;
    listener = aListener;
    htmlCompose = aHtmlCompose;
  }

  void Clear()
  {
    window = nullptr;
    listener = nullptr;
  }

  nsCOMPtr<nsIDOMWindow>                    window;
  nsCOMPtr<nsIXULWindow>                    xulWindow;
  nsCOMPtr<nsIMsgComposeRecyclingListener>  listener;
  bool                                      htmlCompose;
};

var status = this.core.status;
        if(status == 0 )  //未设置主密码
status == 1 使用主密码
status == 2不 使用主密码
pref("extensions.masterPasswordPlus.statusbar", false);

回复

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
沙发
 楼主| 发表于 2016-4-21 00:21:24 | 只看该作者
  1. CPP
  2. #define NS_WINDOWWATCHER_CONTRACTID "@mozilla.org/embedcomp/window-watcher;1"

  3. nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService(NS_WINDOWWATCHER_CONTRACTID));

  4. nsCOMPtr<nsIDOMWindow> newWindow;
  5.   rv = wwatch->OpenWindow(0, chrome && *chrome ? chrome : DEFAULT_CHROME,
  6.                  "_blank", "all,chrome,dialog=no,status,toolbar", msgParamsWrapper,
  7.                  getter_AddRefs(newWindow))

  8. js

  9. if (!this.prefLockMinimizeBlur
  10.                                                 || (this.prefLockMinimizeBlur
  11.                                                                 && !Cc["@mozilla.org/embedcomp/window-watcher;1"].getService(Ci.nsIWindowWatcher).activeWindow))
  12.                                 {
  13.                                         let timer = Components.classes["@mozilla.org/timer;1"].createInstance(Components.interfaces.nsITimer);
  14.                                         timer.init({observe:function()
  15.                                         {
  16.                                                 let enumerator = Cc["@mozilla.org/appshell/window-mediator;1"]
  17.                                                                                                                         .getService(Ci.nsIWindowMediator)
  18.                                                                                                                         .getEnumerator(null);

  19.                                                 while(enumerator.hasMoreElements())
  20.                                                 {
  21.                                                         let win = enumerator.getNext();
  22.                                                         if (win.windowState != win.STATE_MINIMIZED)
  23.                                                         {
  24.                                                                 win.minimize();
  25.                                                                 let timer = Components.classes["@mozilla.org/timer;1"].createInstance(Components.interfaces.nsITimer);
  26.                                                                 timer.init({observe:function()
  27.                                                                 {
  28. //                                                                        win.minimize();
  29.                                                                 }}, 0, timer.TYPE_ONE_SHOT);
  30.                                                         }
  31.                                                 }

  32.                                         }}, 101, timer.TYPE_ONE_SHOT);
  33.                                 }
复制代码
回复 支持 反对

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
板凳
 楼主| 发表于 2016-4-21 00:21:41 | 只看该作者
  1. C++
  2. // disable (enable) the cached window
  3.     nsCOMPtr<nsIBaseWindow> baseWindow;
  4.     baseWindow = do_QueryInterface(treeOwner, &rv);
  5.     NS_ENSURE_SUCCESS(rv,rv);

  6.     baseWindow->SetEnabled(aShow);
  7.     NS_ENSURE_SUCCESS(rv,rv);

  8.     nsCOMPtr<nsIWindowMediator> windowMediator =
  9.                  do_GetService(NS_WINDOWMEDIATOR_CONTRACTID, &rv);
  10.     NS_ENSURE_SUCCESS(rv,rv);

  11.     // if showing, reinstate the window with the mediator
  12.     if (aShow) {
  13.       rv = windowMediator->RegisterWindow(aXULWindow);
  14.       NS_ENSURE_SUCCESS(rv,rv);

  15.       obs->NotifyObservers(aXULWindow, "xul-window-registered", nullptr);
  16.     }

  17.     // hide (show) the cached window
  18.     rv = baseWindow->SetVisibility(aShow);
  19.     NS_ENSURE_SUCCESS(rv,rv);

  20.     // if hiding, remove the window from the mediator,
  21.     // so that it will be removed from the task list
  22.     if (!aShow) {
  23.       rv = windowMediator->UnregisterWindow(aXULWindow);
  24.       NS_ENSURE_SUCCESS(rv,rv);

  25.       obs->NotifyObservers(aXULWindow, "xul-window-destroyed", nullptr);
  26.     }
复制代码
回复 支持 反对

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
地板
 楼主| 发表于 2016-4-21 00:22:06 | 只看该作者
  1. SSL_OptionSetDefault(SSL_ENABLE_SSL2, false);
  2.       SSL_OptionSetDefault(SSL_V2_COMPATIBLE_HELLO, false);
  3.       bool enabled;
  4.       mPrefBranch->GetBoolPref("security.enable_ssl3", &enabled);
  5.       SSL_OptionSetDefault(SSL_ENABLE_SSL3, enabled);
  6.       mPrefBranch->GetBoolPref("security.enable_tls", &enabled);
  7.       SSL_OptionSetDefault(SSL_ENABLE_TLS, enabled);
  8.       mPrefBranch->GetBoolPref("security.enable_md5_signatures", &enabled);
  9.       configureMD5(enabled);

  10.       // Configure TLS session tickets
  11.       mPrefBranch->GetBoolPref("security.enable_tls_session_tickets", &enabled);
  12.       SSL_OptionSetDefault(SSL_ENABLE_SESSION_TICKETS, enabled);

  13.       mPrefBranch->GetBoolPref("security.ssl.require_safe_negotiation", &enabled);
  14.       SSL_OptionSetDefault(SSL_REQUIRE_SAFE_NEGOTIATION, enabled);

  15.       mPrefBranch->GetBoolPref(
  16.         "security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref",
  17.         &enabled);
  18.       SSL_OptionSetDefault(SSL_ENABLE_RENEGOTIATION,
  19.         enabled ? SSL_RENEGOTIATE_UNRESTRICTED : SSL_RENEGOTIATE_REQUIRES_XTN);

  20. #ifdef SSL_ENABLE_FALSE_START // Requires NSS 3.12.8
  21.       mPrefBranch->GetBoolPref("security.ssl.enable_false_start", &enabled);
  22.       SSL_OptionSetDefault(SSL_ENABLE_FALSE_START, enabled);
  23. #endif
复制代码
回复 支持 反对

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
5#
 楼主| 发表于 2016-4-21 00:22:22 | 只看该作者
\mozilla\toolkit\components\prompts\src\nsPrompter.js
promptPassword : function() {

commonDialog.xul
commonDialogOverlay.xul
回复 支持 反对

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
6#
 楼主| 发表于 2016-4-21 00:22:51 | 只看该作者
mozilla\security\manager\ssl\public\nsIPK11TokenDB.idl
  1. interface nsIPK11TokenDB : nsISupports
  2. {
  3.   /*
  4.    * Get the internal key database token
  5.    */
  6.   nsIPK11Token getInternalKeyToken();
复制代码
tokenDB: Cc['@mozilla.org/security/pk11tokendb;1']        .getService(Ci.nsIPK11TokenDB).getInternalKeyToken(),




D:\svn\Client\ThinkMail_ClientWin_2013\trunk\src\thinkmail\mozilla\security\manager\ssl\public\nsIPK11Token.idl

D:\svn\Client\ThinkMail_ClientWin_2013\trunk\src\thinkmail\mozilla\security\manager\ssl\src\nsPK11TokenDB.cpp

this.tokenDB.logoutAndDropAuthenticatedResources();
this.tokenDB.needsLogin()
this.tokenDB.isLoggedIn()
this.tokenDB.login(false);


D:\svn\Client\ThinkMail_ClientWin_2013\trunk\src\thinkmail\mozilla\security\nss\lib\pk11wrap\pk11auth.c
PK11_Authenticate(PK11SlotInfo *slot, PRBool loadCerts, void *wincx) {
..
return PK11_DoPassword(slot, slot->session, loadCerts, wincx,
                                PR_FALSE, PR_FALSE);

}
SECStatus
PK11_DoPassword(PK11SlotInfo *slot, CK_SESSION_HANDLE session,
                        PRBool loadCerts, void *wincx, PRBool alreadyLocked,
                        PRBool contextSpecific)
{
while ((password = pk11_GetPassword(slot, attempt, wincx)) != NULL)   //弹出窗口获取密码
}

d:\svn\Client\ThinkMail_ClientWin_2013\trunk\src\thinkmail\mozilla\security\manager\ssl\src\nsNSSCallbacks.cpp
char* PR_CALLBACK
PK11PasswordPrompt(PK11SlotInfo* slot, PRBool retry, void* arg)
{
  nsRefPtr<PK11PasswordPromptRunnable> runnable =
    new PK11PasswordPromptRunnable(slot,
                                   static_cast<nsIInterfaceRequestor*>(arg));
  runnable->DispatchToMainThreadAndWait();
  return runnable->mResult;
}
回复 支持 反对

使用道具 举报

388

主题

602

帖子

2218

积分

金牌会员

Rank: 6Rank: 6

积分
2218
7#
 楼主| 发表于 2016-4-21 00:23:41 | 只看该作者

chrome://mapaplus/content/masterpasswordplusAbout.xul
回复 支持 反对

使用道具 举报

257

主题

354

帖子

1677

积分

金牌会员

Rank: 6Rank: 6

积分
1677
8#
发表于 2016-4-21 22:32:27 | 只看该作者
/mozilla/dom/base/nsGlobalWindow.cpp
/mozilla/dom/interfaces/base/nsIDOMChromeWindow.idl

/mozilla/widget/nsEvent.h
/mozilla/widget/windows/nsWindow.cpp
/mozilla/xpwidgets/nsBaseWidget.cpp
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-4-30 08:09 , Processed in 0.063080 second(s), 18 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表