Commit graph

1455 commits

Author SHA1 Message Date
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
Scott Nonnenberg
1a2b123f31
v1.0.34
Re-enable read receipts and read syncs (#1604)
2017-10-24 10:30:52 -07:00
Scott Nonnenberg
04fb736e8b
v1.0.33
Re-enable download and upload of larger attachments
(#1591/ce0e39aaa7eec873f65fe9675badbd6461a3054c)

Prevent situation where lack of keys makes "Error handling incoming
message." common (#1595)

Stay connected or reconnect quickly in changing network conditions,
returning from sleep, etc. (#1593)

Don't send read syncs (to your devices) or read receipts (to client
devices) for messages with errors (#1596)

Fix occasional very long app startup (#1597)

Don't check for auto updates on linux; handled by package manager
(#1592)
2017-10-23 16:22:12 -07:00
Scott Nonnenberg
3525e9f445
v1.0.32
Load profiles for a conversation without blocking convo load (#1570)

The About window is no longer blank (#1564)

Add 5s timeout for all requests but attachment up/down, avatar (#1584)

Dev:
  - Move to node fetch API for web requests instead of XHR (#1552)
  - Log when we've detected a new version (#1567)
  - Reduce logging when the window moves (#1568)
  - Add GPLv3 LICENSE file (#1309)
  - Remove documentation references to BitHub (#1576)
  - models/conversation: Refer to proper error variable (#1569)
  - Deployment: No longer use CI windows assets (#1564)
  - Fix copy pasta of timestamp_m to timestamp_h in locales (#1582)
2017-10-20 17:46:20 -07:00
Lilia
af8b0164b5 Move to node fetch API for web requests instead of XHR (#1552)
* Use node-fetch instead of xhr

* Remove XMLHttpRequest.js

// FREEBIE

* Avoid calling json() on non json responses

Previously we would catch and swallow JSON parsing errors resulting from an
empty response, though empty responses are normal from a few endpoints, like
requesting sms or voice registration codes.

Since the JSON parsing call is now handled internally by node-fetch, we have to
keep closer track of our expected response type to avoid throwing an exception.

// FREEBIE
2017-10-20 15:52:02 -07:00
Scott Nonnenberg
7e328bcacd Deployment: No longer use CI windows assets, include about.html (#1564)
* Include about.html in production Electron build

* Remove windows from fetch-release task, fix permissions

We no longer use the pre-built assets from AppVeyor for our Windows
build.

* AppVeyor: Remove capture/upload of built assets
2017-10-17 08:03:47 -07:00
Scott Nonnenberg
9e7c2357a4
v1.0.31
Improved OS menus (#1563)
  - About box now available on all platforms
  - The Help menu now has four new items: Go to release notes, Go to forums, Go to support, File a bug
  - All menu item labels are now localizable

Add setting to hide menu bar on Windows/Linux - thanks to @connection-reset! (#1551)

Fix flickering offline/disconnected status on Linux (#1561)

Fix slowdowns when composing multiline message (#1560)

Fix intermittent incorrect conversation sort order (#1558)

Dev:
  - Improve fixtures, restore `InboxView` rendering on the test page (#1562)
  - Bugfix updates to a number of dependencies (#1560)
  - .gitignore no longer excludes many files under `components` (#1560)
2017-10-13 17:14:30 -07:00
Scott Nonnenberg
019ffba10b
v1.0.30
Add 100MB file size limit for arbitrary file types (#1555)
Fully eliminate debug from imported data (#1556)

FREEBIE
2017-10-11 15:47:02 -07:00
Scott Nonnenberg
26bff0db52
v1.0.29
Feature: Blue check marks for read messages if opted in (#1489)

Re-enable import by excluding 'debug' items from export (#1532)

Better handling of network disconnection/reconnection on Linux (#1546)

Load debug log dialog immediately, then populate log data (#1540)

Fix audio notifications on Linux (#1526)

Re-enable fullscreen on OSX (#1525)

Fix vertically-aligned onboarding progress text (#1547)

Fix broken file icon when attaching non-image (#1548)

Deployment:
  - Standardize artifact names - include platform name (#1539)
  - Update electron-updater and supply it with windows/publisherName
    (#1535)
  - Use cdn endpoint for auto update (#1538)

Dev:
  - Override console.log in main process, handle non-strings (#1536)
  - window.onerror: move to proper window.log.error call (#1528)
  - Remove duplicate definition of getSyncRequest (#1530)
  - Ensure locale is 'en' when NODE_ENV=test (#1527)

FREEBIE
2017-10-10 08:50:35 -07:00
Lilia
670d2afa69 Standardize artifact names - include platform name (#1539)
* Standardize artifact names

// FREEBIE

* Update name of windows asset in Grunt fetch-release task

FREEBIE
2017-10-04 14:17:07 -07:00
Scott Nonnenberg
0291882328 Update electron-updater and supply it with windows/publisherName (#1535)
This ensures that the signing certificate of any binary pulled down as
part of auto-update on Windows is in the CA chain (not self-signed) and
has the right publisherName. electron-updater also rejects any unsigned
binary when asked to check the publisherName.

FREEBIE
2017-10-04 14:05:23 -07:00
Lilia
8ec63e70d8 Use cdn endpoint for auto update (#1538)
This will make electron-updater use the cdn-fronted updates.signal.org instead
of the s3 endpoint. You can verify it worked by looking at the url generated in
dist/latest-mac.json and dist/win-unpacked/resources/app-update.yml

// FREEBIE
2017-10-04 14:04:52 -07:00
Scott Nonnenberg
03f8c2c4e0
v1.0.28
No changes; this release is to test auto-upgrade signature verification
on Windows.

FREEBIE
2017-09-29 16:56:50 -07:00
Scott Nonnenberg
68070561f8
v1.0.27
Make long-lived socket connections more reliable (#1511)

Show offline state faster on loss of network access (#1512)

Notifications:
  - Only show notifications when a large backlog download is complete
    (#1507)
  - Ensure final message before 'empty' is ready for notification
    (#1522)

Ensure we always replace $name$ variable in strings (#1520)

Update strings for fa, no, pt_BR, pt_PT, ro, zh_CN, zh_TW (#1517)

Update electron to v1.6.14 to get security fix (#1519)

Eliminate warning on Windows installation with code-signing (#1513)

Dev:
  - Move logging to disk via bunyan - should make message processing
    faster! (#1506)
  - Only retry messages on startup, not every reconnect (#1510)
  - Log call messages instead of throwing error (#1504)
  - Redact group ids in logging
    (4c48d12dc3)
  - Remove manifest.json from project
    (3a3f2495e0)

FREEBIE
2017-09-29 11:07:43 -07:00
Scott Nonnenberg
29053059b2 Update electron to v1.6.14 to get security fix (#1519)
https://electron.atom.io/blog/2017/09/27/chromium-rce-vulnerability-fix

FREEBIE
2017-09-28 17:44:29 -07:00
Scott Nonnenberg
b0f9644c14 Add certificate name for windows code-signing (#1513)
* Add certificate name for windows code-signing

electron-builder supports our extended validation code-signing cert, but
only on windows. Our release process must now include a signing step on
windows.

FREEBIE

* AppVeyor Remove certificateSubjectName to disable signing

* Move code-signing disable package.json updates above build

* AppVeyor: Use temporary holding file for package.json changes
2017-09-28 11:58:45 -07:00
Scott Nonnenberg
4c48d12dc3
Remove unused grunt tasks: sauce labs and connect
We can't run our tests in a standalone server anymore, so no need for
connect.

Similarly, sauce labs is no longer necessary because all of our tests
are run locally inside of Electron.

FREEBIE
2017-09-25 15:38:27 -07:00
Scott Nonnenberg
6b11f67dc6
Move logging to disk via bunyan
- Logging is available in main process as well as renderer process, and
  entries all go to one set of rotating files. Log entries in the
  renderer process go to DevTools as well as the console. Entries from
  the main process only show up in the console.
- We save three days of logs, one day per file in %userData%/logs
- The 'debug' object store is deleted in a new database migration
- Timestamps and level included in the new log we generate for publish
  as well as the devtools
- The bunyan API is exposed via windows.log (providing the ability to
  log at different levels, and save objects instead of just text), so we
  can move our code to it over time.

FREEBIE
2017-09-25 15:00:34 -07:00
Scott Nonnenberg
33f5a804fe
v1.0.26
Fix extended periods of not receiving messages on Linux (#1497)

Fix crash on non-file drag/drop events (#1498)

Dev:
  - yarn install now builds electron dependencies automatically
    (#1491)
  - Docs are refreshed for the new world of Electron (#1491)
  - Update our release scripts to match changes in electron-builder
    (#1484)
  - Additional logging when we can't decrypt a user's profile (#1483)
  - Remove images/emoji directory (#1485)

FREEBIE
2017-09-22 12:05:50 -07:00
Scott Nonnenberg
bd78016120 script to build for electron on install, Electron docs refresh (#1491)
* Add new postinstall script for automatic electron builds

FREEBIE

* Documentation refresh for the world of electron

FREEBIE
2017-09-19 15:31:04 -07:00
Scott Nonnenberg
9040677d3c Update our release scripts to match changes in electron-builder (#1484)
No more win-unpacked/linux-unpacked, so we need to extract downloaded
zips into their own folders manually.

FREEBIE
2017-09-18 15:51:01 -07:00
Scott Nonnenberg
bf3eb6d30c
v1.0.25
Update to Emojiset 4.0 (#1482)

Fix unthemed Submit Debug Log dialog (#1479)

Additional logging to help track down socket disconnect problems
(#1469)

Dismiss loading screen if we have network problems (#1466)

Setup:
  On network error during setup, show error screen instead of hanging
  (#1472)
  Allow user to setup new install with pre-profiles mobile device
  (#1470)

Ensure that we stay pinned to Windows taskbar on upgrade (#1473)
Ensure we are in the right category on Linux (#1473)
Ensure that we Heavye the right icon in the GNOME taskbar (#1473)

Transifex config specific to electron, updated translations (#1478)

CI:
  Bypass often-corrupt node_modules/.bin/grunt.cmd on windows (#1481)
  AppVeyor: Reduce build output due to xcopy of all emoji files
  (c2c9cd0aa2)

FREEBIE
2017-09-15 13:32:48 -07:00
Lilia
4449a5f110 Upgrade emoji support (#1482)
* Upgrade emoji deps and move to node_modules

Add support for Emoji 3.0 and switch from bower to yarn for managing emoji
dependencies.

// FREEBIE

* Delete old emoji deps

// FREEBIE

* Don't copy emoji on windows

It is no longer necessary since the symlinked image dir is gone.

// FREEBIE

* Update emoji test

// FREEBIE

* Fix emoji tests; remove all overrides of emoji-js functions

FREEBIE
2017-09-15 13:22:11 -07:00
Scott Nonnenberg
e6c7ebcaf9
Update builder (Windows taskbar), tweak config (GNOME taskbar) (#1473)
* Update electron-builder and config, grunt-exec, and spellchecker

electron-builder is a major update: ^18.8.1 -> ^19.27.3

Fixes #1463, where we lose the user's decision to pin to taskbar

The other three are all minor changes, but it's generally good to stay
up to date.

FREEBIE

* Add category for our Linux build target

Fixes #1460, though the recommended list of categories doesn't seem to
match what is shown in Linux Mint. Hopefully it understands that
what was previously 'Networking' should now be 'Internet'

Standard list:
  https://standards.freedesktop.org/menu-spec/latest/apa.html

FREEBIE

* Add StartupWMClass to .desktop file so GNOME can find running app

Fixes #1432

FREEBIE
2017-09-14 17:04:03 -07:00
Scott Nonnenberg
20ebdf130e
v1.0.24
Contact profiles support - display avatars and names (#1453)

Audio notes can now be recorded on Windows (#1456)

When window is snap-positioned on windows, no longer automatically
re-position window (#1455)

Ensure that our sound setting applies for all notification types (#1445)

Fix loading screen hang with application is unlinked (#1440)

Fix error dialog on initial load (#1440)

Based on https://github.com/WhisperSystems/Signal-Desktop/releases/tag/v0.43.3

FREEBIE
2017-09-14 17:04:02 -07:00
Scott Nonnenberg
6e5afce7d2
v1.0.23
Rebased on v0.42.3, with two additional changes.

Certificate pinning via node XMLHttpRequest implementation (#1394)

Import: Wait until db writes resolve before saying we're done (#1401)

FREEBIE
2017-09-14 17:03:18 -07:00
Lilia
50c470e53d
Certificate pinning via node XMLHttpRequest implementation (#1394)
* Add certificate pinning on https service requests

Make https requests to the server using node apis instead of browser apis, so we
can specify our own CA list, which contains only our own CA.

This protects us from MITM by a rogue CA.

As a bonus, this let's us drop the use of non-standard ports and just use good
ol' default 443 all the time, at least for http requests.

// FREEBIE

* Make certificateAuthorities an option on requests

Modify node-based xhr implementation based on driverdan/node-XMLHttpRequest,
adding support for setting certificate authorities on each request.

This allows us to pin our master CA for requests to the server and cdn but not
to the s3 attachment server, for instance. Also fix an exception when sending
binary data in a request: it is submitted as an array buffer, and must be
converted to a node Buffer since we are now using a node based request api.

// FREEBIE

* Import node-based xhr implementation

Add a copy of https://github.com/driverdan/node-XMLHttpRequest@86ff70e, and
expose it to the renderer in the preload script.

In later commits this module will be extended to support custom certificate
authorities.

// FREEBIE

* Support "arraybuffer" responseType on requests

When fetching attachments, we want the result as binary data rather than a utf8
string. This lets our node-based XMLHttpRequest honor the responseType property
if it is set on the xhr.

Note that naively using the raw `.buffer` from a node Buffer won't work, since
it is a reuseable backing buffer that is often much larger than the actual
content defined by the Buffer's offset and length.

Instead, we'll prepare a return buffer based on the response's content length
header, and incrementally write chunks of data into it as they arrive.

// FREEBIE

* Switch to self-signed server endpoint

* Log more error info on failed requests

With the node-based xhr, relevant error info are stored in statusText and
responseText when a request fails.

// FREEBIE

* Add node-based websocket w/ support for custom CA

// FREEBIE

* Support handling array buffers instead of blobs

Our node-based websocket calls onmessage with an arraybuffer instead of a blob.
For robustness (on the off chance we switch or update the socket implementation
agian) I've kept the machinery for converting blobs to array buffers.

// FREEBIE

* Destroy all wacky server ports

// FREEBIE
2017-09-14 17:03:17 -07:00
Scott Nonnenberg
9a2587eaca
v1.0.22
Rebased on v0.42.7

FREEBIE
2017-09-14 17:03:17 -07:00
Scott Nonnenberg
44d8c8a06c
v1.0.21
Rebased on v0.42.6 -> migration branch

FREEBIE
2017-09-14 17:03:17 -07:00
Scott Nonnenberg
270f626cd7
Add lodash for server-side utility functions
FREEBIE
2017-09-14 17:03:17 -07:00
Scott Nonnenberg
e8c7e31363
Multi-error, multi-language, and cross-platform spell-check
FREEBIE
2017-09-14 17:03:17 -07:00
Scott Nonnenberg
122719688a
Add os-locale to reliably get xx-XX style locale on all OSes
FREEBIE
2017-09-14 17:03:17 -07:00
Scott Nonnenberg
51768a16c4
Add semver and spellchecker directly, remove electron-provider
FREEBIE
2017-09-14 17:03:17 -07:00
Scott Nonnenberg
106626ae11
v1.0.20
Electron branch currently rebased on top of v0.42.1.

FREEBIE
2017-09-14 17:03:16 -07:00
Scott Nonnenberg
e441a662f0
Bump version to 1.0.19
FREEBIE
2017-09-14 16:53:52 -07:00
Scott Nonnenberg
b62fdd1b36
Bump version to 1.0.18
FREEBIE
2017-09-14 16:53:52 -07:00
Scott Nonnenberg
476fe13e89
Bump version to 1.0.17
FREEBIE
2017-09-14 16:53:52 -07:00
Scott Nonnenberg
51198318e9
Bump version to 1.0.16
FREEBIE
2017-09-14 16:53:52 -07:00
Scott Nonnenberg
46221677d7
Bump version to v1.0.15
FREEBIE
2017-09-14 16:53:51 -07:00
Scott Nonnenberg
b79aa6a75f
Bump version to 1.0.14
FREEBIE
2017-09-14 16:53:51 -07:00
David Balatero
ed831dacd0
Refactor external source files to live in app/ 2017-09-14 16:53:50 -07:00
David Balatero
db62494109
Force app to quit on Mac when we auto update 2017-09-14 16:53:50 -07:00
David Balatero
9a7f4ae41c
Show dialog box when there's an update for download 2017-09-14 16:53:50 -07:00
Scott Nonnenberg
b5c10041b2
Bump version to 1.0.13
FREEBIE
2017-09-14 16:53:50 -07:00
Scott Nonnenberg
37d803fb13
Bump version to 1.0.12
FREEBIE
2017-09-14 16:53:50 -07:00
Scott Nonnenberg
ceff9ca203
Bump version to 1.0.11
FREEBIE
2017-09-14 16:53:49 -07:00
Scott Nonnenberg
b82cc62913
Bump version to 1.0.10
FREEBIE
2017-09-14 16:53:49 -07:00
Scott Nonnenberg
0c4161e5a3
Bump version to v1.0.9
1.0.8 seems to have a signing problem.

FREEBIE
2017-09-14 16:53:49 -07:00
Scott Nonnenberg
3b6c9dd34e
Bump version to v1.0.8
FREEBIE
2017-09-14 16:53:49 -07:00
lilia
634b7dbb39
Bump to 1.0.7
// FREEBIE
2017-09-14 16:53:49 -07:00
lilia
00aabfd4e0
Exclude hunspell source from packaged apps
// FREEBIE
2017-09-14 16:53:48 -07:00
lilia
cedbd5db8d
Unpack hunspell dictionaries on windows and linux
// FREEBIE
2017-09-14 16:53:48 -07:00
Scott Nonnenberg
ebc373185a
Introduce new dependency for user settings: electron-config
FREEBIE
2017-09-14 16:53:48 -07:00
Scott Nonnenberg
4e9305fc96
Remove duplicate key in package.json
FREEBIE
2017-09-14 16:53:48 -07:00
lilia
5a88faf334
Bump to 1.0.6 2017-09-14 16:53:46 -07:00
lilia
cf9523f1f8
Restructure prep-release script slightly
Order of operations is now:
- regenerate local assets
- clean the release dir
- download linux/windows releases
- build osx release
- smoke all test releases

// FREEBIE
2017-09-14 16:53:46 -07:00
lilia
bb431f7c91
Remove mac artifactName config
Default is fine here.

// FREEBIE
2017-09-14 16:53:46 -07:00
lilia
d63c603c21
Add spectron 2017-09-14 16:53:45 -07:00
lilia
bc71f4aa2b
CI builds and uploads all targets
// FREEBIE
2017-09-14 16:53:45 -07:00
lilia
08b7ce88d9
More release scripting in npm
npm run icon-gen and grunt (run default task) can be grouped into one
operation.

Use SIGNAL_ENV instead of NODE_ENV since Setting NODE_ENV adversely
affects yarn's install behavior, so we had to set it after the install
and before the build. By using a custom variable instead, we can set it
globally and eventually use it in a build matrix.

Move mas build to its own npm script

// FREEBIE
2017-09-14 16:53:45 -07:00
lilia
5078e1e7d8
Reset bundleVersion 2017-09-14 16:53:45 -07:00
lilia
a2667f784b
CI builds zip for all platforms
// FREEBIE
2017-09-14 16:53:45 -07:00
lilia
e1282f9b3b
Bump to 1.0.5 2017-09-14 16:53:44 -07:00
lilia
2d65ae3689
Disable build script publishing in ci
Travis and AppVeyor configs will handle publishing ci builds

// FREEBIE
2017-09-14 16:53:44 -07:00
lilia
6977928e99
Build only .zip on mac 2017-09-14 16:53:44 -07:00
lilia
aaee025409
Rename script 2017-09-14 16:53:44 -07:00
lilia
693a59809e
Fix setting environment var on windows
Use platform-specific commands to set NODE_ENV after yarn install but
before yarn travis-build.

// FREEBIE
2017-09-14 16:53:44 -07:00
lilia
81d8b78d05
Switch to grunt-sass + node-sass-import-once
These modules together allow us to import css files from third party
components without maintaining symlinks that essentially rename them as
sass partials, which doesn't work on windows.

// FREEBIE
2017-09-14 16:53:44 -07:00
lilia
d6c0fbe9a3
WIP Travis build
// FREEBIE
2017-09-14 16:53:43 -07:00
lilia
689827ee2f
Bump bundleVersion
// FREEBIE
2017-09-14 16:53:43 -07:00
lilia
e83ceba570
Bump bundleVersion for app store 2017-09-14 16:53:43 -07:00
lilia
f716f70bf4
Add icon path for linux
// FREEBIE
2017-09-14 16:53:42 -07:00
lilia
6468038401
Add bundleVersion to mac config
This corresponds to CFBundleVersion in the mac build. It must be
incremented every time we upload a new build to the app store for the
current release version.

// FREEBIE
2017-09-14 16:53:42 -07:00
lilia
4c3977e13b
Change mac output dir in asar script
// FREEBIE
2017-09-14 16:53:42 -07:00
lilia
0c8e769c2a
Exclude some build files from native modules
In practice this removes about 1MB of extraneous build resoures from the
spellchecker module in a packaged build.

// FREEBIE
2017-09-14 16:53:42 -07:00
lilia
38b292ef9e
Setup for mas build
// FREEBIE
2017-09-14 16:53:42 -07:00
lilia
6c49687126
Bump version 2017-09-14 16:53:42 -07:00
lilia
7ef901d628
yarn remove icon-gen 2017-09-14 16:53:41 -07:00
lilia
7d47b53dc3
Generate icons with electron-icon-maker
Either icon-gen or local scaling of images was producing a corrupted and
glitchy .icns file. With this module, we need only provide a 1024px
image and it handles the scaling and generation of all other icon
assets.

// FREEBIE
2017-09-14 16:53:40 -07:00
lilia
c9537ff9a9
Add asar for inspeting asar contents 2017-09-14 16:53:40 -07:00
lilia
429cc46cf9
yarn add --dev electron-publisher-s3
// FREEBIE
2017-09-14 16:53:40 -07:00
lilia
9f873e21a2
yarn upgrade electron-builder 2017-09-14 16:53:40 -07:00
lilia
8732127b1d
yarn upgrade icon-gen 2017-09-14 16:53:40 -07:00
lilia
a885123ab3
Upgrade dev dependencies
Including multiple major version upgrades.

// FREEBIE
2017-09-14 16:53:40 -07:00
lilia
90ad83a91d
Add yarn.lock
Remove grunt-preen due to its dependency on module incompatible with
current node.

// FREEBIE
2017-09-14 16:53:40 -07:00
lilia
77d5ef2f68
Add spellcheck
As of Electron 1.6.5, this requires disabling the sandbox in order to
get access to the `webFrame` api.

// FREEBIE
2017-09-14 16:53:39 -07:00
lilia
eefcaf0bcc
Bump version 2017-09-14 16:53:39 -07:00
lilia
de3816b094
Get standalone registration working in development
Whisper.events.trigger('openStandalone') to open the standalone
registration view.

// FREEBIE
2017-09-14 16:53:39 -07:00
lilia
1c8d3fb41a
Bump version 2017-09-14 16:53:38 -07:00
lilia
ab9f5beead
Fix release script
// FREEBIE
2017-09-14 16:53:38 -07:00
lilia
e7e030a5e2
Build expiration date
Add the buildExpiration config and add it to the renderer's config
object. Use grunt to write the build expiration to
config/local-production.json which will override the default value (no
expiration) in production. Finally, run this grunt task as part of the
build process.

// FREEBIE
2017-09-14 16:53:38 -07:00
lilia
4963af60c9
Use default output dir: ./dist 2017-09-14 16:53:37 -07:00
lilia
7e1bee1082
Configure app/build using node config
Add environment-specific configs under `./config` and integrate with the
build system. Also changes package.json `files` from blacklist to
whitelist.

// FREEBIE
2017-09-14 16:53:36 -07:00
lilia
6a49036da9
Bump to 1.0.1 2017-09-14 16:53:36 -07:00
lilia
81a40bb548
Remove spaces from windows installer name
Spaces in the file name get escaped to %20. Then the percent sign gets
escaped again on the way to s3 upload, such that the object name on s3
ends up as %2520. To fix this, we can simply omit spaces from our
artifact names.

// FREEBIE
2017-09-14 16:53:36 -07:00
lilia
32be90c728
Fix missing icons on linux
Move these to where the build expects them to be.

In theory electron-builder should generate these from a build/icon.icns
but that doesn't seem to be working.

// FREEBIE
2017-09-14 16:53:36 -07:00
lilia
9e39442ea8
Setup publishing to s3 2017-09-14 16:53:36 -07:00
lilia
a99890d254
Generate ico and icns from png
`npm run icon-gen` builds icon files from png files in the images
directory, outputting to build/icon.{ico,icns} (the expected location
for electron-builder).

// FREEBIE
2017-09-14 16:53:35 -07:00
lilia
2bbd0d58c6
Separate development and production environments
Set NODE_ENV at run time or build time to switch the app between dev and
production modes.

At build time, the current NODE_ENV will be included in the packaged
app's package.json file. At runtime we read NODE_ENV from package.json,
but also allow the local environment variable to override. A query
string parsed by a preload script exposes the value to the renderer,
which then determines whether we use the staging or production server.
Additionally, different environments have different user data
directories.

// FREEBIE
2017-09-14 16:53:35 -07:00
lilia
beb058aed6
Add productName to package.json
This defines the display name of the packaged app. It can contain
spaces.

// FREEBIE
2017-09-14 16:53:35 -07:00
lilia
584d29f4a4
Exclude some files from inclusion in packaged app
This adds and extends the default `files` config from electron-builder
such that it adds all and only the necessary files to our app.asar.

// FREEBIE
2017-09-14 16:53:34 -07:00
lilia
dcc6f599a2
Auto-update hourly 2017-09-14 16:53:34 -07:00
lilia
83d827c127
Configure electron-builder
// FREEBIE
2017-09-14 16:53:34 -07:00
lilia
995ccda9e4
Add electron and electron-builder dev dependencies
// FREEBIE
2017-09-14 16:53:34 -07:00
lilia
e6e8f02fb7
Populate required fields in package.json
// FREEBIE
2017-09-14 16:53:34 -07:00
lilia
2cf7ea0a94
Hello Electron
In package.json, define our main entry point for electron, and add a
node script to start it up.

Add main.js from Electron/electron-quick-start with two modifications.
1. Load background.html instead of index.html
2. Disable node integration in the renderer

At this point we can load the background page in a window
with `npm start`, though it currently breaks on missing chrome app APIs.

// FREEBIE
2017-09-14 16:53:28 -07:00
lilia
79ad09ba47 Update jshint 2017-04-18 16:46:02 -07:00
lilia
c442a02cb6 Add build support for expiring old releases
Builds expire after 90 days.
2016-04-03 20:55:53 -07:00
Sam Lanning
b7fd862aa6 Create tx task which performs 'tx pull' followed by 'locale-patch'
// FREEBIE
2016-01-25 14:21:46 -08:00
lilia
a229075016 Update project/repo names in package.json
// FREEBIE
2016-01-02 02:51:55 -08:00
lilia
c526dbda5f Set up production build task
`grunt copy`

Closes #191
2015-03-19 18:34:56 -07:00
Joe Bandenburg
ac8584dd85 Add JSCS and run as grunt test task
This change only introduces a single rule but more can easily be added
going forwards.
2015-01-14 10:00:40 -10:00
Daniel Reichert
5114fa1f0a Update name and repository in package.json 2014-12-12 14:33:18 -08:00
Arlo Breault
8d56a1b248 Run tests on Sauce Labs
* Issue #57
2014-11-22 20:30:57 -08:00
lilia
cd888f66ef Build unminified manifest.css from sources 2014-11-07 00:32:58 -08:00
lilia
a79fb363aa Let npm install bower
One less step for new contributors who need to add dependencies.
2014-10-30 14:47:50 -07:00
lilia
73f4f64351 Grunt preen and concat
Set up grunt with tasks for:
  * preen - deletes unused files from bower_components, configured in
      bower.json
  * concat - concatenates preened bower components, configured
      automagically from the preen config

It's worth noting that this setup assumes the order of files within a
package doesn't matter. This is usually true since we often include only
one file from the package.
2014-10-29 20:50:51 -07:00