Navdeep Singh 
								
							 
						 
						
							
							
								
							
							
	1a117e3f78  
						 
						
							
							
								
								
								Fix   #2125  Prevent multiple settings modals  
							
							
							
						 
						
							2018-03-23 12:16:44 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	cea42bde7d 
 
						 
						
							
							
								
								
								Encryption support for backup and restore  
							
							... 
							
							
							
							Also moved to the _ prefix in backup.js for all private methods exported
for testing. 
							
						 
						
							2018-03-20 11:53:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	6d8f4b7b6e 
 
						 
						
							
							
								
								
								Backup: zipped messages.json, flat attachments dir  
							
							... 
							
							
							
							Backup creates, in a target directory:
  - An attachments folder, with all attachments, each named for their
    parent message's id - a GUID. If there is more than one attachment
    in a given message,  each attachment beyond the first will end with
    '-N', zero-indexed.
  - A file named messages.zip. It contains exactly what went to disk in
    the original export code, but zipped up.
Export is now only 'light,' and in this new messages.zip format.
Import supports both the new format and the old format. If the target
directory has a messages.zip file, we'll treat it as the new format.
Next up: Encrypting attachments and the messages.zip! 
							
						 
						
							2018-03-20 11:53:22 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	153a22f46b 
 
						 
						
							
							
								
								
								Exclude unnecessary data in export: profiles, replayable errors  
							
							
							
						 
						
							2018-03-20 11:53:22 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	c0c758d459 
 
						 
						
							
							
								
								
								Backup: All exports are now 'light' exports  
							
							
							
						 
						
							2018-03-20 11:53:21 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	e583434366 
 
						 
						
							
							
								
								
								Refactor: Move Backup under window.Signal  
							
							
							
						 
						
							2018-03-20 11:53:19 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	186268a1b1 
 
						 
						
							
							
								
								
								Remove strange eslint-generated triple-parens  
							
							
							
						 
						
							2018-03-20 11:52:42 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	81e94c5aa3 
 
						 
						
							
							
								
								
								Refactor backup.js to use async/await  
							
							
							
						 
						
							2018-03-20 11:52:42 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	c01b343bd4 
 
						 
						
							
							
								
								
								Code formatting updates for backup.js  
							
							
							
						 
						
							2018-03-20 11:52:42 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	c88381efe3  
						 
						
							
							
								
								
								Use async / await to improve readability  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	2642844c27  
						 
						
							
							
								
								
								Rewrite migration 17 without idb  
							
							... 
							
							
							
							We ran into issues when doing async operations inside of an IndexedDB
`onupgradeneeded` handler. The errors were ‘The transaction is not active’ or
‘Transaction has finished’. The following documentation confirmed that
transactions are committed/terminated when control returns to the event loop:
Spec
- https://www.w3.org/TR/IndexedDB/#transaction-lifetime-concept 
- https://www.w3.org/TR/IndexedDB/#upgrade-transaction-construct 
Stack Overflow
- https://stackoverflow.com/a/11059085 
- https://stackoverflow.com/a/27338944 
Since the initial database migration is so critical, I decided to avoid `idb`
with promise support for IndexedDB for now, but will reconsider using it for
other tasks in the future to improve readability of IndexedDB code. 
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	db2941cbb0  
						 
						
							
							
								
								
								Measure duration of migration  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	a619d48fac  
						 
						
							
							
								
								
								Update schema version history  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	0e20e8e2ea  
						 
						
							
							
								
								
								Use Errors.toLogFormat  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	cd3aee962d  
						 
						
							
							
								
								
								Upgrade message schema before sending  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	a5edbf8328  
						 
						
							
							
								
								
								Initialize schema as first step in upgradeSchema  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	5d927b73e6  
						 
						
							
							
								
								
								Use while loop for IDB cursor iteration  
							
							... 
							
							
							
							Previously, I messily combined promises and callbacks because I thought we
were affected by the microtask issue:
https://github.com/gasi/idb#iteratecursor--iteratekeycursor 
ESLint’s `more/no-then` encouraged me to revisit this and it works as expected. 
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	a76a6098c4  
						 
						
							
							
								
								
								Simplify log statement  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	dbdf6fd880  
						 
						
							
							
								
								
								Run version 17 migration upon startup  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	182e6ffe10  
						 
						
							
							
								
								
								Add version 17 migration  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	752c8f97e6  
						 
						
							
							
								
								
								🎨  Format ternaries  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	8dfaa5619f  
						 
						
							
							
								
								
								Prefix private functions with underscore  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	ed336d31d7  
						 
						
							
							
								
								
								Move schema versioning from Attachment to Message  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	b9e9f5e19a  
						 
						
							
							
								
								
								🎨  withInheritedSchemaVersion to inheritSchemaVersion  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	df693ade7c  
						 
						
							
							
								
								
								Allow Attachment.fileName to be null  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	c81ce1dc92  
						 
						
							
							
								
								
								Fix log line  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	c27746b79e  
						 
						
							
							
								
								
								Add Message.withInheritedSchemaVersion  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	e9e46464c2  
						 
						
							
							
								
								
								Add SchemaVersion type  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	add4b11df3  
						 
						
							
							
								
								
								Skip invalid attachments and make function sync  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	3dfc823716  
						 
						
							
							
								
								
								Add Attachment.removeSchemaVersion  
							
							
							
						 
						
							2018-03-19 19:27:59 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	256b87aa7a 
 
						 
						
							
							
								
								
								Refactor newly-added ClearDataView in settings_view.js  
							
							
							
						 
						
							2018-03-14 14:42:15 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	b01b939d15 
 
						 
						
							
							
								
								
								Clear conversation list when the conversations collection resets  
							
							
							
						 
						
							2018-03-14 14:42:15 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	c760fe29ac 
 
						 
						
							
							
								
								
								Fix broken storeNames.forEach, since it's not an array  
							
							
							
						 
						
							2018-03-14 14:42:15 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	a728c9efbf 
 
						 
						
							
							
								
								
								Remove all mention of obsolete safety-number-approval setting  
							
							
							
						 
						
							2018-03-14 14:42:15 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	26c273618a 
 
						 
						
							
							
								
								
								Refactor: db tasks to database.js, log delete to modules/logs.js  
							
							
							
						 
						
							2018-03-14 14:42:15 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	3527740598 
 
						 
						
							
							
								
								
								Format updates to js/database.js  
							
							
							
						 
						
							2018-03-14 14:42:14 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	3a151393c5 
 
						 
						
							
							
								
								
								Move wrapDeferred from background.js to preload.js  
							
							... 
							
							
							
							It's necessary anywhere that will have to deal with Deferreds. 
							
						 
						
							2018-03-14 14:42:14 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	12d9d41548 
 
						 
						
							
							
								
								
								Move to better database deletion call; clears in-memory caches  
							
							
							
						 
						
							2018-03-14 14:42:14 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	c81d3f5c0b 
 
						 
						
							
							
								
								
								Allow ConversationController.load() to be called more than once  
							
							
							
						 
						
							2018-03-14 14:42:14 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	383e02edc4 
 
						 
						
							
							
								
								
								New section in settings screen, full-screen 'are you sure?'  
							
							
							
						 
						
							2018-03-14 14:42:13 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	198f356792 
 
						 
						
							
							
								
								
								Return number (not id) in getNumber, remove unnecessary comment  
							
							
							
						 
						
							2018-03-14 14:42:13 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Scott Nonnenberg 
								
							 
						 
						
							
							
								
							
							
	
	
	9acb189650 
 
						 
						
							
							
								
								
								Remove config after unlink, clear db when linked with new number  
							
							
							
						 
						
							2018-03-14 14:42:13 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	8a1bff0fad  
						 
						
							
							
								
								
								Remove unused require  
							
							
							
						 
						
							2018-03-08 17:50:10 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	43b47fd349  
						 
						
							
							
								
								
								Avoid ensure-error for privacy reasons  
							
							... 
							
							
							
							Example:
```
> node
> const nonError = {foo: 'i-am-private'};
undefined
// before
> util.inspect(nonError);
'{ foo: \'i-am-private\' }'
// after
> nonError.toString()
'[object Object]'
>
``` 
							
						 
						
							2018-03-08 16:23:51 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	ea07915e6b  
						 
						
							
							
								
								
								Escape special characters in file path  
							
							
							
						 
						
							2018-03-08 16:23:51 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	44b81f68dd  
						 
						
							
							
								
								
								Remove privacy redaction from Errors.toLogFormat  
							
							
							
						 
						
							2018-03-08 16:23:51 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	49e0850fb2  
						 
						
							
							
								
								
								Extract Privacy module  
							
							... 
							
							
							
							Centralizes how we redact sensitive information. 
							
						 
						
							2018-03-08 16:23:51 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	0c317c5498  
						 
						
							
							
								
								
								Redact all private information from logs  
							
							
							
						 
						
							2018-03-08 16:23:04 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	0e2f8a8a06  
						 
						
							
							
								
								
								Extract Errors.redactSensitivePaths  
							
							
							
						 
						
							2018-03-08 16:22:38 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	33bbb12626  
						 
						
							
							
								
								
								Use Errors.toLogFormat in backgrounds.js  
							
							
							
						 
						
							2018-03-08 16:22:38 -05:00