Commit graph

3967 commits

Author SHA1 Message Date
Daniel Gasienica
be3e4d86c2 Add Errors.toLogFormat
Allows errors to be formatted and sanitized for logging. Removes sensitive paths
such as the app root directory.

Ideally, this module would be called singular `Error` but that is already a
global name. Using `Errors` plural is  similar to Java convention for utilities
such as `Arrays`, `Collections`, `Files`, etc. See:
https://stackoverflow.com/a/11673838
2018-03-08 16:22:38 -05:00
Daniel Gasienica
77e7e9ad4d Add ensure-error dependency 2018-03-08 16:22:38 -05:00
Daniel Gasienica
522b88d0d9 Reduce scope of disabled more/no-then rule 2018-03-08 16:22:37 -05:00
Daniel Gasienica
18785be639 Log uncaught errors / promise rejections in main process
See #2019.
2018-03-08 16:22:37 -05:00
Daniel Gasienica
9e5fec1d81 Add electron-unhandled dependency 2018-03-08 16:22:37 -05:00
Daniel Gasienica
b2a252aa13 Merge #2112 from gasi: Move Debug Logs From GitHub Gists to debuglogs.org
In anticipation of GitHub’s deprecation of anonymous gists, we are moving our debug logs to https://debuglogs.org.

- [x] Publish debug logs to debuglogs.org.
- [x] Rename **Help > File a Bug** to **Report an Issue** for consistency with our debug log view as well as other apps such as Google Chrome.
- [x] Quickfix: Ensure `window.isFocused` always returns a boolean.

**Sample log:** https://debuglogs.org/0272bdd35288ed839ede88938a5290011150d42b56599efb5dd93ac80a2ac915
2018-03-08 16:21:30 -05:00
Daniel Gasienica
b049412bfd Document workaround for got FormData bug
See: https://github.com/sindresorhus/got/pull/466
2018-03-08 16:21:27 -05:00
Daniel Gasienica
710701d0fc Document why key comes first 2018-03-08 16:21:27 -05:00
Daniel Gasienica
0810ea6909 Remove superagent dependency
We’ve replaced it with more modern and Node.js based `got`:
https://www.npmjs.com/package/got
2018-03-08 16:21:27 -05:00
Daniel Gasienica
8b71155e7c Replace superagent with got for debug logs 2018-03-08 16:21:27 -05:00
Daniel Gasienica
52f7de6a10 Add debuglogs module 2018-03-08 16:21:27 -05:00
Daniel Gasienica
04afb6a318 Add form-data dependency
Used for upload debug logs to S3.
2018-03-08 16:21:27 -05:00
Daniel Gasienica
b4c6f6733b Add got dependency
The plan is to use this for our future HTTP needs as it is:
- modern
- promise based
- popular
- likely to support custom certificate authorities (CAs)

Chosen over the following alternatives:
- superagent (older, promises added later, potential lack of custom CA support)
- axios (no team experience with it; less popular than `got`)
- request (older, heavy-weight, promises not native)
- jQuery (old, trying to move away from jQuery altogether and move towards
  declarative UIs)
- `fetch` (too low-level, no native timeout support)
2018-03-08 16:21:27 -05:00
Daniel Gasienica
1e2cd3ae1f Rename ‘File a Bug’ to ‘Report an Issue’
This makes it more consistent with ‘Report an issue’ under View > Debug Log.

Not using ellipsis as menu item doesn’t require user confirmation:
https://stackoverflow.com/a/637708
2018-03-08 16:21:27 -05:00
Daniel Gasienica
1755e24854 Add ES2015 modules to JSHint ignore list 2018-03-08 16:21:27 -05:00
Daniel Gasienica
e4b34a6287 Make DebugLogView::submit async 2018-03-08 16:21:27 -05:00
Daniel Gasienica
acf48595f3 Show log in a monospaced font
Makes it easier for users to edit it as timestamps, etc., better align.
2018-03-08 16:21:27 -05:00
Daniel Gasienica
3ab3e93a28 Upload debug logs to debuglogs.org 2018-03-08 16:21:27 -05:00
Daniel Gasienica
bd5f3bd73a Make dialog title consistent with menu bar item 2018-03-08 16:21:27 -05:00
Daniel Gasienica
cb464c6301 Ensure isFocused always returns boolean 2018-03-08 16:21:27 -05:00
Daniel Gasienica
e289479c6b Add superagent dependency
HTTP client with higher-level API than `fetch` and support for timeouts, etc.
2018-03-08 16:21:27 -05:00
Daniel Gasienica
770e4ac96b Merge #2111 from gasi: Autofix: Move Debug Logs From GitHub Gists to debuglogs.org
- [x] Apply ESLint autofixes in preparation of changes to debug log publish change.
- [x] Remove now unnecessary `/* eslint-env browser */` directives from some files. This is now part of our per-folder ESLint configuration.

Manual changes: 77cc9b61c9..0cf64f5083
2018-03-08 16:18:49 -05:00
Daniel Gasienica
969127a72a Remove triple parens 2018-03-08 13:46:51 -05:00
Daniel Gasienica
f6fd979ccb Remove explicit ESLint browser directives 2018-03-08 13:46:51 -05:00
Daniel Gasienica
168788600a Fix lint errors 2018-03-08 13:46:51 -05:00
Daniel Gasienica
325c0628cd Remove Vim modeline 2018-03-08 13:46:51 -05:00
Daniel Gasienica
b3a3729261 Fix lint errors 2018-03-08 13:46:51 -05:00
Daniel Gasienica
6f7f55f783 Whitelist globals 2018-03-08 13:46:51 -05:00
Daniel Gasienica
090345523f Disable ESLint strict rule for module
`js/logging.js` acts as a module even though it lives in `js/*`.
2018-03-08 13:46:51 -05:00
Daniel Gasienica
7db44e35bd Allow node environment for js/logging.js 2018-03-08 13:46:51 -05:00
Daniel Gasienica
d4c9422a99 Apply ESLint auto-fixes: debug_log_view.js 2018-03-08 13:46:51 -05:00
Daniel Gasienica
5d6cd0ea39 Apply ESLint auto-fixes: js/logging.js 2018-03-08 13:46:51 -05:00
Daniel Gasienica
9d638797de Whitelist js/views/debug_log_view.js for ESLint 2018-03-08 13:46:51 -05:00
Daniel Gasienica
0f512e3925 Whitelist js/logging.js for ESLint 2018-03-08 13:46:51 -05:00
Scott Nonnenberg
9b25e106dc
v1.6.0-beta.2
Upgrade to the latest version of Electron, 1.8.2 (#2066)

Replace custom notification sound with system sound (#2108)

Update menus (#2078 and #2099)
  - A few copy changes to make things clearer
  - Settings now available via the File (Windows/Linux) or Signal
    Desktop (macOS) OS menu
  - Eliminate the triple-dot menu in the top-center of the screen

Fix: Hitting enter after entering device name on install would not move
to next screen (#2085)

Dev:
  - Ensure consistent builds using `yarn --frozen-lockfile` (#2098)
  - Update code to match eslint-enforced formatting (#2077)
  - Upgrade to latest version of electron-builder and associated
    packages (#2066 and #2097)
2018-03-05 17:10:09 -08:00
Daniel Gasienica
4562de8b24 Replace custom notification sound with system sound (#2108) 2018-03-05 10:55:04 -05:00
Daniel Gasienica
a61f2939fd Make isEnabled an instance variable 2018-03-05 10:29:11 -05:00
Daniel Gasienica
d6ff5af843 🎨 shouldUpdate --> needUpdate 2018-03-05 10:29:11 -05:00
Daniel Gasienica
541e0bfb72 Reduce log noise / size 2018-03-05 10:29:11 -05:00
Daniel Gasienica
a5a4ed7de7 Extract isAudioNotificationEnabled constant 2018-03-05 10:29:11 -05:00
Daniel Gasienica
dc38d40f20 Revert to disabled notification sound on <= Windows 7
We haven’t had the chance to test this using `node-notifier` on Windows 7.
2018-03-05 10:29:11 -05:00
Daniel Gasienica
4e01ca5135 Persist flashing of taskbar on Windows until window is focused
Fixes #1679.
2018-03-05 10:29:11 -05:00
Daniel Gasienica
5a4773fee7 Only play audio notification on supported platforms 2018-03-05 10:29:11 -05:00
Daniel Gasienica
85b121aca4 Rename shouldShowAudioNotificationSetting
Use `isAudioNotificationSupported` to make it less presentation layer specific.
2018-03-05 10:29:11 -05:00
Daniel Gasienica
105eb95391 Add tests for Settings.shouldShowAudioNotificationSetting 2018-03-05 10:29:11 -05:00
Daniel Gasienica
a98a7ba690 Add sinon dev dependency
Useful tool for testing: http://sinonjs.org/
2018-03-05 10:29:11 -05:00
Daniel Gasienica
dcf651fb51 Hide notifications audio setting on Linux 2018-03-05 10:29:11 -05:00
Daniel Gasienica
21339c6866 Add Settings type 2018-03-05 10:29:11 -05:00
Daniel Gasienica
91daedd619 Add OS module 2018-03-05 10:29:11 -05:00
Daniel Gasienica
dbc242c37f Improve debug log for notifications 2018-03-05 10:29:11 -05:00