Commit graph

102 commits

Author SHA1 Message Date
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