Commit Graph

167 Commits

Author SHA1 Message Date
Daniel Gasienica
02c9328877 Extract npm run test-modules command 2018-02-15 15:16:58 -05:00
Daniel Gasienica
33860d93f3 Revert "Replace blueimp-canvas-to-blob with blob-util"
This reverts commit 31b3e853e4afc78fe80995921aa4152d9f6e4783.
2018-02-15 15:16:58 -05:00
Daniel Gasienica
7a0ba6fed6 Replace blueimp-canvas-to-blob with blob-util 2018-02-15 15:16:58 -05:00
Daniel Gasienica
1cfa0efdb4 Add blob-util dependency 2018-02-15 15:16:58 -05:00
Daniel Gasienica
8b4c69b200 Test CommonJS modules separately
Not sure how to test them as part of Grunt `unit-tests` task as `test/index.html` doesn’t
allow for inclusion of CommonJS modules that use `require`. The tests are silently
skipped.
2018-02-15 15:14:59 -05:00
Daniel Gasienica
141155a153 Move blueimp-canvas-to-blob from Bower to npm 2018-02-15 15:14:59 -05:00
Daniel Gasienica
de27fdc10a Add yarn grunt shortcut
This allows us to use local `grunt-cli` for `grunt dev`.
2018-02-15 15:14:59 -05:00
Daniel Gasienica
1e1c62fe2f Add blueimp-load-image npm dependency 2018-02-15 15:14:59 -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
7ceeb8bac4 Update electron to 1.7.12 (#2029) 2018-02-02 10:04:38 -08:00
Scott Nonnenberg
7b49180bc0 Big update to new signal branding (#2018) 2018-01-30 14:22:51 -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
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
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
9ef8228ff8 Update electron-builder to latest, with .ico fix (#1976) 2018-01-17 15:27:18 -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
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
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
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
8fd0adc486 Update to Electron 1.7.10 (#1919) 2018-01-04 16:20:41 -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
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
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
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
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
Scott Nonnenberg
6f2260d08c v1.1.0-beta.5
Support pass-through proxies with HTTPS_PROXY env var (#1878)
2017-12-08 16:26:35 -08:00
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
  (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.
2017-12-06 14:28:57 -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
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
  (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)
2017-12-04 17:27:01 -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
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
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
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
    0e328f3911
2017-11-22 16:49:35 -08:00
Scott Nonnenberg
16ad94148a Introduce library for notifications on downlevel windows (#1812) 2017-11-22 13:50:52 -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
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 9e6d50b966
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
Scott Nonnenberg
48ec4003dd Use icon from /images for window creation (#1738) 2017-11-08 19:11:33 -08:00
Scott Nonnenberg
1fdaa00660 Add icon to the window manually on creation (#1735)
This supplements the work we already do to tell the OS about our icon.
2017-11-08 17:33:20 -08:00
Scott Nonnenberg
f7140af9cb Update to the latest 1.7.x electron (#1736) 2017-11-08 17:32:52 -08:00
Scott Nonnenberg
9e6d50b966 Merge branch 'master' into development
Bringing our development (beta) branch inline with all the more urgent
fixes which went directly into the master (production) branch.
2017-11-08 17:02:00 -08:00
Scott Nonnenberg
0a2651c0a7 v1.0.37
Fix issue where application won't start up when /tmp is mounted noexec on Linux (#1734)

Fix issue where more and more messages would be loaded on every restart (#1719)

Add accelerators for top-level menu shorts, and ensure they can be localized - thanks to @cyberang3l! (#1702)

Update strings for: de, el, es, es_419, fa, hi, it, no, pt_PT, ro, ru, sl, and zh_TW (#1733)
2017-11-08 16:28:24 -08:00
Scott Nonnenberg
7d53e69958 v1.0.36
Import: wait for IndexedDB transactions to complete; should solve
out-of-memory problems (#1698)

Increase web request timeout to 10s for slower networks (#1699)

Drop failed delivery receipts, which caused loading screen to go higher
and higher over time (#1699)
2017-11-07 10:53:34 -08:00
Scott Nonnenberg
9a181ef4e9 v1.0.35
Update to the latest Electron 1.6.x (#1666)
2017-11-01 19:07:47 -07:00
Scott Nonnenberg
d7ab2ec207 v1.0.35-beta.1
Emoji picker (#1608)

Prevent drawAttention() when notifications are turned off - thanks
@canerelci! (#1612)

Support new 833 area code with update to libphonenumber (#1598)

Dev:
  - Support for beta releases installed beside production versions
    (#1606)
  - Display of environment and app instance in title bar/about window
    (#1606)
  - Fix json parsing exceptions obscuring server errors (#1605)
2017-10-30 14:49:43 -07:00
Lilia
1f967abf0a Update libphonenumber (#1598)
* Update libphonenumber

Also switch from bower to yarn for managing this dependency.

// FREEBIE

* Remove libphonenumber from bower.json

// FREEBIE
2017-10-30 14:45:57 -07:00
Scott Nonnenberg
c94d4efd18 Beta versions support: SxS support, in-app env/instance display (#1606)
* Script for beta config; unique data dir, in-app env/type display

To release a beta build, increment the version and add -beta-N to the
end, then go through all the standard release activities.

The prepare-build npm script then updates key bits of the package.json
to ensure that the beta build can be installed alongside a production
build. This includes a new name ('Signal Beta') and a different location
for application data.

Note: Beta builds can be installed alongside production builds.

As part of this, a couple new bits of data are shown across the app:

- Environment (development or test, not shown if production)
- App Instance (disabled in production; used for multiple accounts)

These are shown in:

- The window title - both environment and app instance. You can tell
  beta builds because the app name, preceding these data bits, is
  different.
- The about window - both environment and app instance. You can tell
  beta builds from the version number.
- The header added to the debug log - just environment. The version
  number will tell us if it's a beta build, and app instance isn't
  helpful.

* Turn on single-window mode in non-production modes

Because it's really frightening when you see 'unable to read from db'
errors in the console.

* aply.sh: More instructions for initial setup and testing

* Gruntfile: Get consistent with use of package.json datas

* Linux: manually update desktop keys, since macros not available
2017-10-30 13:57:13 -07:00