Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	08f6886f3e  
						 
						
							
							
								
								
								Strengthen precondition of ConversationController.getOrCreate  
							
							
							
						 
						
							2018-03-27 19:52:18 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	83c979fb84  
						 
						
							
							
								
								
								Rename createTemporary to dangerouslyCreateAndAdd  
							
							... 
							
							
							
							Class: `ConversationController`.
This function should not be used in application code as it creates potentially
invalid `Conversation` instances in our global conversation collection. We keep
making it available for testing purposes. 
							
						 
						
							2018-03-27 19:52:17 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	90de9d85a3  
						 
						
							
							
								
								
								Remove type annotation  
							
							
							
						 
						
							2018-03-26 16:56:37 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	4c10fcfa17  
						 
						
							
							
								
								
								Reduce threshold until optimization appears to 1s  
							
							
							
						 
						
							2018-03-26 16:56:37 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	dede0f1e25  
						 
						
							
							
								
								
								Improve user messaging during initialization  
							
							... 
							
							
							
							- We first show a localized loading message.
- If initialization takes longer than a certain threshold, we show a different
  ‘optimization’ message.
- If initialization is below the threshold the message change is canceled right
  before the regular loading screen. 
							
						 
						
							2018-03-26 16:56:37 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	add19aa732  
						 
						
							
							
								
								
								Add initialization view  
							
							
							
						 
						
							2018-03-26 16:56:37 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	f253fef5c6  
						 
						
							
							
								
								
								Explicitly make onDestroy have void return type  
							
							
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	9b112489cd  
						 
						
							
							
								
								
								Upgrade 2 messages every 30 seconds  
							
							... 
							
							
							
							This results in 4 messages per minute or 240 messages per hour. 
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	7c2fde4433  
						 
						
							
							
								
								
								Add Signal.Workflow namespace  
							
							
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	4a7cc22de3  
						 
						
							
							
								
								
								🎨  Use window.requestIdleCallback  
							
							
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	5c9f18e1ae  
						 
						
							
							
								
								
								Wire up background message migration  
							
							
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	4651cbc2eb  
						 
						
							
							
								
								
								Improve `Message.upgradeSchema preconditions  
							
							
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	ca28f3030b  
						 
						
							
							
								
								
								Add MessageMigration module  
							
							
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	8e762797c0  
						 
						
							
							
								
								
								Remove attachment validation  
							
							... 
							
							
							
							Turns out `fileName` is optional and maybe even `contentType`. We should revisit
this at a later point in time. 
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	09ee2d4ea2  
						 
						
							
							
								
								
								Switch to using requestIdleCallback  
							
							... 
							
							
							
							Example:
https://developer.mozilla.org/en-US/docs/Web/API/Background_Tasks_API#Example  
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	d13668544d  
						 
						
							
							
								
								
								Rename IdleListener to IdleDetector  
							
							
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	92ace67846  
						 
						
							
							
								
								
								Start idle listener on startup  
							
							
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	3140e4d66d  
						 
						
							
							
								
								
								Implement basic IdleListener  
							
							
							
						 
						
							2018-03-26 16:49:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	0c06fff47b  
						 
						
							
							
								
								
								Wire up Message / Attachment migration functions on startup  
							
							... 
							
							
							
							Makes `migrationContext` obsolete. 
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	867f73b80a  
						 
						
							
							
								
								
								Use double quotes for identifiers in error messages  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	70cdd2b350  
						 
						
							
							
								
								
								Add stringToArrayBuffer utility  
							
							... 
							
							
							
							This way we can avoid an extra dependency. 
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	2ad0fd7db6  
						 
						
							
							
								
								
								Use Lodash omit instead of delete  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	ef2be2cf5f  
						 
						
							
							
								
								
								Make MessageView::onUnload synchronous  
							
							... 
							
							
							
							Our tests rely on that. 
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	b3251a8de2  
						 
						
							
							
								
								
								Prevent potential NPE  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	9d25aa4e43  
						 
						
							
							
								
								
								Delete attachment files on disk upon message delete  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	279b3f81c7  
						 
						
							
							
								
								
								Add Attachment.deleteData  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	833a203559  
						 
						
							
							
								
								
								Remove Vim modeline  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	e1c1b1aa72  
						 
						
							
							
								
								
								Load attachment data before rendering  
							
							... 
							
							
							
							Prevent double rendering of attachments by multiple entries into
`MessageView::render` using promises. 
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	97e3b49a36  
						 
						
							
							
								
								
								Whitelist js/views/message_view.js for ESLint  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	b5721c2594  
						 
						
							
							
								
								
								Remove Vim modeline  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	38e2468b2e  
						 
						
							
							
								
								
								Set schemaVersion in handleMessage  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	e3dbeba963  
						 
						
							
							
								
								
								Initialize schema version during Message construction  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	9a540d6d18  
						 
						
							
							
								
								
								Load attachment data before sending message  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	8218e308cd  
						 
						
							
							
								
								
								Improve identifier names  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	6355c54114  
						 
						
							
							
								
								
								Return relative path from writeAttachmentData  
							
							... 
							
							
							
							This will make our app more robust to changes in location on the file system. 
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	2cd3d5ac16  
						 
						
							
							
								
								
								Add Message schema version 3  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	e0428355be  
						 
						
							
							
								
								
								Wire up writeAttachment  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	aa82a2a5fb  
						 
						
							
							
								
								
								Add context to Message.upgradeSchema  
							
							... 
							
							
							
							Allows us to pass in Electron/Node.js specific functions. This allows better
unit testing in Mocha where we don’t have access to Electron APIs. 
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Daniel Gasienica 
								
							 
						 
						
							
							
								
							
							
	ebe2a769c9  
						 
						
							
							
								
								
								Add Attachment.migrateDataToFileSystem  
							
							
							
						 
						
							2018-03-26 16:38:34 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									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