Commit graph

3887 commits

Author SHA1 Message Date
Daniel Gasienica
be5cbc9d2b Move ESLint environment configuration into .eslintrc (#2051) 2018-02-15 15:12:20 -05:00
Daniel Gasienica
b6ef67c402 Sync Protocol Buffers with libsignal-service-java (#2046)
Synchronizes our protocol buffers with `libsignal-service-java` project.

**Changes**
- [x] **BREAKING:** Rename `package` from `textsecure` to `signalservice`.
      ⚠️~~Workaround: Rename back to `textsecure`.~~
      Changed all protobuf `package` names across our project.
- [x] Rename `java_` metadata.
- [x] Move `NullMessage`, `ReceiptMessage`, and `Verified`.
- [x] Rename `Contacts.isComplete` to `Contacts.complete`. Confirmed to be
      unreferenced in our project.
- [x] Rename `Settings` to `Configuration` (`textsecure.protobuf.Settings` seems
      to be unused)
  - [x] Rename `libtextsecure` `MessageReceiver` `settings` event to
        `configuration`.
- [x] Rename `ReceiptMessage.timestamps` to `ReceiptMessage.timestamp`.
- [x] Add `AttachmentPointer` `width` and `height`.
- [x] Renamed `IncomingPushMessageSignal.proto` to `SignalService.proto` to
      match server.

---

commit 2b6aa19bf9ea5d8f2f4fd9e4102699a9d06a2b45
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Wed Feb 14 19:41:24 2018 -0500

    Rename protobuf `package`: `textsecure` --> `signalservice`

    Brings us closer to `libsignal-service-java`.

commit 91612880a5bf2c9ae8a9334877ac24e91102b905
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Wed Feb 14 19:19:35 2018 -0500

    Rename `SyncMessage.Settings` to `SyncMessage.Configuration`

commit 848eb9559928c54dffd3426bba8e7cd7b1687cdc
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 13 20:16:43 2018 -0500

    Rename `ReadReceipt` `timestamps` --> `timestamp`

commit 39859e64b41ddf41127b52d963fe7cc2b9fcad68
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Wed Feb 14 18:43:42 2018 -0500

    Rename `IncomingPushMessageSignal.proto` to `SignalService.proto`

    This matches the `libsignal-service-java` filename.

commit fd4bfd76af57ffa44178caf21d350cca211dc048
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 13 16:24:36 2018 -0500

    Revert protobuf `package` to `textsecure`

    This was a breaking change and would need to be introduced with additional
    changes.

commit 9f618fa91717a0349f1ea28bf6d365ef0a5c9ca5
Author: Daniel Gasienica <daniel@gasienica.ch>
Date:   Tue Feb 13 16:09:55 2018 -0500

    Sync service protocol buffers with Java project

    Snapshot: 4684a49b2e/protobuf/SignalService.proto
2018-02-15 15:06:14 -05:00
Scott Nonnenberg
3a159d5cb8
v1.4.0-beta.1
Update electron to 1.7.12 (#2029)

Fixed: incoming messages sometimes didn't appear at all (#2050)

Fixed: 'Cannot find module ./app/locale' error popup when attempting to
start another instance of the app on Windows (#2017)

Fixed: Setting NODE_ENV environment variable to 'development' would
point it at staging servers (#2010)

'Restart' -> 'Restart Signal' button in update dialog, thanks @StevenXL
(#2024)

Set conversation disappearing messages state and contact block state on
initial link (#1980)

Dev:
  - Update to libsignal-protocol-javascript v1.3.0 (#2050)
  - Make our binary comparisons constant time (#2047)
  - Fix typo in issue template (#2020)
  - Update to new signal branding (#2018)
2018-02-14 12:38:37 -08:00
Scott Nonnenberg
391ec29f8d
Update to libsignal-protocol-javascript v1.3.0 (#2050) 2018-02-14 12:24:17 -08:00
Scott Nonnenberg
2cfdaca3c1
Make our binary comparisons constant time (#2047) 2018-02-14 12:15:26 -08:00
Scott Nonnenberg
4033a9f813
Fix typo in issue template (#2020) 2018-02-02 10:43:48 -08:00
Scott Nonnenberg
7ceeb8bac4
Update electron to 1.7.12 (#2029) 2018-02-02 10:04:38 -08:00
Steven Leiva
742fe73d34 'Restart' -> 'Restart Signal' button in update dialog (#2024) 2018-02-01 11:35:15 -08:00
Scott Nonnenberg
56932ead99
v1.3.0
Update to Electron 1.7.11 (#1996)

Fixed: Crash during input via Chinese IME on Mac (#1996)

Fixed: Expired disappearing messages would sometimes remain in
conversation (#1983)
2018-01-30 14:28:55 -08:00
Scott Nonnenberg
f214d0a3e1 v1.3.0-beta.1
Update to Electron 1.7.11 (#1996)
 
 Fixed: Crash during input via Chinese IME on Mac (#1996)
 
 Fixed: Expired disappearing messages would sometimes remain in
 conversation (#1983)
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iF4EABEIAAYFAlpqO/oACgkQpJMcCWRMZUupvQEAxJqYSaZZIfb+KZM0B6UqXiUT
 KbgZL4+HMKcNHAepgE8BAJ8cGrbcFgXQ0ZQl3KvLwZL1vJlBnMzQep9tyELcPR4K
 =1e19
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iF4EABEIAAYFAlpw8WwACgkQpJMcCWRMZUtNnAD9H7zRkXxo5cce0A2AVNDhZMXX
 V9aQJ8SsAEvMDHBUHRwA/ifRzKM2ywoPVdJzjDsCpsS9GApd2QpQ5oq720kt6LuI
 =5/BP
 -----END PGP SIGNATURE-----

Merge tag 'v1.3.0-beta.1'
2018-01-30 14:27:26 -08:00
Scott Nonnenberg
7b49180bc0
Big update to new signal branding (#2018) 2018-01-30 14:22:51 -08:00
Scott Nonnenberg
c64f0fc75e
app.quit() -> app.exit(), immediate app close on second instance (#2017) 2018-01-30 10:55:49 -08:00
Scott Nonnenberg
72b7e4ec34
Process expireTimer and block status along with contact/group sync (#1980)
* Mark group as left = false if it is active in contact sync

* Handle expireTimer + blocked state along with contact/group sync
2018-01-29 18:14:39 -08:00
Scott Nonnenberg
3f0354f09e
Harden production against NODE_ENV environment variable (#2010)
Fixes #1999
2018-01-29 16:57:49 -08:00
Scott Nonnenberg
9d9991e0f3
v1.3.0-beta.1
Update to Electron 1.7.11 (#1996)

Fixed: Crash during input via Chinese IME on Mac (#1996)

Fixed: Expired disappearing messages would sometimes remain in
conversation (#1983)
2018-01-25 10:57:41 -08:00
Scott Nonnenberg
5f73cb8069
v1.2.0
_Note: This release is equivalent to [v1.2.0-beta.2](https://github.com/WhisperSystems/Signal-Desktop/releases/tag/v1.2.0-beta.2). Listed below are the changes from the previous production release: [v1.1.0](https://github.com/WhisperSystems/Signal-Desktop/releases/tag/v1.1.0)_

Update to Electron 1.7.10 (#1919)

Fixed: clicking Windows notification would break window out of aero-snap location (#1918)

Fixed: forwarded video would not play (#1977)

Fixed: conversation was inaccessible if group member had invalid phone number (#1968)

Fixed: powershell warning caused cert validation of downloaded update to fail on windows (#1976)

Fixed: 'Missing signed prekey' errors after re-link (#1979)

Fixed: data older than three days would persist in logs dir (#1945)

Fixed: in the middle of send, disabled send field could be edited after click (#1937)

Update strings (#1921)

Add badge with unread count to the tray icon - thanks @m-pilia (#1934)
_Note:_ to try this test feature out, use the `--use-tray-icon` and `--start-in-tray` command-line arguments

Dev:
  - Additional logging for unexpected situations during sort of conversation list (#1969)
  - Dependency updates, fixes required for successful release (#1966 and #1976)
  - Log more info along with http errors (#1968)
  - Fix error to console when verifying contact in standalone mode (#1961)
  - Remove all built assets from repo (#1955)
  - Log out information from DOMException when import fails (#1923)
  - Log clearer messages regarding prekey/signed prekey fetches (#1961)
  - Make errors more debuggable; capture correct stack, include name (#1944)
  - Add eslint/mocha with code coverage for non-browser code (#1945)
  - Revamped github issue and pull request templates, updates to contributing.md/readme.md (#1955 and #1956)
  - Document building/testing releases in Contributing.md, thanks @veggiedefender (#1867)
  - Update a number of dependencies to the latest: builder, websocket, spellcheck (#1920)
2018-01-23 13:57:03 -08:00
Scott Nonnenberg
5bb6b2f77f
Update to latest Electron 1.7.x (#1996)
Fixes #1991, related to IME input on Mac.
2018-01-23 13:48:30 -08:00
Scott Nonnenberg
fb2ebddaa3
Remove expired message if it expired during database fetch (#1983)
* Log SyncMessage destination, even if it's a group

* Remove disappearing message even if deleted during fetch

This change fixes a potential race condition with disappearing message
removal from the UI. If the UI is in the middle of making a database
request for messages to display, then we need to wait for that to
complete before removing the newly-deleted expired message.
2018-01-23 12:27:34 -08:00
Scott Nonnenberg
b2a3a0e679
v1.2.0-beta.2
Fixed: forwarded video would not play (#1977)

Fixed: conversation was inaccessible if group member had invalid phone
number (#1968)

Fixed: powershell warning caused cert validation of downloaded update to
fail on windows (#1976)

Fixed: 'Missing signed prekey' errors after re-link (#1979)

Add badge with unread count to the tray icon - thanks @m-pilia (#1934)
  Note: to try this test feature out, use the
   `--use-tray-icon` and `--start-in-tray` command-line arguments

Dev:
- Additional logging for sort of conversation list (#1969)
- Dependency updates, fixes required for successful release
  (#1966 and #1976)
- Log more info along with http errors (#1968)

Note: 1.2.0-beta.1 was never released - changes here:
  https://github.com/WhisperSystems/Signal-Desktop/releases/tag/v1.2.0-beta.1
2018-01-17 16:10:52 -08:00
Scott Nonnenberg
33fd9c5dd4
Account setup: confirm first signed prekey, clear prekeys (#1979) 2018-01-17 15:28:32 -08:00
Scott Nonnenberg
c70fb3a254
Video/audio: rely on the browser to detect content type (#1977) 2018-01-17 15:28:12 -08:00
Martino Pilia
7034d8759d Add badge for unread messages to the tray icon (#1934)
This commit adds a badge to the tray icon that displays the number of
unread messages, if there is any. It is implemented by providing
alternative versions of the icon, that replace the default image when a
message is received.

The badge is rendered graphically as a red circle containing the number
of unread messages. Since a different icon file is needed for each
possible number of unread messages, but this number is clearly
unbounded, only the numbers from 1 to 9 are provided. If there are 10 or
more unread messages, a single badge (depicted as "9+") is used.

Resolves #1917
2018-01-17 15:27:58 -08:00
Scott Nonnenberg
9ef8228ff8
Update electron-builder to latest, with .ico fix (#1976) 2018-01-17 15:27:18 -08:00
Scott Nonnenberg
743e897541
Left pane: small sorting fix, logging for error cases (#1969) 2018-01-12 16:22:00 -08:00
Scott Nonnenberg
ce01eb7913
Log more info w/http errors, resilient to invalid group members (#1968)
* api.js: HttpError now preserves more of original error info

* Allow invalid conversation to be added to ConversationController

If a number we don't believe is valid comes in as part of a group, we
fall apart. We event prevent display of that conversation. Because we
have 'isValid()' protections in place for the places we create contacts
from user input in desktop (the search bar), we can temporarily add an
invalid contact to our collection (not saving it to the database) to
unblock this group scenario.

Still investigating what kind of phone number is valid in a mobile app
but not valid for us.

* Finish the debuggable error support

* Fix logging in the case of an invalid number
2018-01-12 16:19:26 -08:00
Scott Nonnenberg
177dfb3220
Dependency updates, fixes required for successful release (#1966)
* A number of fixes required for successful build after upgrades

- extract now takes an absolute directory only
- something changed, so we now need to force NODE_ENV=production; we use
  electron-is-dev for this
- electron-builder, electron-publisher-s3, and electron-updater are now
  updated to their latest available versions

* Add direct dependency on extract-zip, since we use it directly

* Load 'config' module after we've modified NODE_ENV

* Downgrade electron-builder due to bug, downgrade icon-maker too

The latest electron-builder came with a fix for one of our bugs as well
as a new bug that blocks builds on Windows: https://github.com/electron-userland/electron-builder/issues/2462

There's no good reason to upgrade icon-maker. And a good reason to keep at the version on github: https://github.com/jaretburkett/electron-icon-maker/issues/7
2018-01-12 16:14:45 -08:00
Scott Nonnenberg
d81943cf20
v1.2.0-beta.1
Update to Electron 1.7.10 (#1919)

Fix issue where clicking Windows notification breaks window out of
aero-snap location (#1918)

Fix issue where old log data would persist in logs dir (#1945)

Fix issue where disabled send field (in the middle of send) could be
edited after click (#1937)

Update strings (#1921)

Dev:
  - Fix error to console when verifying contact in standalone mode
    (#1961)
  - Remove all built assets from repo (#1955)
  - Log out information from DOMException when import fails (#1923)
  - Log clearer messages regarding prekey/signed prekey fetches (#1961)
  - Make errors more debuggable; capture correct stack, include name
    (#1944)
  - Add eslint/mocha with code coverage for non-browser code (#1945)
  - Revamped github issue and pull request templates, updates to
    contributing.md/readme.md (#1955 and #1956)
  - Document building/testing releases in Contributing.md,
    thanks @veggiedefender (#1867)
  - Update a number of dependencies to the latest: builder, websocket,
    spellcheck (#1920)
2018-01-10 18:17:09 -08:00
Scott Nonnenberg
bbab4bba10
Fix device ID check, clean up prekey fetch logging (#1961)
* DeviceId is a string, so we use the less-strict comparison

* Clean up prekey fetch logging
2018-01-10 18:12:24 -08:00
Scott Nonnenberg
9b2e2a4605
Readme: big install, Contributing: mention Next Steps project (#1956) 2018-01-10 17:47:22 -08:00
Scott Nonnenberg
d503d1ace3
Remove built assets from repo, updates to docs + GH templates (#1955)
* Revamp issue and pull request templates, other docs tweaks

`yarn test` now runs all of our tests.

* Remove generated files from the repository

* Update to new Signal support URL

* Prevent the 'Test failed 2 == 1' from test-release in CI

* Another attempt to fix grunt test-release on Appveyor

* grunt test-release: Fail build if test fails

* Lint fix, and move jshint earlier in CI process
2018-01-09 15:31:23 -08:00
Jesse Li
752ef40d47
Document building/testing releases in Contributing.md (#1867)
* Document building/testing releases

* move instructions for testing releases to bottom
2018-01-08 13:56:30 -08:00
Scott Nonnenberg
64fe9dbfb2
Clean logs on start - and eslint/mocha with code coverage (#1945)
* Clean logs on startup; install server-side testing/linting

* Add eslint config, make all of app/ conform to its demands

* Add Node.js testing and linting to CI

* Lock project to Node.js 7.9.0, used by Electron 1.7.10

* New eslint error: trailing commas in function argumensts

Node 7.9.0 doesn't like trailing commas, but Electron does

* Move electron to devDependency, tell eslint it's built-in
2018-01-08 13:19:25 -08:00
Scott Nonnenberg
6464d0a5fa
Make errors more debuggable; capture correct stack, include name (#1944)
No more errors like this in the logs!

```
INFO  2018-01-05T18:33:15.942Z Message.saveErrors: null Error
    at file:///C:/Users/Test/AppData/Local/Programs/signal-desktop/resources/app.asar/js/libtextsecure.js:30:33
    at file:///C:/Users/Test/AppData/Local/Programs/signal-desktop/resources/app.asar/js/libtextsecure.js:138:3
    at file:///C:/Users/Test/AppData/Local/Programs/signal-desktop/resources/app.asar/js/libtextsecure.js:40718:3
```

It has no information in the title, and then the callstack points to
the `new Error()` line in the old `errors.js`.

This change will include the actual error name and message details in
the stack, and will include the original http error stack as well if
provided.
2018-01-08 11:08:25 -08:00
Scott Nonnenberg
94a8c7e524
Update a number of dependencies to the latest: builder, websocket, spellcheck (#1920)
* Update builder to the latest

* Upgrade a number of dependencies
2018-01-08 10:48:15 -08:00
Scott Nonnenberg
e999473f19
Preserve disabled state in the middle of sending message (#1937)
* Preserve disabled state in send-message field on click

Also: get consistent in treatment of 'disabled' property.

* Add some comments explaining how audio recording dismissal works
2018-01-04 16:51:00 -08:00
Scott Nonnenberg
98d3a5e607
Update strings for just about all supported languages (#1921) 2018-01-04 16:28:53 -08:00
Scott Nonnenberg
66aa76e501
Log out information from DOMException when import fails (#1923)
This should give us the information we're looking for when imports fail
mysteriously!

https://developer.mozilla.org/en-US/docs/Web/API/DOMException
2018-01-04 16:26:41 -08:00
Scott Nonnenberg
8fd0adc486
Update to Electron 1.7.10 (#1919) 2018-01-04 16:20:41 -08:00
Scott Nonnenberg
deb9bab086
Remove duplicate showWindow method (#1918) 2018-01-03 18:18:13 -08:00
Scott Nonnenberg
2bd27941c0
v1.1.0
Note: This release is the same thing as https://github.com/WhisperSystems/Signal-Desktop/releases/tag/v1.1.0-beta.6

Listed below are the changes from the previous production release: https://github.com/WhisperSystems/Signal-Desktop/releases/tag/v1.0.41

Update to electron 1.7.9 (#1736)

Support the latest phone number formats via libphonenumber update (#1899)

Reduce download size by ~25MB over the previous production build (#1869)

Emoji - thanks @liliakai:
  - Emoji picker (#1608)
  - Add support for Emoji 5 (#1797)

Notifications:
  - Windows 7: Use an alternate mechanism for notifications (#1812)
  - Prevent drawAttention() when notifications are turned off - thanks @canerelci! (#1612)

Linux:
  - Support for current (artful) and previous (xenial) ubuntu versions (#1856)
  - Fix missing application icon on some Linux distributions (#1735)
  - Fix issue where window would not show new message alerts on some Linux systems - thanks @cornerman (#1820)
  - Add .deb specific dependencies - thanks @veggiedefender (#1858)

The default button is now 'later', not 'restart' in the 'update available' dialog (#1894)

Make the window minimum width a little smaller - thanks @emptyflask (#1863)

Intl-friendly sort order for contact lists (#1900)

Fix issue where update would restore deleted windows shortcut (#1804)

Fix issue where .tif file attachments could not be sent or received (#1901)

(in testing) Add a tray icon to the application behind command-line argument - thanks @m-pilia (#1676)
  --use-tray-icon enables the tray icon
  --start-in-tray enables the tray icon and the application starts minimized in the tray bar

(in testing) Support pass-through proxies with HTTPS_PROXY environment variable (#1878)

Dev:
  - Display of environment and app instance in title bar/about window (#1606)
  - Support for beta releases installed beside production versions (#1606)
  - Fix json parsing exceptions obscuring server errors (#1605)
  - Be resilient to thrown non-errors in import process (#1737)
2017-12-20 10:47:21 -08:00
Scott Nonnenberg
72971a365f
manifest.css catch-up 2017-12-19 17:19:21 -08:00
Scott Nonnenberg
14ec36f208
Promote v1.1.0-beta.6 to production 2017-12-19 16:50:56 -08:00
Scott Nonnenberg
250bd955a6
v1.1.0-beta.6
Fix issue where .tif file attachments could not be sent or received
(#1901)

Support the latest phone number formats via libphonenumber update
(#1899)

Intl-friendly sort order for contact lists (#1900)

Show window if hidden to tray when second instance attempts to start
(#1897)

Make the window minimum width a little smaller - thanks @emptyflask
(#1863)

Fix issue where duplicate emoji were listed in the emoji panel (#1893)

The default button is now 'later', not 'restart' in the
'update available' dialog (#1894)

Dev:
  - Add .deb specific dependencies - thanks @veggiedefender (#1858)
2017-12-14 17:47:41 -08:00
Scott Nonnenberg
7781f8fa5b
Treat tiffs like unrecognized files; Chrome doesn't render them (#1901) 2017-12-14 17:32:58 -08:00
Scott Nonnenberg
5caee59921
Support the latest phone number formats via libphonenumber (#1899)
* Update to the latest google-libphonenumber

* Update package.json to the format uses when updating it
2017-12-14 16:30:24 -08:00
Scott Nonnenberg
f0aaa7a1c5
Introduce intl-friendly sort order for contact lists (#1900) 2017-12-14 16:30:11 -08:00
Scott Nonnenberg
5cf320e429
Show window if hidden when second instance attempts to start (#1897) 2017-12-14 12:27:52 -08:00
Jesse Li
8a919efbe9 Add .deb specific dependencies (#1858)
Some barebones debian-based systems (e.g. Docker containers) don't come with the libasound2 and libxss1 libraries, which electron-builder does not include by default.
2017-12-14 11:32:04 -08:00
Jon Roberts
bc399c6777 a slightly more reasonable min-width (#1863) 2017-12-14 11:31:07 -08:00
Scott Nonnenberg
18ee8a3557
Remove obsolete emoji via a new fork of emoji-panel (#1893)
In many cases this removes generic emoji in favor of new gendered
options (one of which was a copy of the previous generic emoji anyway).
2017-12-14 11:30:41 -08:00