Instantly share code, notes, and snippets.

Embed
What would you like to do?
As Chrome removed the "Backup" button in "Saved Passwords", you can make a backup from your passwords by running this code in the console!
// 1. Open chrome://settings/passwords
// 2. Open chrome developer tools (using F12 or Ctrl+Shift+i)
// 3. Run the following code in the console tab
// 4. Copy output in a text file and save it somewhere safe!
function asyncForEach(array, done, iterator) {
var i = 0;
next();
function next(err) {
if (err) {
done(err);
}
else if (i >= array.length) {
done();
}
else if (i < array.length) {
var item = array[i++];
setTimeout(function() {
iterator(item, i - 1, next);
}, 0);
}
}
}
settingsUi = $$('settings-ui');
settingsPage = Polymer.dom(settingsUi[0].shadowRoot);
container = settingsPage.querySelector('#container');
settingsPasswordsAndForms = Polymer.dom(Polymer.dom(Polymer.dom(settingsPage.querySelector('#main').shadowRoot).querySelector('settings-basic-page').shadowRoot).querySelector('settings-passwords-and-forms-page').shadowRoot);
page = settingsPasswordsAndForms.querySelector('passwords-section').shadowRoot;
passwordSection = Polymer.dom(settingsPasswordsAndForms.querySelector('#pages')).querySelector('#passwordSection');
list = Polymer.dom(page).querySelector('iron-list');
passwordItems = list.get('items');
asyncForEach(passwordItems, function () {
console.log(JSON.stringify(passwordItems, null, 4));
// Now you can save output in a text file!
}, function (item, index, next) {
passwordSection.passwordManager_.getPlaintextPassword(item.loginPair, function (item) {
passwordItems[index].password = item.plaintextPassword;
next();
}.bind(passwordSection))
});
@duckbrain

This comment has been minimized.

Copy link

duckbrain commented Dec 15, 2017

In Chrome 63, you need to change the function call on line 38 to pass only the index.

- passwordSection.passwordManager_.getPlaintextPassword(item.loginPair, function (item) {
+ passwordSection.passwordManager_.getPlaintextPassword(index, function (item) {

Thank you so much for this.

@ryanpcmcquen

This comment has been minimized.

Copy link

ryanpcmcquen commented Jan 4, 2018

Updated for Chrome 63 and modernized a bit:
https://gist.github.com/ryanpcmcquen/cee082bff514f8849a29c409fe3571ff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment