зеркало из https://github.com/mozilla/gecko-dev.git
Initial add of new (work-in-progress) password manager implementation. Not part of the build.
This commit is contained in:
Родитель
25a56a0d4b
Коммит
25b37556ab
|
@ -0,0 +1 @@
|
|||
Makefile
|
|
@ -0,0 +1,47 @@
|
|||
# ***** 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 the Mozilla Password Manager code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Brian Ryner.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2003
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# 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 *****
|
||||
|
||||
DEPTH = ../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
DIRS = base resources
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
|
@ -0,0 +1 @@
|
|||
Makefile
|
|
@ -0,0 +1,67 @@
|
|||
# ***** 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 the Mozilla Password Manager code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Brian Ryner.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2003
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# 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 *****
|
||||
|
||||
DEPTH = ../../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = passwordmgr
|
||||
LIBRARY_NAME = passwordmgr_s
|
||||
FORCE_STATIC_LIB = 1
|
||||
|
||||
REQUIRES = \
|
||||
necko \
|
||||
xpcom \
|
||||
string \
|
||||
windowwatcher \
|
||||
layout \
|
||||
uriloader \
|
||||
pref \
|
||||
intl \
|
||||
dom \
|
||||
content \
|
||||
widget \
|
||||
$(NULL)
|
||||
|
||||
XPIDLSRCS = nsIPassword.idl
|
||||
|
||||
CPPSRCS = nsPasswordManager.cpp
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
|
@ -0,0 +1,62 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* 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, Inc. Portions created by Netscape are
|
||||
* Copyright (C) 2001, Mozilla. All Rights Reserved.
|
||||
|
||||
* Contributor(s):
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
[scriptable, uuid(CF39C2B0-1E4B-11d5-A549-0010A401EB10)]
|
||||
|
||||
/**
|
||||
* An optional interface for clients wishing to access a
|
||||
* password object
|
||||
*
|
||||
* @status FROZEN
|
||||
*/
|
||||
|
||||
interface nsIPassword : nsISupports {
|
||||
|
||||
/**
|
||||
* the name of the host corresponding to the login being saved
|
||||
*
|
||||
* The form of the host depends on how the nsIPassword object was created
|
||||
*
|
||||
* - if it was created as a result of submitting a form to a site, then the
|
||||
* host is the url of the site, as obtained from a call to GetSpec
|
||||
*
|
||||
* - if it was created as a result of another app (e.g., mailnews) calling a
|
||||
* prompt routine such at PromptUsernameAndPassword, then the host is whatever
|
||||
* arbitrary string the app decided to pass in.
|
||||
*
|
||||
* Whatever form it is in, it will be used by the password manager to uniquely
|
||||
* identify the login realm, so that "newsserver:119" is not the same thing as
|
||||
* "newsserver".
|
||||
*/
|
||||
readonly attribute AUTF8String host;
|
||||
|
||||
/**
|
||||
* the user name portion of the login
|
||||
*/
|
||||
readonly attribute AString user;
|
||||
|
||||
/**
|
||||
* the password portion of the login
|
||||
*/
|
||||
readonly attribute AString password;
|
||||
};
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -0,0 +1,174 @@
|
|||
/* -*- Mode: C++; 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 Password Manager.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Brian Ryner.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2003
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* 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 ***** */
|
||||
|
||||
#include "nsCPasswordManager.h"
|
||||
#include "nsClassHashtable.h"
|
||||
#include "nsDataHashtable.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIAuthPromptWrapper.h"
|
||||
#include "nsIObserver.h"
|
||||
#include "nsWeakReference.h"
|
||||
#include "nsIPrompt.h"
|
||||
#include "nsIFormSubmitObserver.h"
|
||||
#include "nsIWebProgressListener.h"
|
||||
|
||||
/* 360565c4-2ef3-4f6a-bab9-94cca891b2a7 */
|
||||
#define NS_PASSWORDMANAGER_CID \
|
||||
{0x360565c4, 0x2ef3, 0x4f6a, {0xba, 0xb9, 0x94, 0xcc, 0xa8, 0x91, 0xb2, 0xa7}}
|
||||
|
||||
/* 1baf3398-f759-4a72-a21f-0abdc9cc9960 */
|
||||
#define NS_SINGLE_SIGNON_PROMPT_CID \
|
||||
{0x1baf3398, 0xf759, 0x4a72, {0xa2, 0x1f, 0x0a, 0xbd, 0xc9, 0xcc, 0x99, 0x60}}
|
||||
|
||||
|
||||
class nsIFile;
|
||||
class nsISecretDecoderRing;
|
||||
class nsIPrompt;
|
||||
class nsIStringBundle;
|
||||
class nsIComponentManager;
|
||||
class nsIContent;
|
||||
class nsIDOMWindowInternal;
|
||||
class nsIURI;
|
||||
struct nsModuleComponentInfo;
|
||||
|
||||
class nsPasswordManager : public nsIPasswordManager,
|
||||
public nsIPasswordManagerInternal,
|
||||
public nsIObserver,
|
||||
public nsIFormSubmitObserver,
|
||||
public nsIWebProgressListener,
|
||||
public nsSupportsWeakReference
|
||||
{
|
||||
public:
|
||||
class SignonDataEntry;
|
||||
class PasswordEntry;
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIPASSWORDMANAGER
|
||||
NS_DECL_NSIPASSWORDMANAGERINTERNAL
|
||||
NS_DECL_NSIOBSERVER
|
||||
NS_DECL_NSIWEBPROGRESSLISTENER
|
||||
|
||||
// nsIFormSubmitObserver
|
||||
NS_IMETHOD Notify(nsIContent* aFormNode,
|
||||
nsIDOMWindowInternal* aWindow,
|
||||
nsIURI* aActionURL,
|
||||
PRBool* aCancelSubmit);
|
||||
|
||||
nsPasswordManager();
|
||||
virtual ~nsPasswordManager();
|
||||
|
||||
nsresult Init();
|
||||
static PRBool SingleSignonEnabled();
|
||||
|
||||
static nsresult Register(nsIComponentManager* aCompMgr,
|
||||
nsIFile* aPath,
|
||||
const char* aRegistryLocation,
|
||||
const char* aComponentType,
|
||||
const nsModuleComponentInfo* aInfo);
|
||||
|
||||
static nsresult Unregister(nsIComponentManager* aCompMgr,
|
||||
nsIFile* aPath,
|
||||
const char* aRegistryLocation,
|
||||
const nsModuleComponentInfo* aInfo);
|
||||
|
||||
static void Shutdown();
|
||||
|
||||
protected:
|
||||
void ReadSignonFile();
|
||||
void WriteSignonFile();
|
||||
void AddSignonData(const nsACString& aRealm, SignonDataEntry* aEntry);
|
||||
|
||||
nsresult FindPasswordEntryFromSignonData(SignonDataEntry* aEntry,
|
||||
const nsACString& aHost,
|
||||
const nsAString& aUser,
|
||||
const nsAString& aPassword,
|
||||
nsACString& aHostFound,
|
||||
nsAString& aUserFound,
|
||||
nsAString& aPasswordFound);
|
||||
|
||||
|
||||
static PLDHashOperator PR_CALLBACK FindEntryEnumerator(const nsACString& aKey,
|
||||
SignonDataEntry* aEntry,
|
||||
void* aUserData);
|
||||
|
||||
static PLDHashOperator PR_CALLBACK WriteRejectEntryEnumerator(const nsACString& aKey,
|
||||
PRInt32 aEntry,
|
||||
void* aUserData);
|
||||
|
||||
static PLDHashOperator PR_CALLBACK WriteSignonEntryEnumerator(const nsACString& aKey,
|
||||
SignonDataEntry* aEntry,
|
||||
void* aUserData);
|
||||
|
||||
static PLDHashOperator PR_CALLBACK BuildArrayEnumerator(const nsACString& aKey,
|
||||
SignonDataEntry* aEntry,
|
||||
void* aUserData);
|
||||
|
||||
static PLDHashOperator PR_CALLBACK BuildRejectArrayEnumerator(const nsACString& aKey,
|
||||
PRInt32 aEntry,
|
||||
void* aUserData);
|
||||
|
||||
nsresult DecryptData(const nsAString& aData, nsAString& aPlaintext);
|
||||
nsresult EncryptData(const nsAString& aPlaintext, nsACString& aEncrypted);
|
||||
void EnsureDecoderRing();
|
||||
|
||||
nsClassHashtable<nsCStringHashKey,SignonDataEntry> mSignonTable;
|
||||
nsDataHashtable<nsCStringHashKey,PRInt32> mRejectTable;
|
||||
|
||||
nsCOMPtr<nsISecretDecoderRing> mDecoderRing;
|
||||
nsCOMPtr<nsIFile> mSignonFile;
|
||||
};
|
||||
|
||||
// Our wrapper for username/password prompts - this allows us to prefill
|
||||
// the password dialog and add a "remember this password" checkbox.
|
||||
|
||||
class nsSingleSignonPrompt : public nsIAuthPromptWrapper
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIAUTHPROMPT
|
||||
NS_DECL_NSIAUTHPROMPTWRAPPER
|
||||
|
||||
nsSingleSignonPrompt() { }
|
||||
virtual ~nsSingleSignonPrompt() { }
|
||||
|
||||
protected:
|
||||
void GetLocalizedString(const nsAString& aKey, nsAString& aResult);
|
||||
|
||||
nsCOMPtr<nsIPrompt> mPrompt;
|
||||
nsCOMPtr<nsIStringBundle> mBundle;
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
Makefile
|
|
@ -0,0 +1,45 @@
|
|||
# ***** 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 the Mozilla Password Manager code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Brian Ryner.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2003
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# 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 *****
|
||||
|
||||
DEPTH = ../../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
|
@ -0,0 +1,8 @@
|
|||
toolkit.jar:
|
||||
* content/passwordmgr/passwordManager.xul
|
||||
* content/passwordmgr/passwordManager.js
|
||||
* content/passwordmgr/passwordManager.css
|
||||
|
||||
en-US.jar:
|
||||
* locale/en-US/passwordmgr/satchel.properties
|
||||
* locale/en-US/passwordmgr/passwordManager.dtd
|
|
@ -0,0 +1,38 @@
|
|||
# ***** 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 Password Manager.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Brian Ryner.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2003
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# 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 *****
|
||||
|
||||
@import url("chrome://global/skin");
|
|
@ -0,0 +1,46 @@
|
|||
# ***** 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 Password Manager.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Brian Ryner.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2003
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# 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 LGPL or the GPL. 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 *****
|
||||
|
||||
<!ENTITY windowtitle.label "Password Manager">
|
||||
<!ENTITY storedLogins.label "Passwords Saved">
|
||||
<!ENTITY rejectedLogins.label "Passwords Never Saved">
|
||||
<!ENTITY storedLoginsDescription.label "Password Manager has saved login information for the following sites:">
|
||||
<!ENTITY site.label "Site">
|
||||
<!ENTITY username.label "Username">
|
||||
<!ENTITY remove.label "Remove">
|
||||
<!ENTITY removeAll.label "Remove All">
|
||||
<!ENTITY rejectedLoginsDescription.label "Password Manager will never save login information for the following sites:">
|
|
@ -0,0 +1,91 @@
|
|||
# -*- 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 Password Manager.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Brian Ryner.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2003
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# 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 *****
|
||||
|
||||
var passwordManager;
|
||||
|
||||
const nsIPasswordManager = Components.interfaces.nsIPasswordManager;
|
||||
const nsPasswordManager_CONTRACTID = "@mozilla.org/passwordmanager;1";
|
||||
const nsIPassword = Components.interfaces.nsIPassword;
|
||||
|
||||
function Startup()
|
||||
{
|
||||
passwordManager = Components.classes[nsPasswordManager_CONTRACTID].getService(nsIPasswordManager);
|
||||
updateSignonList();
|
||||
updateButtons();
|
||||
}
|
||||
|
||||
|
||||
function updateSignonList()
|
||||
{
|
||||
var signonTree = document.getElementById('signonsTree');
|
||||
// xxx quick hack: insert rows one at a time
|
||||
var treeChildren = signonTree.getElementsByTagName('treechildren')[0];
|
||||
|
||||
var enumerator = passwordManager.enumerator;
|
||||
while (enumerator.hasMoreElements()) {
|
||||
var nextPassword = enumerator.getNext().QueryInterface(nsIPassword);
|
||||
var treeItem = document.createElement('treeitem');
|
||||
var treeRow = document.createElement('treerow');
|
||||
var hostCell = document.createElement('treecell');
|
||||
var userCell = document.createElement('treecell');
|
||||
|
||||
hostCell.setAttribute('label', nextPassword.host);
|
||||
userCell.setAttribute('label', nextPassword.user);
|
||||
|
||||
treeRow.appendChild(hostCell);
|
||||
treeRow.appendChild(userCell);
|
||||
treeItem.appendChild(treeRow);
|
||||
treeChildren.appendChild(treeItem);
|
||||
}
|
||||
}
|
||||
|
||||
function updateButtons()
|
||||
{
|
||||
// update remove signon button enabled state
|
||||
}
|
||||
|
||||
function deleteSignon()
|
||||
{
|
||||
var tree = document.getElementById('signonsTree');
|
||||
var index = tree.currentIndex;
|
||||
|
||||
var host = tree.boxObject.view.getCellText(index, 'hostColumn');
|
||||
var user = tree.boxObject.view.getCellText(index, 'userColumn');
|
||||
|
||||
passwordManager.removeUser(host, user);
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0"?> <!-- -*- Mode: SGML; indent-tabs-mode: nil -*- -->
|
||||
# ***** 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 Password Manager.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Brian Ryner.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2003
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# 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 *****
|
||||
|
||||
<?xml-stylesheet href="chrome://passwordmgr/content/passwordManager.css" type="text/css"?>
|
||||
|
||||
<!DOCTYPE dialog SYSTEM "chrome://passwordmgr/locale/passwordManager.dtd">
|
||||
|
||||
<dialog id="signonviewer"
|
||||
title="&windowtitle.label;"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
buttons="accept"
|
||||
onload="Startup();">
|
||||
|
||||
<script src="chrome://passwordmgr/content/passwordManager.js"/>
|
||||
|
||||
<tabbox id="tabBox" flex="1">
|
||||
<tabs>
|
||||
<tab label="&storedLogins.label;"/>
|
||||
<tab label="&rejectedLogins.label;"/>
|
||||
</tabs>
|
||||
<tabpanels flex="1">
|
||||
<vbox flex="1">
|
||||
<description>&storedLoginsDescription.label;</description>
|
||||
<separator class="thin"/>
|
||||
<tree flex="1" id="signonsTree" hidecolumnpicker="true" rows="10"
|
||||
onselect="SignonSelected();">
|
||||
<treecols>
|
||||
<treecol id="hostColumn" label="&site.label;" flex="1"
|
||||
onclick="SignonColumnSort(this);"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="userColumn" label="&username.label;" flex="1"
|
||||
onclick="SignonColumnSort(this);"/>
|
||||
</treecols>
|
||||
<treechildren/>
|
||||
</tree>
|
||||
<separator class="thin"/>
|
||||
<hbox>
|
||||
<button id="removeSignon"
|
||||
label="&remove.label;" oncommand="deleteSignon();"/>
|
||||
<button id="removeAllSignons"
|
||||
label="&removeAll.label;" oncommand="deleteAllSignons();"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
|
||||
<vbox flex="1">
|
||||
<description>&rejectedLoginsDescription.label;</description>
|
||||
<separator class="thin"/>
|
||||
<tree id="rejectsTree" flex="1" hidecolumnpicker="true"
|
||||
onselect="RejectSelected();">
|
||||
<treecols>
|
||||
<treecol label="&site.label;" flex="1"
|
||||
onclick="RejectColumnSort(this);"/>
|
||||
</treecols>
|
||||
<treechildren/>
|
||||
</tree>
|
||||
<separator class="thin"/>
|
||||
<hbox>
|
||||
<button id="removeReject" label="&remove.label;"
|
||||
oncommand="DeleteReject();"/>
|
||||
<button id="removeAllRejects" label="&removeAll.label;"
|
||||
oncommand="DeleteAllRejects();"/>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</tabpanels>
|
||||
</tabbox>
|
||||
</dialog>
|
|
@ -0,0 +1,42 @@
|
|||
# ***** 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 Password Manager.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Brian Ryner.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2003
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# 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 *****
|
||||
|
||||
rememberValue = Use Password Manager to remember this value.
|
||||
rememberPassword = Use Password Manager to remember this password.
|
||||
savePasswordTitle = Confirm
|
||||
savePasswordText = Password Manager can remember this logon and enter it automatically the next time you return to this website.\nDo you want Password Manager to remember this logon?
|
||||
neverForSite = Never for this site
|
Загрузка…
Ссылка в новой задаче