Commit Graph

486 Commits (c58312e853da68ef5ae74490ba7839fda891747c)

Author SHA1 Message Date
Maxim Shishmarev 0221e7b8c0 fix linter warnings 5 years ago
Maxim Shishmarev 3a746109ea Path building for onion requests 5 years ago
Vincent f599c28470 organisation 5 years ago
Vincent 9a6aafe99c Pull from clearnet 5 years ago
Vincent 7235ccff88 Emoji quick styling 5 years ago
Vincent 19a5571536 Protobuf init for attachments 5 years ago
Mikunj d31feed2c0 Review fixes 5 years ago
Mikunj 86b427cc4d Lint 5 years ago
Mikunj d10a8f0a6f Added setting to disable checking for auto updates. 5 years ago
Mikunj d5bb069207 Cleanup unused functions 5 years ago
Mikunj 6767f71a6b Make getMediaPermissions synchronous 5 years ago
Mikunj eeb6257526 Remove settings view 5 years ago
Vincent bf749b4e0b Play recording init 5 years ago
Vincent 2dc5885c88 Microphone timer 5 years ago
Mikunj Varsani 053b31ad38
Merge pull request #938 from Mikunj/github-actions
GitHub actions Part 2
5 years ago
Vince 67e3846787
Merge pull request #905 from jian10au/scaleslider
Zoom factor slider
5 years ago
Mikunj b7a1c5fd5a Remove old CI files 5 years ago
Mikunj a09e370e1d Added testing on pull request
Disable proxy in tests.
5 years ago
Vincent 548db7150d Start message selection reactification 5 years ago
Vincent 5d11ef1457 Header props 5 years ago
Vincent a5905536fa Onload scroll to unread 5 years ago
Brian Jian Zhao ccb470207a use storage instead of component state to store the zoom setting 5 years ago
Vincent 8a609efffe Scrolling stuff 5 years ago
Brian Jian Zhao 203d314254 fix the slider bug 5 years ago
Brian Jian Zhao 23da1831c2 removed unnecessary comments after review 5 years ago
Audric Ackermann f5b3eb394c
enable notifications after 10seconds of start or reconnect 5 years ago
Vincent 752ee8a614 Message conditional rendering 5 years ago
Brian Jian Zhao cb7289d3d8 working but buggy 5 years ago
Brian Jian Zhao 7a0f2c9ce3 add electron webFrame API to preloadJS 5 years ago
Brian Jian Zhao b2322bae02 check to whether the zoomFactor is shown in preload.js 5 years ago
Brian 96e9a68abd add zoomfactor to main 5 years ago
Vincent 30ccb81d3d Disappearing messages in Channel Settings panel 5 years ago
Vincent cf0b9e45fa Emoji spacing & message highlight formatting 5 years ago
Vincent 2101abb911 Modal blurs and stylistic simplifications 5 years ago
Vincent b4c6c37b16 constants renaming 5 years ago
Vincent 4fd2126fbe Fileserver update 5 years ago
Vincent 250a3ad6c1 Closed groups overlay integration 5 years ago
Ryan Tharp d0cc5a57f8
Merge pull request #759 from neuroscr/tls-fix
Move disable TLS rejection to only lokiRpc
5 years ago
Ryan Tharp ed41e562c5
enable useSealedSender too per Maxim 5 years ago
Ryan Tharp 3964e9acf0
Merge branch 'clearnet' into tls-fix 5 years ago
Ryan Tharp 1d03b3a68e
Desktop: enable useSnodeProxy feature flag 5 years ago
Vince 5bbd136493
Merge pull request #758 from neuroscr/version-check
Version check, de-signal.org-ification
5 years ago
Vincent c0a33a630f Join channel generalisation 5 years ago
Vincent 2d4bf2b3e2 Complete conditional message onboarding 5 years ago
Maxim Shishmarev 3f58dea035 Remove mixpanel 5 years ago
Ryan Tharp 615a41fa21
Merge branch 'clearnet' into tls-fix 5 years ago
Maxim Shishmarev 02320334f0 Remove P2P 5 years ago
Ryan Tharp 04e1d58a50 remove ugly TLS hack 5 years ago
Ryan Tharp acf4529904 expose semver and LokiAppDotNetServerAPI because we can't get ourKey from storage early enough 5 years ago
Vince 310038ec31
Merge pull request #748 from loki-project/brand-redesign
Brand redesign
5 years ago
Audric Ackermann d68aeb947e
Merge branch 'clearnet' into brand-redesign 5 years ago
Maxim Shishmarev b405b150cc Sealed sender support 5 years ago
Ryan Tharp 11359fc037
Merge branch 'clearnet' into fileproxy 5 years ago
Vincent 4a7e2dece7 Password lock screen and delete data screen 5 years ago
Vincent 0a525629ee Prevent illegal username and passwords 5 years ago
Vincent 56b1bcac01 Partial copy updates 5 years ago
Vincent 4fe82d28d9 Version info 5 years ago
Vincent 010cf045cb optimisation of ternary & binary expr. 5 years ago
Vincent e065cc404f Password set, change and remove complete 5 years ago
Vincent 35d59c75eb Password set, change and remove complete 5 years ago
Vincent c26097554f settings optimisations 5 years ago
Vincent d217c76647 mergable settingsview 5 years ago
Vincent cc3e206504 stagepoint sessionsettings bak 5 years ago
Vincent 8de2ce9e23 Theme toggle and settings abstraction 5 years ago
Maxim Shishmarev a195c98061 Add a feature flag for snode proxy 5 years ago
Audric Ackermann 8d11553fe5 add a *ignore* method to Promise to make tslint happy 5 years ago
sachaaaaa db0068b429 Sending and handling of special UNPAIRING_REQUEST message 5 years ago
Beaudan Brown 56a1c31bf4 Ensure we can still send messages to ourselves (sync) and disable group chats 5 years ago
Beaudan Brown 685ada5cc5 Merge branch 'clearnet' into prep-merge 5 years ago
Beaudan Brown b7dd4257d6 Disable microphone button when you have disabled permissions 6 years ago
sachaaaaa 5529deb019
Merge pull request #602 from sachaaaaa/unpairing_device
[multi-device] Allow unpairing device
6 years ago
sachaaaaa 3f52b9df93 Make unpairing a toggle-able feature (enable with window.lokiFeatureFlags.multiDeviceUnpairing = true) 6 years ago
Beaudan Brown 41fdcef695 Ensure that we can't miss the apisReady event and only listen for single emit 6 years ago
Maxim Shishmarev f4ed8b2bf3 Add a feature flag for private group chats 6 years ago
Maxim Shishmarev 0df5214979 Limit small private groups to 10 members 6 years ago
Beaudan Brown 6a512503f0 Update display name sanitisation to allow a bunch of languages and spaces 6 years ago
Beaudan Brown 4e70b66131 Extract the async token grab from the server api constructor and put in the factory. Fix up the areas this affects 6 years ago
Beaudan Brown 5d2f7ddb20 Add messages needed for UI, bit of house work 6 years ago
Maxim Shishmarev 4e39f1e0eb When composing: show mentions as profile names and treat them as indivisible elements 6 years ago
sachaaaaa a931b2491a Merge branch 'clearnet' into PR_file_server
* clearnet:
  lint pass 2
  lint pass 1
  make sure versioning on write can't get out of sync
  Update js/modules/loki_public_chat_api.js
  Handle annotations omit correctly
  fix typo CI found
  refactor
  pollOnceForMessages() move lastGot up, address Sacha's review
  Update js/modules/loki_public_chat_api.js
  address reviews
  Custom message rendering of mentions
  lint and remove unneeded params
  modernize annotations since we're making a backward-incomp change
  sign and only show verified messages

# Conflicts:
#	js/modules/loki_public_chat_api.js
6 years ago
sachaaaaa b13a4f3e56
Merge pull request #520 from msgmaxim/mentions2
Custom message rendering of mentions
6 years ago
sachaaaaa 7756d4f0f3 Merge branch 'clearnet' into PR_file_server
* clearnet:
  fix method
  separate out new/open, more lint/cleanup
  separate out note to self
  create window.mixpanel here
  use window.mixpanel, remove eventEmitter
  allow mixpanel to be already set up elsewhere
  Address review comments
  Add missing file in tests
  Add UI elements for searching and selecting members in a group chat
  Desktop Analytics
  Replaced value with a descriptive constant.
  Add comment to fix up confusion.
  Keep a cache of the last 5 fetched messages for public chat so we can use it to detect duplicate messages.

# Conflicts:
#	js/background.js
#	js/modules/loki_public_chat_api.js
6 years ago
Maxim Shishmarev 687e9db77b Custom message rendering of mentions 6 years ago
Ryan Tharp 3150a6ce11 separate out new/open, more lint/cleanup 6 years ago
Ryan Tharp 587df45086 create window.mixpanel here 6 years ago
sachaaaaa e07f81c150 Add LokiFileServerAPI 6 years ago
Ryan Tharp 88b44390bf Desktop Analytics 6 years ago
Beaudan Brown 9beea2cbd3 Enforce curlies completely and lint with new settings 6 years ago
Mikunj 21dad58537 Linting. 6 years ago
Mikunj a89358676c Update electron-context-menu.
Only allow copying QR code since saving doesn't work.
6 years ago
Ryan Tharp c57571fdfd loki.network rss feed 6 years ago
Beaudan 014558d939 Squash and clean of old PRs, move towards sending cleartext again 6 years ago
Beaudan Campbell-Brown 73b417e605
Merge pull request #371 from BeaudanBrown/testnet
Separate testnet
6 years ago
Beaudan 492bb3723a Move pubkey truncation to loki_rpc and add window function 6 years ago
Maxim Shishmarev cdd374a4b2 Add a toggle option for typing indicators; use short ttl for them 6 years ago
Beaudan df2c4af67c Run lint and check for ip or address when removing unreachable nodes 6 years ago
Beaudan 87c5d0858c Choose a random seed node from a list for bootstrapping 6 years ago
sachaaaaa c53633e367 Clearnet p2p with https (no verification yet) 6 years ago
Beaudan d12f6b6d32 Handle swarm nodes the same for us or contacts, attach our key to message api object 6 years ago
Beaudan Campbell-Brown 971aef0c1b
Merge pull request #296 from BeaudanBrown/clearnet-seeds
Clearnet seeds
6 years ago
Beaudan Campbell-Brown 5c5155899e
Merge pull request #298 from BeaudanBrown/tls-fix
Have to put the tls setting here for some reason
6 years ago
Beaudan 6b2b9ce926 Remove default port and use port from storage server responses 6 years ago
Beaudan eea2b8e6a7 Do port null check inside rpc call 6 years ago
Beaudan 8d4bfc27c9 Have to put the tls setting here for some reason 6 years ago
Beaudan e520bf109a Persist PoW difficulty and update if get response from snodes 6 years ago
Mikunj 8808100796 Merge signal-1.24.0
# Conflicts:
#	.github/PULL_REQUEST_TEMPLATE.md
#	background.html
#	config/default.json
#	config/production.json
#	js/models/conversations.js
#	js/models/messages.js
#	js/views/conversation_view.js
#	js/views/inbox_view.js
#	js/views/settings_view.js
#	main.js
#	package.json
#	test/index.html
#	ts/components/conversation/ContactName.tsx
#	yarn.lock
6 years ago
Mikunj 3a8111020e Merge v1.23.0
# Conflicts:
#	background.html
#	package.json
#	yarn.lock
6 years ago
Mikunj e343a04eea Merge commit '18b5b7c046436f2defab2e20407e22da180bf97b' into signal-1.22
# Conflicts:
#	app/sql.js
#	background.html
#	config/default.json
#	js/background.js
#	js/models/conversations.js
#	js/models/messages.js
#	js/modules/data.js
#	js/signal_protocol_store.js
#	js/views/conversation_search_view.js
#	libtextsecure/message_receiver.js
#	libtextsecure/sendmessage.js
#	main.js
#	package.json
#	preload.js
#	test/index.html
#	ts/components/Avatar.tsx
#	ts/components/conversation/ConversationHeader.md
#	ts/components/conversation/ConversationHeader.tsx
6 years ago
Beaudan 960bd3fff2 Move JobQueue to be a module so that we can use it in preload 6 years ago
Scott Nonnenberg 5a50786e7a Lint fixes 6 years ago
Gabe Stocco 851c1a0e47 Adding right click listener for URLs and Text Selections (#3197)
* Adds right-click listener

For urls and text selections

* Fixes build-release on windows

Should still be bash compatible too

* Update context menu line

Responding to feedback from @JaredPotter
6 years ago
Beaudan 531ee92dcb Updated messenger to work with slightly different storage server API and changed swarm requests to go through storage server 6 years ago
Scott Nonnenberg c8ea2e9463 Download and install updates without the help of electron-updater 6 years ago
Scott Nonnenberg 7cfd3870d5 Escape XML delimiters for notifications on linux
Thanks to @whitequark for pointing out an inconsistency in the way that
some Linux desktop environments were displaying markup in notifications.
6 years ago
Beaudan 0d3c010cf7 I didn't realise there were 2 different windows between processes and I shouldn't have removed this 6 years ago
Beaudan Campbell-Brown 8e3542b511
Merge pull request #213 from sachaaaaa/channel_encryption
Hook up channel encryption
6 years ago
sachaaaaa 4714cafa6f
Merge pull request #238 from sachaaaaa/commit_hash_about
Show commit hash in About window for beta builds
6 years ago
sachaaaaa 37f0fced29 Show commit hash in About window for beta builds 6 years ago
Beaudan 5030ad4021 Made the slider label populate as well, plus removed redundant window function 6 years ago
sachaaaaa aa722590fa use channel encryption with storage server 6 years ago
Mikunj 75d0894104 Fixed files not included in release.
Moved node relevant stuff in libloki into its own modules folder.
6 years ago
Scott Nonnenberg ce9a52dde3 Remove unnecessary methods on window 6 years ago
Beaudan 6426a5eb9b Added ability to look up our .loki address and now send that with our LokiAddress messages 6 years ago
Beaudan 5d823de6f9 Renamed lokiSnodeAPI to start with lower case for consistency, refactor snode API to use conversation controller 6 years ago
Mikunj 725a41a8d7 Added link preview setting. 6 years ago
sachaaaaa f900a08eda
Merge pull request #177 from sachaaaaa/merge_1_21_0
Merge Signal 1.21.0
6 years ago
sachaaaaa a0f67c22da Merge branch 'textsecure/master' into merge_1_21_0
* textsecure/master: (26 commits)
  v1.21.0
  v1.21.0-beta.4
  Dark Theme: Preserve blue background on app loading screen
  Localization updates
  Fix width of audio player when window is very narrow
  A number of small fixes for Link Previews
  Get rid of the white flash when the app starts up (#3083)
  v1.21.0-beta.3
  Lint fixes
  Introduce new language: NB
  Fail over to all numbers in retry if errors don't have numbers
  Use the proper method for pulling attachments off disk for retry
  Fix rendering bug with verified state in updateVerified()
  Update electron-builder and electron-updater
  Ensure that dialog pops up when permissions denied for voice note
  Lint fixes
  Large update to localization strings
  Link Previews
  Ensure that blocked messages are dropped even after sealed sender
  Don't linkify quoted message contents
  ...

# Conflicts:
#	.github/PULL_REQUEST_TEMPLATE.md
#	_locales/cs/messages.json
#	background.html
#	config/default.json
#	index.html
#	js/models/conversations.js
#	js/modules/web_api.js
#	js/settings_start.js
#	js/views/conversation_view.js
#	js/views/settings_view.js
#	package.json
#	protos/SignalService.proto
#	stylesheets/_index.scss
#	stylesheets/_settings.scss
6 years ago
Beaudan 69ebf017ff Reworked loki_p2p_api to not use the window object, which means it needs to be instantiated after the storage is ready so that your pubkey can be passed in to the constructor. This makes it more modular and allows for easier testing 6 years ago
Mikunj 3c07d99a89 Fix variable names.
Fix module export to be more consistent.
6 years ago
Beaudan 07076c27ae Moved friend status to window, added start of p2p api stuff 6 years ago
Beaudan b417edfc9b Added new protos for online broadcast messages, added db hits for getting friends, local server now instantiated on the window, now sending online broadcast messages when the local server starts 6 years ago
Scott Nonnenberg 813924685e Link Previews 6 years ago
Mikunj Varsani b226feaac7
Merge pull request #148 from Mikunj/signal-1.20
Signal 1.20
6 years ago
Mikunj 69f51021b6 Travis windows fixes. 6 years ago
Mikunj 1a15ec9c15 Merge commit signal/master into signal-1.20 6 years ago
Mikunj 8c9b1a7a7a Added loki server.
Added test.
6 years ago
Mikunj e08a63d078 Merge development into lint 6 years ago
Beaudan 7b1799c418 Big ol' hunk o' chunk. Now using random.snode to populate swarm lists, now making multiple requests from said lists and they are processed as they complete rather than waiting for all to resolve 6 years ago
Beaudan 37ba762312 First stuff for contacting specific nodes for each contact. Hard coded to hit the same bootstrap node for now plus doesn't handle unreachable nodes/errors well yet 6 years ago
Mikunj 6bd2d3962e Linted files 6 years ago
Mikunj 924c51d5c7 Removed min and max clamping in code.
This should be done UI and Server side instead.
6 years ago
Mikunj 87113b6cc1 Added message ttl setting storage 6 years ago
Scott Nonnenberg e4babdaef0 Updates to backup infrastructure 6 years ago
Mikunj 3690f4acda Added timeout argument to WorkerInterface. 6 years ago
Mikunj 654b0dac84 Merge signal-master. 6 years ago
Beaudan bb3ca610ff Cleaned up utilWorker spawning 6 years ago
Beaudan 6113f13d3a Rip the worker logic out of message_receiver and add the functionality for it to work with pow. Fix pow tests to work with those changes 6 years ago
Mikunj 26ba553e6a Added menu options to set, change and remove password. 6 years ago
Mikunj f53bec38a5 Added password inputs on registration screen.
Fix case where db is deleted but password hash still remains which causes user to never register.
Allow password to have symbols and other characters.
Added more tests.

Moved passHash from config into the sqlite db.
We can do this because we assume if sql failed to initialise then the key provided was wrong and thus we can show the user the password page.
6 years ago
Mikunj 1cb09cad2a Add header options. 6 years ago
Mikunj 961eb53915 Auto-generate profile images on conversations. 6 years ago
Scott Nonnenberg 8add0ac8a1
Enable CI and packaged builds with Electron v3 (#2939)
* Update spectron to fix linux CI runs

* Point test-release grunt task at release folder

* Ensure that build folders of socks/smart-buffer are in build

* AppVeyor: windows build output folder is now release

* Travis: Force build output to release directory
6 years ago
Beaudan bed9ce5be2 Added read receipt checkbox to the settings window which enables or disables the sending and receiving of read receipts 6 years ago
Mikunj 5f4a44ba8c Remove returning models from block/unblock.
lint fixes.
6 years ago
Mikunj dbb92aa9c8 Added i18n messages. 7 years ago
Mikunj ba390e354b Added unblocking.
Added styling.

Trigger changes on both conversation and messages when we block/unblock.
7 years ago
Mikunj 4d3fb17e61 Merge branch 'sig-development' into merge/signal 7 years ago
Beaudan 3aa135fdb4 Grabbing last hash from server response. only requesting messages after the lasthash. Keeping track of lasthash for array of nodes (currently hardcoded for one) 7 years ago
sachaaaaa ad1cf94526 ES2015 classes for LokiServer and FallBackSessionCipher 7 years ago
Scott Nonnenberg 6300256a3e Gracefully shut down database operations before app exit 7 years ago
Mikunj f589fdac5c Merge signal changes into branch. 7 years ago
sachaaaaa 4b9fcb98d4 Linting and other housekeeping stuff 7 years ago
Scott Nonnenberg a7d78c0e9b Sealed Sender support
https://signal.org/blog/sealed-sender/
7 years ago
sachaaaaa 1ce29d77c3 Moved mnemonic to node side. Added sc_reduce32 (asm) to generate privkey. Moved mnemonic languages to separate files. 7 years ago
sachaaaaa a418a9d23b allow registering using a mnemonic word list (seed used as privKey for now) 7 years ago
sachaaaaa 1e14022e2f Add skeleton for Loki Message API. Wrap data in json (for now?) 7 years ago
Scott Nonnenberg 5933a34a18 Use window.log in browser context, turn on console eslint rule 7 years ago
Scott Nonnenberg f2a63c99ed Streamline code to clean logs based on version number 7 years ago
Scott Nonnenberg c517e4193b New option: Disable spell check 7 years ago
Scott Nonnenberg 3c69886320 Finish new Message component, integrate into application
Also:
- New schema version 8 with video/image thumbnails, screenshots, sizes
- Upgrade messages not at current schema version when loading messages
  to show in conversation
- New MessageDetail react component
- New ConversationHeader react component
7 years ago
Scott Nonnenberg d8e5e5fcf2 Open separate windows with theme, update settings theme on change 7 years ago
Scott Nonnenberg ad4387803b New media permission, show dialog when not enabled for voice msg
UI now in separate renderer:
  - the permissions popup
  - settings dialog
  - debug log dialog
  - about window

Couple bug fixes:
  - About Window: Fix 'escape' to close window
  - Remove outdated dist/copy tasks from Gruntfile

Eslintified settings_view.js
7 years ago
Scott Nonnenberg 91e7155736
Restore version/environment details to about window (#2477) 7 years ago
Scott Nonnenberg 8eeaad8e18 Remove unused export/import functionality 7 years ago
Scott Nonnenberg 1c23c6a9d7 Remove window.config in favor of window.getXXX() accessors 7 years ago
Scott Nonnenberg f3bd0cf903 Refactor api.js into web_api, which encapsulates all web access 7 years ago
Scott Nonnenberg a58e94e17e Disable eval() since we never use it 7 years ago
Scott Nonnenberg 34f423b52c Remove unused code; move signal.js to js/modules for eslint
(noticed as I was doing this that signal.js doesn't get eslint coverage)
7 years ago
Scott Nonnenberg a5416e42c4 Refactor all emoji utility methods into window.Signal.Emoji 7 years ago
Scott Nonnenberg 559b2157d4 Disable window.open(); has extra Electron functionalnity
(that we never use)

https://electronjs.org/docs/api/browser-window-proxy
7 years ago
Scott Nonnenberg aa13a2c6f7 Parse phone numbers into e164 as part of schema upgrade 7 years ago
Scott Nonnenberg 9d1847a7e5 Pull all setup in preload.js into signal.js. goal: webpackable 7 years ago
Scott Nonnenberg 37821e5a1b Wire up all contact behaviors, refactor Contact type/selector 7 years ago
Scott Nonnenberg 41be7f126b Visuals for embedded contacts as well as contact detail screen 7 years ago
Daniel Gasienica a102016ed8 Port `Settings` and `OS` to TypeScript 7 years ago
Daniel Gasienica c591c3ca55 Use native notifications on all platforms 7 years ago
Daniel Gasienica d5b391757d Add `Notifications.getStatus` 7 years ago
Daniel Gasienica 1dd87ad197 Format all source code using Prettier 7 years ago
Daniel Gasienica b8d20052e1 Remove unnecessary `AttachmentTS` reference 7 years ago
Daniel Gasienica e1b620602d Display attachments from disk 7 years ago
Daniel Gasienica f56dc09d01 Add `getAbsoluteAttachmentPath` 7 years ago
Daniel Gasienica b74b761255 Implement click to save for document list 7 years ago
Daniel Gasienica 41fe50553f Replace Backbone `saveFile` with `Attachment.save` 7 years ago
Daniel Gasienica 9134701f7c Move `filesize` from Bower to npm 7 years ago
Daniel Gasienica 4a5a2cb5c1 Replace Backbone with React lightbox 7 years ago
Daniel Gasienica 4ce0472b9f Extract `Message.loadWithObjectURL` 7 years ago
Daniel Gasienica 27c4bf90e3 Add `Signal.Backbone` 7 years ago
Daniel Gasienica c46e1a1519 Move top-level functions to `Signal.Util` 7 years ago
Daniel Gasienica 32a3ef518b Render media gallery placeholder panel 7 years ago
Daniel Gasienica df2e6e7864 Port `MIME` module to TypeScript 7 years ago
Scott Nonnenberg c02860af5c
Responding to pull request review feedback
- messages.getQuoteObjectUrl: early return
- backup.js: explaining variables for long if statement
- types/messages.js: Log if thumbnail has neither data nor path
- sendmessage.js:
  - remove extraneous logging
  - fix indentation
  - upload attachments and thumbnails in parallel
- preload: don't load fs for tests, just fse
- _conversation.scss: split two selectors into two lines, 0px -> 0
- backup_test.js: use fse.existsSync and comment twoSlashes regex
- network_tests_view_test.js: Comment duplicate assignment to window.getSocketStatus
7 years ago
Scott Nonnenberg a7d44d3344
Backup and end-to-end test! 7 years ago
Scott Nonnenberg 5412ce051e
preload.js: Fix quote support, load Quote properly 7 years ago
Scott Nonnenberg b4ce79cac0
Reply -> Quote 7 years ago
Daniel Gasienica ad05efb7a0 Expose `Signal.Types.Conversation` 7 years ago
Daniel Gasienica 55fc21505e Rename `ts/test` to `ts/styleguide` 7 years ago
Daniel Gasienica ac50713f86 Improve auto-linking of URLs in messages
Fixes #598.
7 years ago
Scott Nonnenberg c6c3b65bbc
Introduce React, TypeScript, TSLint and React-StyleGuidist (#2219)
Quite a bit of change here.

First, the basics:

- New dependencies were added: react, typescript, tslint, and react-styleguidist
- A new npm script: transpile. It uses typescript to process .tsx files in js/react, putting .js files next to the original file. It's part of the watch functionality of grunt dev as well as the default task run with just grunt (used to build the app prior to release). A lighter-weight to get watch behavior when just working on React components is to run yarn transpile --watch.
- yarn run clean-transpile will remove generated .js files


Style guide via react-styleguidist. Example site: https://react-styleguidist.js.org/examples/basic/

- Start with yarn styleguide
- Component.md files right next to the .tsx file
- jsdoc-style comments are picked up and added to the generated part of the styleguide - the overall summary and a table listing methods and properties of the component
- It has hot-reloading!
- It uses webpack, which means that our app now pulls in webpack though we don't use it to generate anything for the production app.
- I did a bunch of work to enable the use of Backbone views in this context, which will allow us to move smoothly from the old world to the new. First, add all the permutations in the old way, and then slowly start to re-render those same views with React.

A bit of dependency cleanup to enable use in React components:

- moment was moved from our Bower dependencies to our npm dependencies, so it can be used in React components not running in a browser window.
- i18n was moved into the new commonjs format, so it can be used in React components even if window is not available.

Lastly, a bit of Gruntfile cleanup:

- Removal of Chrome App-era modifications of background.js
- Make jshint/jscs watch more targeted, since more and more we'll be using other tools
7 years ago
Scott Nonnenberg 96bd90a4e0
Simplify assignment; add warning to preload.js about Style Guide 7 years ago
Scott Nonnenberg 05303233fb
window.Signal.React -> window.Signal.Components 7 years ago
Scott Nonnenberg 76be13552f
js/i18n.js -> js/modules/i18n.js 7 years ago
Daniel Gasienica 4c4443390a Rename `createImporter` to `createAttachmentDataWriter` 7 years ago
Scott Nonnenberg 893fb1cb9e
Introduce React/TypeScript/TSLint into app for new UI components
npm run transpile
  Works on files under js/react/
  Outputs files right next to the .tsx file

This is part of our `grunt dev` task, as well as the default grunt task,
which does everything else necessary to get a raw git checkout ready to
run.
7 years ago
Scott Nonnenberg f86a6ef752
Update style of i18n, pull it in via preload instead of .html 7 years ago
Scott Nonnenberg 1ad2b080c8
Move moment from bower deps to npm deps 7 years ago
Daniel Gasienica 94c75762b5 Add `Message.createAttachmentLoader` 7 years ago
Daniel Gasienica 43ab320d31 Load attachments before writing them upon export 7 years ago
Daniel Gasienica bf67254cc5 Add `Message.createImporter` 7 years ago
Daniel Gasienica efd673083d Rename `writeAttachmentData` to `writeNewAttachmentData` 7 years ago
Daniel Gasienica ce8fe0d345 Add `Signal.Startup` module 7 years ago
Daniel Gasienica 8474f3cf7f Use `create*` prefix to clarify curried functions 7 years ago
Daniel Gasienica 6e6b93d917 Run ESLint on `preload.js` 7 years ago
Daniel Gasienica 805031ade8 Conditionally run post-attachment migrations
Introduce placeholder migrations for Backbone models so they never implicitly
run migrations whenever they are `fetch`ed. We prefer to run our migrations
explicitly upon app startup and then let Backbone models be (slightly) dumb(er)
models, without inadvertently triggering migrations.
7 years ago
Daniel Gasienica d3c9de4712 Add debug module
Lets us generate large conversations with large attachments.
7 years ago
Daniel Gasienica ce8fd3d847 Expose `Signal.Settings` module 7 years ago
Daniel Gasienica 02354ce655 Expose `Signal.Database` module 7 years ago
Daniel Gasienica a18e462817 Move migrations to `Signal.Migrations` 7 years ago
Daniel Gasienica c765422fa1 Extract `deferredToPromise` 7 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.
7 years ago
Daniel Gasienica add19aa732 Add initialization view 7 years ago
Daniel Gasienica 1c4b7eb01c Make namespace generation clearer
Let’s make it clear that this is where we initialize our namespaces to avoid
proliferation of various initialization points now that we support CommonJS.
7 years ago
Daniel Gasienica 7c2fde4433 Add `Signal.Workflow` namespace 7 years ago
Daniel Gasienica 5c9f18e1ae Wire up background message migration 7 years ago
Daniel Gasienica d13668544d Rename `IdleListener` to `IdleDetector` 7 years ago
Daniel Gasienica 92ace67846 Start idle listener on startup 7 years ago
Daniel Gasienica 0c06fff47b Wire up `Message` / `Attachment` migration functions on startup
Makes `migrationContext` obsolete.
7 years ago
Daniel Gasienica 9d25aa4e43 Delete attachment files on disk upon message delete 7 years ago
Daniel Gasienica 1c8123ff1a Move `writeAttachmentData` into `Attachments`
Encapsulates all attachment operations that require Node.js / Electron APIs,
e.g. file system access.
7 years ago
Daniel Gasienica e0428355be Wire up `writeAttachment` 7 years ago
Scott Nonnenberg cea42bde7d
Encryption support for backup and restore
Also moved to the _ prefix in backup.js for all private methods exported
for testing.
7 years ago
Scott Nonnenberg e583434366
Refactor: Move Backup under window.Signal 7 years ago
Daniel Gasienica ac31dcbd75 Expose `Signal.Migrations` namespace 7 years ago
Scott Nonnenberg 26c273618a
Refactor: db tasks to database.js, log delete to modules/logs.js 7 years ago
Scott Nonnenberg 3a151393c5
Move wrapDeferred from background.js to preload.js
It's necessary anywhere that will have to deal with Deferreds.
7 years ago
Scott Nonnenberg 928906e0f3
Enable deletion of all logs on disk via IPC 7 years ago
Daniel Gasienica 289063b24b Expose `Signal.Types.Errors` 7 years ago
Daniel Gasienica 21339c6866 Add `Settings` type 7 years ago
Daniel Gasienica 91daedd619 Add `OS` module 7 years ago
Daniel Gasienica 3df22026ab UX Improvements: Global Menu & Copy Changes (#2078)
- [x] Removed ‘Restart Signal’ global menu item
- [x] Change _Click to create contact…_ to _Start conversation…_
- [x] Move global menu (top-left kebab) into OS menu bar,
      i.e. **Settings** > **Preferences…**
- [x] Add tests for OS menu bar templates
- [x] Fix bug with **Window** menu on macOS when showing setup options
- [x] Use _Title Case_ for all OS menu bar menu items for consistency

commit dedf7c9af0de90980388559659df0d92a77b864c
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:53:42 2018 -0500

    Use ‘Title Case’ to be consistent with OS menus

    References:
    - Apple:
        - https://developer.apple.com/macos/human-interface-guidelines/menus/menu-anatomy/#menu-and-menu-item-titles
        - https://developer.apple.com/library/content/documentation/FinalCutProX/Conceptual/FxPlugHIG/TextStyleGuidelines/TextStyleGuidelines.html#//apple_ref/doc/uid/TP40013782-CH6-SW1
    - https://titlecaseconverter.com/

commit 3286da29b334bd4526c587b17707c2f230cec8f5
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:36:50 2018 -0500

    Fix bug for macOS ‘Window’ menu with setup options

commit 236a23d1eafe2a16073394a27b9013298b682a25
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:27:46 2018 -0500

    Test menus with included setup options

commit c5d5f5abb8d7f52d6a4aa182a86c92f7ddceade0
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:10:27 2018 -0500

    Move settings (‘Preferences’) into OS-level menu

    This reduces our reliance on custom UI until we have more design resources.

commit 027803f8f4983cffa443f0beff1854dcf541689b
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 16:02:56 2018 -0500

    Prepare tests for menu with/without included setup

commit 9e2f006924b85eb249a8a1261c1c4dd1a706afa6
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 15:55:46 2018 -0500

    Destructure `includeSetup`

commit 6b2a1eccdf724fd722e58415d2700da73942d9e8
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 15:55:14 2018 -0500

    🔤 `createTemplate` `options`

commit c2fecba34b153fed106f414ed3347d46299f6fe5
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:49:55 2018 -0500

    Test menu for Windows and Linux

commit 60281b1af9ad1f022cdbc40711ebd0b688a7355d
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:40:39 2018 -0500

    Add `yarn run test-app` command

commit 1a0489919c0a97b03fe88196260fef894fb3d9e4
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:40:29 2018 -0500

    Add test for `SignalMenu.createTemplate` on macOS

commit 9638b86c0f00f231e44562a5aa01626f0e5fdd8b
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 12:34:46 2018 -0500

    Make `createTemplate` pure

    Extracting `options.platform` makes it easier to test without having to
    stub `process.platform`.

commit 9c26404892d7c9a7bd0199a9e8367a165a3b365c
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:47:39 2018 -0500

    Extract `locale.load` `appLocale` & `logger` for testability

    This allows us to run this code in a non-Electron environment, e.g. Node.js
    Mocha test suite.

commit 710b22438df25c8d5e8431845a035c55ec8fc0b7
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:46:13 2018 -0500

    🔤 npm scripts

commit 9ae22937fbce078f91443023b560b3c0468c1380
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:45:30 2018 -0500

    Use 2-space indendation for `app` module tests

commit 22c26baf6159bd2e1f5a787c10e2260f09395329
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:22:55 2018 -0500

    Prefer named exports

commit 9c9526195266ac77ac2ca04135a1e675f617dfd2
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:22:46 2018 -0500

    🔤 Organize `require`s

commit 2f144d24d9e9a9ef72fe418996e3c911b304b00a
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 27 11:13:50 2018 -0500

    Remove existing global hamburger menu

    This will be replaced by a OS-level ‘Preferences’ menu.

commit f5adb374cb742e5f319ececda8ab6d8adee88d7e
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Mon Feb 26 18:40:54 2018 -0500

    Remove ‘Restart Signal’ menu from settings

    Apparently, this is a remnant from the Chrome web application.

commit d7a206bc8e67ef44022085e804ca040ed1b219f7
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Mon Feb 26 17:16:49 2018 -0500

    Clarify label for starting a new conversation

    When user a enters a number that is not a contact, we prompt them to start a new
    conversation.

commit 715a4064367fb61d85c1a4f9d48261b2ce002435
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Mon Feb 26 16:46:26 2018 -0500

    Use ‘Enter name or number’ as prompt’

    This follows implementation of Android and recommendation from Alissa.
7 years ago
Scott Nonnenberg 426dab85a2
New design for import/install, 'light' import (#2053)
- A new design for the import flow. It features:
  - Icons at the top of every screen
  - Gray background, blue buttons, thinner text
  - Simpler copy
- A new design for the install flow. It features:
  - Immediate entry into the QR code screen
  - Animated dots to show that we're loading the QR code from the server
  - Fewer screens: 1) QR 2) device name 3) sync-in-progress
- When not set up, the app opens directly into the install screen, which has been streamlined. The `--import` command-line argument will cause the app to open directly into the import flow.
- Support for two different flavors of builds - the normal build will open into the standard registration flow, and the import flavor will be exactly the same except during setup it will open directly into the import flow.
- A new design for the (dev-only) standalone registration view
- When these install sequences are active, the OS File menu has entries to allow you to switch the method of setup you'd like to use. These go away as soon as the first step is taken in any of these flows.
- The device name (chosen on initial setup) is now shown in the settings panel
- At the end of a light import, we hand off to the normal device link screen, starting at the QR code. On a full import, we remove the sensitive encryption information in the export to prevent conflicts on multiple imports.
- `Whisper.Backup.exportToDirectory()` takes an options object so you can tell it to do a light export.
- `Whisper.Backup.importFromDirectory()` takes an options object so you can force it to load only the light components found on disk. It also returns an object so you can tell whether a given import was a full import or light import.
- On start of import, we build a list of all the ids present in the messages, conversations, and groups stores in IndexedDB. This can take some time if a lot of data is in the database already, but it makes the subsequent deduplicated import very fast.
- Disappearing messages are now excluded when exporting
- Remove some TODOs in the tests
7 years ago