Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save isleshocky77/2dd212735ca137e3c9322e8ec2a15868 to your computer and use it in GitHub Desktop.
Save isleshocky77/2dd212735ca137e3c9322e8ec2a15868 to your computer and use it in GitHub Desktop.
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 () {
passwordsAsJsonString = JSON.stringify(passwordItems, null, 4);
passwordsAsCsv = '';
Array.prototype.forEach.call(passwordItems, function(passwordItem) {
passwordsAsCsv += '"'+ passwordItem.loginPair.urls.shown + '","' + passwordItem.loginPair.username + '","' + passwordItem.loginPair.urls.origin + '","' + passwordItem.password + '"' + "\n";
});
// Now you can save output in a text file!
//console.log(passwordsAsJsonString);
console.log(passwordsAsCsv);
}, function (item, index, next) {
passwordSection.passwordManager_.getPlaintextPassword(item.loginPair, function (item) {
passwordItems[index].password = item.plaintextPassword;
next();
}.bind(passwordSection))
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment