firemail
标题:
锁屏
[打印本页]
作者:
hechengjin
时间:
2016-4-21 00:21
标题:
锁屏
//判断是否设置了密码 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);
作者:
hechengjin
时间:
2016-4-21 00:21
CPP
#define NS_WINDOWWATCHER_CONTRACTID "@mozilla.org/embedcomp/window-watcher;1"
nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService(NS_WINDOWWATCHER_CONTRACTID));
nsCOMPtr<nsIDOMWindow> newWindow;
rv = wwatch->OpenWindow(0, chrome && *chrome ? chrome : DEFAULT_CHROME,
"_blank", "all,chrome,dialog=no,status,toolbar", msgParamsWrapper,
getter_AddRefs(newWindow))
js
if (!this.prefLockMinimizeBlur
|| (this.prefLockMinimizeBlur
&& !Cc["@mozilla.org/embedcomp/window-watcher;1"].getService(Ci.nsIWindowWatcher).activeWindow))
{
let timer = Components.classes["@mozilla.org/timer;1"].createInstance(Components.interfaces.nsITimer);
timer.init({observe:function()
{
let enumerator = Cc["@mozilla.org/appshell/window-mediator;1"]
.getService(Ci.nsIWindowMediator)
.getEnumerator(null);
while(enumerator.hasMoreElements())
{
let win = enumerator.getNext();
if (win.windowState != win.STATE_MINIMIZED)
{
win.minimize();
let timer = Components.classes["@mozilla.org/timer;1"].createInstance(Components.interfaces.nsITimer);
timer.init({observe:function()
{
// win.minimize();
}}, 0, timer.TYPE_ONE_SHOT);
}
}
}}, 101, timer.TYPE_ONE_SHOT);
}
复制代码
作者:
hechengjin
时间:
2016-4-21 00:21
C++
// disable (enable) the cached window
nsCOMPtr<nsIBaseWindow> baseWindow;
baseWindow = do_QueryInterface(treeOwner, &rv);
NS_ENSURE_SUCCESS(rv,rv);
baseWindow->SetEnabled(aShow);
NS_ENSURE_SUCCESS(rv,rv);
nsCOMPtr<nsIWindowMediator> windowMediator =
do_GetService(NS_WINDOWMEDIATOR_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv,rv);
// if showing, reinstate the window with the mediator
if (aShow) {
rv = windowMediator->RegisterWindow(aXULWindow);
NS_ENSURE_SUCCESS(rv,rv);
obs->NotifyObservers(aXULWindow, "xul-window-registered", nullptr);
}
// hide (show) the cached window
rv = baseWindow->SetVisibility(aShow);
NS_ENSURE_SUCCESS(rv,rv);
// if hiding, remove the window from the mediator,
// so that it will be removed from the task list
if (!aShow) {
rv = windowMediator->UnregisterWindow(aXULWindow);
NS_ENSURE_SUCCESS(rv,rv);
obs->NotifyObservers(aXULWindow, "xul-window-destroyed", nullptr);
}
复制代码
作者:
hechengjin
时间:
2016-4-21 00:22
SSL_OptionSetDefault(SSL_ENABLE_SSL2, false);
SSL_OptionSetDefault(SSL_V2_COMPATIBLE_HELLO, false);
bool enabled;
mPrefBranch->GetBoolPref("security.enable_ssl3", &enabled);
SSL_OptionSetDefault(SSL_ENABLE_SSL3, enabled);
mPrefBranch->GetBoolPref("security.enable_tls", &enabled);
SSL_OptionSetDefault(SSL_ENABLE_TLS, enabled);
mPrefBranch->GetBoolPref("security.enable_md5_signatures", &enabled);
configureMD5(enabled);
// Configure TLS session tickets
mPrefBranch->GetBoolPref("security.enable_tls_session_tickets", &enabled);
SSL_OptionSetDefault(SSL_ENABLE_SESSION_TICKETS, enabled);
mPrefBranch->GetBoolPref("security.ssl.require_safe_negotiation", &enabled);
SSL_OptionSetDefault(SSL_REQUIRE_SAFE_NEGOTIATION, enabled);
mPrefBranch->GetBoolPref(
"security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref",
&enabled);
SSL_OptionSetDefault(SSL_ENABLE_RENEGOTIATION,
enabled ? SSL_RENEGOTIATE_UNRESTRICTED : SSL_RENEGOTIATE_REQUIRES_XTN);
#ifdef SSL_ENABLE_FALSE_START // Requires NSS 3.12.8
mPrefBranch->GetBoolPref("security.ssl.enable_false_start", &enabled);
SSL_OptionSetDefault(SSL_ENABLE_FALSE_START, enabled);
#endif
复制代码
作者:
hechengjin
时间:
2016-4-21 00:22
\mozilla\toolkit\components\prompts\src\nsPrompter.js
promptPassword : function() {
commonDialog.xul
commonDialogOverlay.xul
作者:
hechengjin
时间:
2016-4-21 00:22
mozilla\security\manager\ssl\public\nsIPK11TokenDB.idl
interface nsIPK11TokenDB : nsISupports
{
/*
* Get the internal key database token
*/
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;
}
作者:
hechengjin
时间:
2016-4-21 00:23
chrome://mapaplus/content/masterpasswordplusAbout.xul
作者:
jimu
时间:
2016-4-21 22:32
/mozilla/dom/base/nsGlobalWindow.cpp
/mozilla/dom/interfaces/base/nsIDOMChromeWindow.idl
/mozilla/widget/nsEvent.h
/mozilla/widget/windows/nsWindow.cpp
/mozilla/xpwidgets/nsBaseWidget.cpp
欢迎光临 firemail (http://www.firemail.wang:8088/)
Powered by Discuz! X3