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.
This prevents the user from restarting the app by pressing space on
MacOS, which happens frequently during the course of normal typing of a
message.
In the future we'll move to a less-obtrusive system a little
more like Chrome, where you choose to do the restart when it is
convenient for you. For now, we minimize the chance of accidental
restart in the middle of typing a message.
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.
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
(5bc70c35e7)
- 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.
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.
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
(17f0bb42bc)
Dev:
- Update development branch to include everything up to v1.0.40
(f013eed9d1
and 3ac29a4ba3)
- Update readme.md to use signal.org URLs - thanks @scienmind (#1814)
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)
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.
* 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
* 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
* 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
* 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
* 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
* 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
* 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
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
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
0e328f3911
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)
* 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.