Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								eca930770c 
								
							
								 
							
						 
						
							
							
								
								Remove hard-coded database connection settings  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								1df6dc8378 
								
							
								 
							
						 
						
							
							
								
								Abort processing if there are no more messages  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								85490fbc98 
								
							
								 
							
						 
						
							
							
								
								Disable JSHint for `background.js`  
							
							 
							
							... 
							
							
							
							It doesn’t recognize `async` and I couldn’t figure out how to ignore a top-level
`async` without cascading errors. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								d5d0eabdfd 
								
							
								 
							
						 
						
							
							
								
								Remove usage of `storage` module  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								8966e80284 
								
							
								 
							
						 
						
							
							
								
								Improve identifier names  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								3e2d575506 
								
							
								 
							
						 
						
							
							
								
								Document `MessageDataMigrator` module design  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								3c57dbfb56 
								
							
								 
							
						 
						
							
							
								
								Extract `NUM_MESSAGES_PER_BATCH`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								85788d3c4a 
								
							
								 
							
						 
						
							
							
								
								Match `items` storage format to Backbone adapter  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								7de7fcf561 
								
							
								 
							
						 
						
							
							
								
								Avoid `no-param-reassign` violation  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								070235b59b 
								
							
								 
							
						 
						
							
							
								
								Implement `MessageDataMigrator.processAll`  
							
							 
							
							... 
							
							
							
							Upgrades schema of all messags upon startup. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								b8a0bc3423 
								
							
								 
							
						 
						
							
							
								
								Run attachment to disk migration on startup  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								178a3cc262 
								
							
								 
							
						 
						
							
							
								
								Reduce work for verifying transaction completion  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								b6e978f74c 
								
							
								 
							
						 
						
							
							
								
								Implement `MessagesDataMigrator.processAll`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								457bf7ab9d 
								
							
								 
							
						 
						
							
							
								
								Add `createCollection` function  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								8ea257ad4d 
								
							
								 
							
						 
						
							
							
								
								Use double quotes for identifiers in error messages  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								172616ca4f 
								
							
								 
							
						 
						
							
							
								
								Add log message for dummy migration 18  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								579b01283e 
								
							
								 
							
						 
						
							
							
								
								Replace `wrapDeferred` with `deferredToPromise`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								40c40c800a 
								
							
								 
							
						 
						
							
							
								
								Prefer `exports`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								da144edc56 
								
							
								 
							
						 
						
							
							
								
								Manually close database connection after migration  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								106ce21c49 
								
							
								 
							
						 
						
							
							
								
								Remove redundant log message  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								fcd30cd919 
								
							
								 
							
						 
						
							
							
								
								Close database after migration  
							
							 
							
							... 
							
							
							
							This is not 100% reliable as database connections are closed in a separate
thread according to the documentation:
- https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase/close 
- https://stackoverflow.com/a/18639298 
- 80c7a06d5c/backbone-indexeddb.js (L558-L565) 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								c765422fa1 
								
							
								 
							
						 
						
							
							
								
								Extract `deferredToPromise`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								e2f1339ab9 
								
							
								 
							
						 
						
							
							
								
								Explicitly run post-attachment migrations  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								d7c8d33edb 
								
							
								 
							
						 
						
							
							
								
								Extract `runMigrations`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								d16178638e 
								
							
								 
							
						 
						
							
							
								
								Split database migrations into pre- and post-attachment migration  
							
							 
							
							... 
							
							
							
							- Run light-weight migrations before attachment migration.
- Run regular migrations after attachments have been moved to disk. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								b24dad23ea 
								
							
								 
							
						 
						
							
							
								
								Fix search view conversation reset bug  
							
							 
							
							... 
							
							
							
							When searching for an existing conversation using a phone number, it’s possible
to click on ‘Start conversation…’ and have that new dummy entry overwrite the
existing conversation.
This change ensures we are always showing a dummy conversation model that is not
part of the conversation collection. Adding it is always idempotent as it goes
through `getOrCreateAndWait`. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								08f6886f3e 
								
							
								 
							
						 
						
							
							
								
								Strengthen precondition of `ConversationController.getOrCreate`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								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. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								90de9d85a3 
								
							
								 
							
						 
						
							
							
								
								Remove type annotation  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								4c10fcfa17 
								
							
								 
							
						 
						
							
							
								
								Reduce threshold until optimization appears to 1s  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								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. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								add19aa732 
								
							
								 
							
						 
						
							
							
								
								Add initialization view  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								f253fef5c6 
								
							
								 
							
						 
						
							
							
								
								Explicitly make `onDestroy` have `void` return type  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								9b112489cd 
								
							
								 
							
						 
						
							
							
								
								Upgrade 2 messages every 30 seconds  
							
							 
							
							... 
							
							
							
							This results in 4 messages per minute or 240 messages per hour. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								7c2fde4433 
								
							
								 
							
						 
						
							
							
								
								Add `Signal.Workflow` namespace  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								4a7cc22de3 
								
							
								 
							
						 
						
							
							
								
								🎨  Use `window.requestIdleCallback`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								5c9f18e1ae 
								
							
								 
							
						 
						
							
							
								
								Wire up background message migration  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								4651cbc2eb 
								
							
								 
							
						 
						
							
							
								
								Improve ``Message.upgradeSchema` preconditions  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								ca28f3030b 
								
							
								 
							
						 
						
							
							
								
								Add `MessageMigration` module  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								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. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								09ee2d4ea2 
								
							
								 
							
						 
						
							
							
								
								Switch to using `requestIdleCallback`  
							
							 
							
							... 
							
							
							
							Example:
https://developer.mozilla.org/en-US/docs/Web/API/Background_Tasks_API#Example  
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								d13668544d 
								
							
								 
							
						 
						
							
							
								
								Rename `IdleListener` to `IdleDetector`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								92ace67846 
								
							
								 
							
						 
						
							
							
								
								Start idle listener on startup  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								3140e4d66d 
								
							
								 
							
						 
						
							
							
								
								Implement basic `IdleListener`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								0c06fff47b 
								
							
								 
							
						 
						
							
							
								
								Wire up `Message` / `Attachment` migration functions on startup  
							
							 
							
							... 
							
							
							
							Makes `migrationContext` obsolete. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								867f73b80a 
								
							
								 
							
						 
						
							
							
								
								Use double quotes for identifiers in error messages  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								70cdd2b350 
								
							
								 
							
						 
						
							
							
								
								Add `stringToArrayBuffer` utility  
							
							 
							
							... 
							
							
							
							This way we can avoid an extra dependency. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								2ad0fd7db6 
								
							
								 
							
						 
						
							
							
								
								Use Lodash `omit` instead of `delete`  
							
							 
							
							
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								ef2be2cf5f 
								
							
								 
							
						 
						
							
							
								
								Make `MessageView::onUnload` synchronous  
							
							 
							
							... 
							
							
							
							Our tests rely on that. 
							
						 
						
							8 years ago  
						
					 
				
					
						
							
							
								 
								Daniel Gasienica
							
						 
						
							 
							
							
							
								
							
								b3251a8de2 
								
							
								 
							
						 
						
							
							
								
								Prevent potential NPE  
							
							 
							
							
							
						 
						
							8 years ago