Commit Graph

166 Commits

Author SHA1 Message Date
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
Lilia
fb931b4733 Emoji picker (#1608)
* Add emoji button and popup panel

This integrates a simple third party emoji panel with a few css overrides to
correct some relative paths and colors.

The trickiest thing about this is ensuring we don't break the layout, which is
acheived through precise control over the panel's height, and prodigious calls
to updateMessageFieldSize.

// FREEBIE

* Don't close emoji panel on click, do close on send

To better facilitate multiple emoji entry.

// FREEBIE

* Make panel emojis bigger and higher resolution

// FREEBIE

* Move paperclip button to the right of the microphone

This makes our bottom-bar button arrangement more comfortable and consistent
with Android.

// FREEBIE

* Move emoji picker padding to inner container

* Insert emojis at cursor position

Don't just append to the end like a n00b! Also handle selected text correctly.
https://stackoverflow.com/questions/11076975

// FREEBIE

* A few visual tweaks to reduce visual complexity of emoji panel

- No gray buffer on the right side of the emoji panel
- No gray buffer between message compose text box and emoji window
- The scroll bar for the emojis is the same as our normal scrollbars
2017-10-30 13:54:55 -07:00