blob: 58e03e5fcbaee6e02175367f224c411822d82dbd [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Use the <code>chrome.passwordsPrivate</code> API to add or remove password
// data from the settings UI.
namespace passwordsPrivate {
// Pair of origin URL and login saved for that URL.
dictionary LoginPair {
// The human-readable origin for the URL where the password is used.
DOMString originUrl;
// The username used in conjunction with the saved password.
DOMString username;
};
// Entry used to display a password in the settings UI.
dictionary PasswordUiEntry {
// The login information for this entry.
LoginPair loginPair;
// The complete URL of the page that the password is saved for.
DOMString linkUrl;
// The number of characters in the password; used to display placeholder
// dots in the UI.
long numCharactersInPassword;
// Text shown if the password was obtained via a federated identity.
DOMString? federationText;
};
dictionary ExceptionPair {
// The human-readable URL where passwords will not be saved.
DOMString exceptionUrl;
// The complete URL of the page that the exception was created for.
DOMString linkUrl;
};
// Dictionary passed to listeners for the onPlaintextPasswordRetrieved event.
dictionary PlaintextPasswordEventParameters {
// The LoginPair associated with the retrieved password.
LoginPair loginPair;
// The password in plaintext.
DOMString plaintextPassword;
};
callback PasswordListCallback = void(PasswordUiEntry[] entries);
callback ExceptionListCallback = void(ExceptionPair[] exceptions);
interface Functions {
// Removes the saved password corresponding to |loginPair|. If no saved
// password for this pair exists, this function is a no-op.
//
// |loginPair|: The LoginPair corresponding to the entry to remove.
static void removeSavedPassword(LoginPair loginPair);
// Removes the saved password exception corresponding to |exceptionUrl|. If
// no exception with this URL exists, this function is a no-op.
//
// |exceptionUrl|: The URL corresponding to the exception to remove.
static void removePasswordException(DOMString exceptionUrl);
// Returns the plaintext password corresponding to |loginPair|. Note that on
// some operating systems, this call may result in an OS-level
// reauthentication. Once the password has been fetched, it will be returned
// via the onPlaintextPasswordRetrieved event.
// TODO(hcarmona): Investigate using a callback for consistency.
//
// |loginPair|: The LoginPair corresponding to the entry whose password
// is to be returned.
static void requestPlaintextPassword(LoginPair loginPair);
// Returns the list of saved passwords.
// |callback|: Called with the list of saved passwords.
static void getSavedPasswordList(PasswordListCallback callback);
// Returns the list of password exceptions.
// |callback|: Called with the list of password exceptions.
static void getPasswordExceptionList(ExceptionListCallback callback);
};
interface Events {
// Fired when the saved passwords list has changed, meaning that an entry
// has been added or removed.
//
// |entries|: The updated list of password entries.
static void onSavedPasswordsListChanged(PasswordUiEntry[] entries);
// Fired when the password exceptions list has changed, meaning that an
// entry has been added or removed.
//
// |exceptions|: The updated list of password exceptions.
static void onPasswordExceptionsListChanged(ExceptionPair[] exceptions);
// Fired when a plaintext password has been fetched in response to a call to
// chrome.passwordsPrivate.requestPlaintextPassword().
//
// |loginPair|: The LoginPair whose password was found.
// |plaintextPassword|: The plaintext password which was retrieved.
static void onPlaintextPasswordRetrieved(
PlaintextPasswordEventParameters dict);
};
};