{"push_id":875552138,"size":15,"distinct_size":15,"ref":"refs/heads/master","head":"97b805ea6c27ecb8baa8c594b4aba146913383f6","before":"d91a069fdf65f0b0dc5532e865ac25f0ec0ee3cf","commits":[{"sha":"d2fa4a703b70e287f4f3c54db51b1adf79be63d0","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Replace seeds with seed references in all of the tags\n\nI would like to be free to bump passwords and update private seeds\nwithout having to worry about manually synchronizing the tags between\nbrowsers on different devices.  I would like to take advantage of\nChrome sync to help me synchronize configuration between browsers.\n\nThe desire to use Chrome sync is at odds with the desire to keep my\nsecrets secret.  I don't want the secrets to be synchronized between\ndevices.  I'm okay doing that using some sort of sneaker net.  So, the\nfirst step is to scrub the secrets from the individual tag records.\n\nI needed to generate a key for each secret seed that could be used to\nlookup the actual seed.  To do this, I generate a short digest of the\nsecret using an hmac.\n\nThe addition of options.salt is an added paranoid measure to ensure\nthat there is nothing secret about the reference.\n\nChange-Id: I6a89fc8e6b75b8c2796c9cca41ea4c3a63b81a6d","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/d2fa4a703b70e287f4f3c54db51b1adf79be63d0"},{"sha":"62aaf0758fdd69675b43ab09abb5a9f8309958d3","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"When saving options, start with the previous set of options\n\nThe problem that I found was that I added the options for salt and\nseeds which don't have a UI element.  I didn't feel a need to add a UI\nelement for either of these.  So, to preserve the values for salt and\nseeds, I load the options before saving them.\n\nChange-Id: Ief12f4e159f5fd19b4c2b0adfa792b25415f2a43","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/62aaf0758fdd69675b43ab09abb5a9f8309958d3"},{"sha":"5b7e5469af81986fe8ffe5cad4ae9dc812435e6e","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Set defaut options on save as well as on load\n\nChange-Id: I6407e078a6d2723a96e38b37ffe998b12ab9c0e6","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/5b7e5469af81986fe8ffe5cad4ae9dc812435e6e"},{"sha":"eda5cc5acf2b2b3def8bd41bd3b24578d66974dd","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Convert storage to use an asynchronous API\n\nThe motivation is to eventually use Chrome sync or a REST API to\nsynchronize urls and tags and all of the less-sensitive\nconfiguration options.  Using either requires using an asynchronous\nAPI.  It is possible to make a sychronous API behave like an\nasynchronous API but not the other way around.  That is why I've\nwrapped localStorage with an API that operations like an asynchronous\nAPI using callbacks.\n\nThe effects of this change are far reaching.  I hesitated to make the\nchanges for some time until I realized that there was no way around\nit.  In order to get the flexibility needed to use a different storage\nmechanism to synchronize settings.\n\nThere are some errors in indentation on purpose.  The reason for this\nis so that the diff from the previous version shows more in common\nthan not.  This can be fixed with a follow on commit that changes only\nwhitespace.\n\nChange-Id: Iea34abc01d7c142afb75052e8138effe88b1dd04","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/eda5cc5acf2b2b3def8bd41bd3b24578d66974dd"},{"sha":"a62eac1bd91a111f3f798ca94cca9d75653379f9","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Split storage between local and remote\n\nThis lays the groundwork for storing secrets locally and most other\ndata in a remote storage location.  For now, they both use local\nstorage but this will soon change to use something like chrome sync.\n\nChange-Id: I9e60b459c7b2f684aca652b833f9deee8a0641b3","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/a62eac1bd91a111f3f798ca94cca9d75653379f9"},{"sha":"bd6a0a4c656fca1c1896baeb728dd4a46bf0b025","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Implement a way to switch to chrome storage\n\nChange-Id: Ie65c8af31f6ac2535a06bd48e145bad41b9d91aa","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/bd6a0a4c656fca1c1896baeb728dd4a46bf0b025"},{"sha":"9f8e37066befe2fd6594bcaabee6c42a41b0df41","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Add a link to the stand-alone page from the popup.\n\nChange-Id: Ia8f1db615ebc637076461c1ad0f787da4aa45a74","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/9f8e37066befe2fd6594bcaabee6c42a41b0df41"},{"sha":"5bd662db99c4731a3980ee9bc5b25a0ee2df6c01","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"fixup:  Load the extension at document_idle\n\nChange-Id: I4d6a1867e2084b653556313370438acc603ef3d4","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/5bd662db99c4731a3980ee9bc5b25a0ee2df6c01"},{"sha":"594b10439fae291562e5e73d9cef7d2d21a7ed9f","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Don't do anything with pages that don't have password fields\n\nI saw this problem on Discover's page.  In debugging, I found that\nthere were 6 instances of content-script.js each with a different url.\nOnly one of them was the page with the password field.  The problem\nwas when I changed things in the extension popup, it would send a\nmessage to the wrong content instance.  This tweak seems to fix it.\n\nChange-Id: I1eae2ee1d7cfbe7c004d37a17619e7edaabd05f0","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/594b10439fae291562e5e73d9cef7d2d21a7ed9f"},{"sha":"473635a2a21482151abab0d9f9beafdc54a6acbb","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Turn it into a page action instead of browser action\n\nThis makes it so the plugin only appears when the page has password\nfield.  I think I like it better this way.\n\nChange-Id: Ibe0d99a912a106855942d8684ad1a07bcbdd8dae","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/473635a2a21482151abab0d9f9beafdc54a6acbb"},{"sha":"6b628e17ccac90f1918dd3a9993fb7dcd16c1a3b","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Change the icon\n\nChange-Id: I2993262369d53d0b3fe210220991cb5604a31cdc","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/6b628e17ccac90f1918dd3a9993fb7dcd16c1a3b"},{"sha":"23ff0791c251436b4fc0ac09933f7a1417d1e2d9","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Forgot to replace the icon in one place\n\nChange-Id: I33a24c8287c0c997b463b1ff8fad23d2e7f3ecd0","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/23ff0791c251436b4fc0ac09933f7a1417d1e2d9"},{"sha":"c3c017ceb62563df768f89ab3772765d6a66aec3","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Add alpha channel to icons\n\nChange-Id: I9fe5e2c32a8c377efa76d338bf73982707b94f96","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/c3c017ceb62563df768f89ab3772765d6a66aec3"},{"sha":"932113e8a8d60b6d24ac7fe935563331d2ade210","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Change the default storage to Chrome sync\n\nChange-Id: I4e2ebfcee99a1241c2fde690947af3d54f5fbe61","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/932113e8a8d60b6d24ac7fe935563331d2ade210"},{"sha":"97b805ea6c27ecb8baa8c594b4aba146913383f6","author":{"email":"de187642e6c75f60d10f29e52cab54cdf676870d@ecbaldwin.net","name":"Carl Baldwin"},"message":"Personalize it a bit\n\nAt this point, I've forked so far from the original that I might as\nwell make it clear that it is very different.\n\nChange-Id: I8ec0da5990bcb1c03a2c5b4e55751f1279a0a86a","distinct":true,"url":"https://api.github.com/repos/ecbaldwin/passwordhasherplus/commits/97b805ea6c27ecb8baa8c594b4aba146913383f6"}]}