Commit Graph

3185 Commits

Author SHA1 Message Date
Scott Nonnenberg b17a67ec65 Support pass-through proxies with HTTPS_PROXY env var (#1878)
We've simplified; HTTPS_PROXY or https_proxy is used for all requests.

We also require that only our self-signed certificates are used for
secure traffic. That rules out all SSL-terminating MITM proxies, since
we don't trust their root certificate.

Once we're sure that this system works for people, we'll improve config
on MacOS and Windows.
2017-12-08 10:38:01 -08:00
Scott Nonnenberg 4f487d208d v1.1.0-beta.4
Reduce download size by ~125MB versus the previous beta build, about
~25MB over the previous production build (#1869)

Dev:
  - Update to v1.0.41 equivalence
  (https://github.com/WhisperSystems/Signal-Desktop/commit/5bc70c35e7b5d98fc3f1d212bc331e428ba6f2e4)
  - This update to match production includes update fixes for OSX.
  Note: The transition v1.1.0-beta.3->v1.1.0-beta.4 will still have
  upgrade difficulties. When v1.1.0-beta.4 updates to the next release
  version, the behavior will be fixed.
v1.1.0-beta.4
2017-12-06 14:28:57 -08:00
Scott Nonnenberg 2a56c53fda Merge branch 'master' into development 2017-12-06 14:28:10 -08:00
Scott Nonnenberg 00852cb828 v1.0.41
Fix issue where 'upgrade to new version' dialog would not restart app on
OSX (#1866)

Note: The transition v1.0.40->v1.0.41 will still exhibit this problem.
When v1.0.41 updates to the next release version, the behavior will be
fixed.
v1.0.41
2017-12-06 14:25:42 -08:00
Scott Nonnenberg 53d7761e43 Merge branch 'master' into development 2017-12-06 12:45:26 -08:00
Scott Nonnenberg e96502ba5e Delay our call to quitAndInstall(); doesn't work inside callback (#1866) 2017-12-06 12:44:23 -08:00
Scott Nonnenberg 5bc70c35e7 Fix ASAR filter: takes ASAR size down by ~200MB (#1869)
I knew the emoji stuff was huge, just didn't realize that our filtering
for the ASAR was broken so none of our rules applied!
2017-12-06 12:44:16 -08:00
Scott Nonnenberg b366de7c63 aptly.sh: Fix broken switch commands - distro and config fix 2017-12-04 18:51:38 -08:00
Scott Nonnenberg 74d80fb1db v1.1.0-beta.3
Add proxy support based on environment variables (#1855)

Fix issue where window would not show new message alerts on some Linux
systesm - thanks @cornerman (#1820)

Add a tray icon to the application behind command-line argument -
thanks @m-pilia (#1676)

Emoji:
  - Fix issue where clicks in emoji panel wouldn't do anything (#1849)
  - Add support for Emoji 5 - thanks @liliakai (#1797)
  - Eliminate unused emoji images from production package (#1849)

Deployment:
  - aptly.sh: support for current and previous ubuntu versions (#1856)
  - deployment: update electron-publisher-s3 to match builder update
  (https://github.com/WhisperSystems/Signal-Desktop/commit/17f0bb42bcdd173d897e3270391e18586fe548fd)

Dev:
  - Update development branch to include everything up to v1.0.40
  (https://github.com/WhisperSystems/Signal-Desktop/commit/f013eed9d171d87d9030afa8216a78316c1df2aa
  and https://github.com/WhisperSystems/Signal-Desktop/commit/3ac29a4ba3c47816760dbbaf3aab8b217a5452f9)
  - Update readme.md to use signal.org URLs - thanks @scienmind (#1814)
v1.1.0-beta.3
2017-12-04 17:27:01 -08:00
Scott Nonnenberg 3ac29a4ba3 Fix merge confilict in rotate_signed_prekey_listener.js 2017-12-04 16:49:43 -08:00
Scott Nonnenberg f013eed9d1 Merge branch 'master' into development
Bringing beta up to date with production v1.0.40
2017-12-04 16:08:19 -08:00
Scott Nonnenberg 1432d9853b v1.0.40
Fix bug where previously-deleted contacts are re-added to left pane on
contact import (#1811)

Fix bug where the main window would be created off-screen, inaccessible
(#1830)

Fix issue where certain sync messages to iOS would result in a new
message alert (#1843 and #1857))

Key rotation updates (#1833 and #1846):
  - Save prekeys optimistically after generation, even if upload appears
    to fail
  - Track confirmations from server in prekey
  - New prekey cleanup behavior: favoring confirmed keys, but always
    keeping three
  - Log all failures resulting from signed prekey rotation
  - Retry rotation if we run into a failure
  - Force rotation when starting up new version, to fix Chrome
    interference (https://github.com/WhisperSystems/Signal-Desktop/releases/tag/v0.44.13)

Dev:
  - Verify that saved window location/size data is valid before creating
    window (#1830)
  - A variety of logging improvements to help track down bugs (#1832 and
    #1836)
v1.0.40
2017-12-04 15:54:56 -08:00
Scott Nonnenberg acc94edd23 Add proxy support based on environment variables (#1855)
We pull proxy settings from environment variables:

- HTTPS_PROXY for sending, profile pulls, and attachment download/upload
- WSS_PROXY for connecting to the websocket for receiving messages
- ALL_PROXY to provide one server for both

More details on our proxy handling:

- https://github.com/Rob--W/proxy-from-env#environment-variables
- https://github.com/TooTallNate/node-proxy-agent

This is the natural way of things for Linux. My understanding is that
most proxies on MacOS are system-wide and transparent, so it's not so
urgent. But Windows will likely require further UI for configuration.
Will need to do some testing with Windows users.
2017-12-04 15:35:50 -08:00
Scott Nonnenberg 79c4893b5f aptly.sh: support for current and previous ubuntu versions (#1856)
artful and xenial. Sadly, this appears to double the upload time for a
new build. :0(
2017-12-04 15:35:06 -08:00
Scott Nonnenberg 2fdb048721 NullMessage sent before verification sync should not be silent (#1857) 2017-12-04 15:28:38 -08:00
Scott Nonnenberg 2430ee00d4 Emoji: Eliminate unused images, make sure panel clicks add emoji (#1849)
* Emoji: Ensure that all clicks work by using emoji data directly

* Eliminate a number of unused emoji images from final build

* Re-add the generic sheets directory, which we partially filter
2017-12-04 10:19:35 -08:00
Scott Nonnenberg c195ba2630 Save prekeys optimistically, track confirms, new clean behavior (#1846)
* Re-enable libtextsecure unit tests, get passing, run in CI

* Save prekeys optimistically, track confirmed, new clean behavior

* Eliminate potential conflicts when rotating on startup

* Remove last symlink: get libtextsecure tests running on windows
2017-12-01 13:35:39 -08:00
Scott Nonnenberg 21325bc922 Move sync messages to silent = true (#1843)
* Set silent = true for all sync messages

* sendmessage.js: Remove brace-less if
2017-12-01 13:31:48 -08:00
Scott Nonnenberg 6cb8b99637 Harden our handling of config.json, verify that window is visible (#1830)
* Validate config-provided locatio against available screens

* Increase buffer around screen from 10px to 100px

* Protect against null mainWindow, fix height/width typo

* Properly handle missing x and y

* Move to _.isNumber for checking x and y

* Use greater than or less than to allow for y = 0, exactly 100px
2017-11-30 11:58:00 -08:00
Scott Nonnenberg d9a48478ec Logging for prekey fetches, load of log files (#1836)
* Log the files discovered in logPath

I've encountered some logs which include very old entries; and my
suspicion is that we're not cleaning up old log files properly.

* Log prekey fetches (success and failure), just like signed keys

* Force log file information into the final web-ready log
2017-11-30 11:56:46 -08:00
Scott Nonnenberg 44da6924f9 A variety of logging improvements to track down bugs (#1832)
* Log when we get a blocked numbers sync message

* Save three old signed keys in addition to the current active

* Remove the mystery from all the error-related log messages

* Log successful load of signed key - to help debug prekey errors

* removeSignedPreKey: Don't hang or crash in error cases

* Log on top-level unhandled promise rejection

* Remove trailing comma in param list, Electron 1.6 does not like

* Harden top-level error handler for strange object shapes
2017-11-30 11:56:29 -08:00
Scott Nonnenberg a5923c2177 Key rotation: log failures, retry, force on new version (#1833)
* Retry failed signed key rotation; start rotation when registered (#1772)

* rotateSignedPrekeys: Fix 'res is not defined' error

* If the server rejects key rotation, don't retry immediately

* Force a signed key rotation on launch of any new version
2017-11-30 11:55:59 -08:00
Lilia 9c7ba87d6a Add support for Emoji 5 (#1797)
* Add support for Emoji 5

Update to latest emoji-datasource and emoji-js and switch to an up-to-date fork
of emoji-panel.

// FREEBIE

* Dark theme support for emoji-panel

Fixes #1763

// FREEBIE
2017-11-27 15:54:59 -08:00
Scott Nonnenberg b8b26d3e79 On group/contact import: don't re-add hidden entries to left pane (#1811)
* On contact import: don't re-add hidden contacts to left pane

* On group import: don't re-add hidden groups to left pane
2017-11-27 15:44:44 -08:00
johannes karoff 89297af5d2 add urgency hints for linux platform (#1820) 2017-11-27 15:14:48 -08:00
Andrey D 2199a86f10 Update readme.md to use signal.org URLs (#1814) 2017-11-27 15:13:42 -08:00
Martino Pilia cd50fe3123 Add a tray icon to the application (#1676)
This commit adds a tray icon to the application, shown in the system
tray bar, that can be used to minimise the application window.  This
is a common feature on most desktop messaging apps (e.g. Telegram
Desktop or Slack) and allows to save space in the system task bar.

The tray icon provides a context menu that contains a button to
show/hide the application window, and a button to quit the
application. When the tray icon is clicked, the visibility of the
window is toggled.  When the close (x) button of the window is
pressed, the application is not terminated but minimised to the tray
icon instead (it can be terminated by using the "Quit" entry in the
File menu or in the context menu of the tray icon).

The tray icon is disabled by default, and two command line arguments
are available to enable it:
  --use-tray-icon: enables the tray icon
  --start-in-tray: enables the tray icon and the application starts
                   minimised in the tray bar

Resolves: #1480
2017-11-27 14:48:09 -08:00
Scott Nonnenberg 17f0bb42bc deployment: update electron-publisher-s3 to match builder update 2017-11-22 17:37:54 -08:00
Scott Nonnenberg ed44981aa4 v1.1.0-beta.2
Windows 7: Use an alternate mechanism for notifications (#1812)

Retry failed signed key rotation; start rotation when registered (#1772)

Dev:
  - Update to electron-builder 19.29.0; may allow windows shortcut to
    stay deleted on update (#1804)
  - aptly.sh: Instructions for pruning old packages from repo (#1771)
  - Update development branch to include everything up to v1.0.39
    https://github.com/WhisperSystems/Signal-Desktop/commit/0e328f39114a10afea2eed60d0133fe5e1acc4a9
v1.1.0-beta.2
2017-11-22 16:49:35 -08:00
Scott Nonnenberg aab4f10509 rotateSignedPrekeys: Fix 'res is not defined' error 2017-11-22 15:08:04 -08:00
Scott Nonnenberg cdfdd6b381 Fix notifications: windows -> window, serialize false setting 2017-11-22 14:32:39 -08:00
Scott Nonnenberg 16ad94148a Introduce library for notifications on downlevel windows (#1812) 2017-11-22 13:50:52 -08:00
Scott Nonnenberg be2d4535a8 yarn.lock and libtextsecure.js catchup 2017-11-21 19:10:22 -08:00
Scott Nonnenberg 0e328f3911 Merge branch 'master' into development
This catches the development branch up with v1.0.39 in master.
2017-11-21 18:25:59 -08:00
Scott Nonnenberg 93a34e5699 v1.0.39
Remove conversation from left pane on 'delete messages' (#1807)

'Reset session' option for a conversation now resolves more error
situations (#1796)

Import: Link to export docs, make clear that import should only happen
once (#1803)

Remove last seen indicator if we sent a message in this conversation on
another device (#1805)

New version dialog (OSX and Windows) should now be less obtrusive
(#1795)

About dialog can be dismissed with escape key, important on some Linux
window managers with minimal chrome (#1795)

Dev:
  - Group changes are better localizable (#1802)
  - Import: better logging of errors (#1785)
v1.0.39
2017-11-21 17:28:40 -08:00
Scott Nonnenberg 0a4f984cf5 Properly localize group changes (#1802)
* Properly localize group updates

* Remove phone number in display name if contact in address book

* New string for multiple new group members
2017-11-21 16:38:13 -08:00
Scott Nonnenberg 87d8ec723a Remove conversation from left pane on 'delete messages' (#1807) 2017-11-21 16:37:58 -08:00
Scott Nonnenberg abb83a895e Move to e.target.error, transaction/request.error didn't work (#1785)
* Pull error properly from the indexeddb request

* Move to e.target.error, transaction/request.error didn't work
2017-11-21 15:24:04 -08:00
Scott Nonnenberg 1c455c83e0 Set parent window for about/new version, escape to close (#1795)
* Set parent window for about/new version, escape to close

* Exclude jquery from jshint run
2017-11-21 15:23:18 -08:00
Scott Nonnenberg 158b575885 Proper session reset: Delete sessions before and after (#1796)
* web requests: Don't fail if JSON not well-formed in error cases

Turns out that before our move to node-fetch, we ignored JSON.parse()
failures: https://github.com/WhisperSystems/Signal-Desktop/pull/1552/files#diff-1103a6aff0f28b6066715c6994278767L37518

* Update to libsignal v1.2.0, delete sessions on reset session

Previously we only archived sessions when sending or receiving a
'reset secure session, which didn't match up with the mobile apps.
2017-11-21 15:20:07 -08:00
Scott Nonnenberg f07302c2cd Add some copy clarifying the import process (#1803) 2017-11-21 14:51:58 -08:00
Scott Nonnenberg 16d94a8022 Update to electron-builder 19.29.0 for better shortcut behavior (#1804)
* Update to electron-builder 19.29.0 for better shortcut behavior

Fix #1744

To get this bugfix: https://github.com/electron-userland/electron-builder/pull/2085

* Update electron-updater as required by electron-builder
2017-11-21 14:50:51 -08:00
Scott Nonnenberg 83428e5b81 Remove last seen indicator if we get a sync'd outgoing message (#1805)
This mirrors the way Android does things.
2017-11-21 14:41:05 -08:00
Scott Nonnenberg fd5fa666f9 Retry failed signed key rotation; start rotation when registered (#1772) 2017-11-16 16:19:24 -08:00
Scott Nonnenberg 81565b1ac6 aptly.sh: Instructions for pruning old packages from repo (#1771) 2017-11-16 15:33:19 -08:00
Scott Nonnenberg 8cba7d26aa v1.0.38
Import: Save attachments serially for more efficient RAM usage (#1768)

Dev:
  - Import: Better logging when things go wrong (#1768)
  - removeSignedPrekey: Be resilient to delete returning nothing (#1769)
v1.0.38
2017-11-14 16:45:18 -08:00
Scott Nonnenberg bd65932d94 Import: Better onerror logging, save attachments serially (#1768)
* Import: Proper error handling and reporting from IndexedDB APIs

* Import: Load attachments one at a time, not per-conversation
2017-11-14 16:40:43 -08:00
Scott Nonnenberg f0ec75eef4 removeSignedPrekey: Be resilient to delete returning nothing (#1769) 2017-11-14 16:37:44 -08:00
Scott Nonnenberg 475e9020ed v1.1.0-beta.1
Fix missing application icon on some Linux distributions (#1735)

Update to electron 1.7.9 (#1736)

Dev:
  - Be resilient to thrown non-errors in import process (#1737)
  - Beta builds: A few updates required for successful release (#1739)
  - Use icon from /images for window creation instead of /build (#1738)
  - Update development branch to include everything up to v1.0.37 https://github.com/WhisperSystems/Signal-Desktop/commit/9e6d50b9667ac7e12c1aaebf5d1f57dfca6069b7
v1.1.0-beta.1
2017-11-08 19:33:26 -08:00
Scott Nonnenberg e07021837a Beta builds: A few updates required for successful release (#1739) 2017-11-08 19:32:44 -08:00