Commit Graph

1974 Commits (02571b7ae90e38fd3605ad258a0e049f2d88eb98)

Author SHA1 Message Date
Scott Nonnenberg 02571b7ae9
Copy audio-related files into js/ instead of symlinking them (#1456)
This adds a new copy:deps task into the overall default task, and it
needs to be run before running the product for the first time, and after
upgrading audio-related deps.

FREEBIE
8 years ago
Scott Nonnenberg db869c6ce4
Scroll to bottom when adding a new message (#1450)
Added a comment to try to make this easier to understand as you read it.

FREEBIE
8 years ago
Lilia 1b444a5e23
Make os notifications respect our sound setting (#1445)
This removes our custom notification sound in favor of the system sound, and
ensures that the system sound is disabled if the user unchecks the audio
notification option.

// FREEBIE
8 years ago
Michael Kirk f389380b26
scroll only when needed (#1441)
I believe this was just a simple typo

// FREEBIE
8 years ago
Scott Nonnenberg af81b1a045
Fix unlinked loading screen hang, fix error dialog on start (#1440)
* main.js: check for truthiness of mainwindow, not === null

FREEBIE

* background.js: Connect to websocket even if we are unlinked

We know registration isn't done, but it has been done before. So instead
of sitting tight, we connect to the socket to start everything up and
attempt to the websocket once more.

FREEBIE
8 years ago
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
8 years ago
Scott Nonnenberg 7a2c8e815c
Import: Wait until db writes resolve before saying we're done (#1401)
FREEBIE
8 years ago
Scott Nonnenberg 5099ca0ccd
Merge locale-provided strings into english for failover support
FREEBIE
8 years ago
Scott Nonnenberg e8c7e31363
Multi-error, multi-language, and cross-platform spell-check
FREEBIE
8 years ago
lilia ff1bad674e
Fix exception in install view
These lines throw TypeErrors for previously registered clients.

// FREEBIE
8 years ago
Scott Nonnenberg ac237b9e31
AppView: Store initialLoadComplete value for late openInbox
FREEBIE
8 years ago
Scott Nonnenberg 90cc0949b6
InstallView: Refactor step numbers into enum
FREEBIE
8 years ago
Scott Nonnenberg 7f8ade7747
Remove migration-related functionality, leaving export stuff
FREEBIE
8 years ago
Scott Nonnenberg 413fba80af
Separate dir selection from import, better import button text
This allows us to show the 'import in progress' screen only when the
user has successfully selected a directory.

FREEBIE
8 years ago
Scott Nonnenberg 0fbe43c2dc
Protobufs: More logging on failure to load protobufs, fix tests
FREEBIE
8 years ago
Scott Nonnenberg ff1cb3598d
Remove step 1 of previous setup flow, replaced by choice screen
FREEBIE
8 years ago
Scott Nonnenberg ba347744ff
Import: choice on first startup, workflow, ported to Node.js fs API
FREEBIE
8 years ago
Scott Nonnenberg 9c8fe1a9d8
Reschedule all timers on time travel, set interval back to 1000ms
FREEBIE
8 years ago
Scott Nonnenberg bc437095f6
Calm time travel checks, don't continually reschedule key rotation
FREEBIE
8 years ago
Scott Nonnenberg f37af04818
AppView.createInbox() - set this.inboxView immediately to be ready
If the 'empty' event is fired between the updateInbox() call and the
new InboxView() call afterwards, then the loading screen will never go
away. We fix that by immediately creating the InboxView but only adding
it to the DOM when the backing data is ready.

FREEBIE
8 years ago
Scott Nonnenberg eaf31705cc
A number of fixes for loading screen, recent rebase
FREEBIE
8 years ago
lilia 854374dc7c
Remove the old debug log menu item 8 years ago
lilia 11633d7d87
Make debug log available from the installer
Move debug log from inbox view to app view so it can be opened regardless of
whether we are showing the inbox view or the installer.

// FREEBIE
8 years ago
lilia 04e40043d2
Add View -> Debug Log to menu bar
Just send an event from the main process to the renderer,
The latter routes it the appropriate view method.

For now it's a no-op unless the main window exists and it is showing the inbox,
which will be addressed in a future commit.

// FREEBIE
8 years ago
Scott Nonnenberg bd3b8ae9f8
Note how many debug logs we have after we load them from DB
FREEBIE
8 years ago
Scott Nonnenberg 87a1fcc406
Fix trimming of debug log: remove first, use proper iteration var
FREEBIE
8 years ago
Scott Nonnenberg e4ceb21002
Use two interations instead of while loop for trimming log
FREEBIE
8 years ago
lilia 02df917f3a
Fix $name$ in confirmation dialogs
Our i18n shim supports multiple substitutions if you give it an array of strings
to use as replacements.

// FREEBIE
8 years ago
Scott Nonnenberg 8f0b0b121a
Add missing comma in ConversationView event list
FREEBIE
8 years ago
Scott Nonnenberg 3a3aa3efb6
Remove test/protos symlink, use window.PROTO_ROOT for config 8 years ago
Scott Nonnenberg 4402a91976
Use correct locale, fall back to en if we don't have translations
FREEBIE
8 years ago
lilia a2b2bd4bf3
Fix relative paths
// FREEBIE
8 years ago
lilia 26cece71c6
Prepopulate phone number on standalone page 8 years ago
lilia 4c5835e0af
Remove remaining call to extension.notification.update 8 years ago
lilia 7c6da5a157
Make 'Restart Signal' actually restart Signal
Previously it would just reload the page.

// FREEBIE
8 years ago
lilia d85ccbad4f
Remove extension.notification 8 years ago
lilia bd7f4febaa
Remove dead code
These are all unused, obsolete, or no-op functions at this point.

// FREEBIE
8 years ago
lilia c4ccf7c8e3
Inline setUnreadCount
// FREEBIE
8 years ago
lilia 29b07950a3
Fix scroll reset after clicking on a notification 8 years ago
lilia 2528acc717
Remove platform-specific links from install flow
Mostly to satisfy the mac app store.

// FREEBIE
8 years ago
lilia e65007e297
Tweak default notification content
Change the placeholder content for when notifications are configured for
count-only or sender-only. Remove some options that are no longer
supported.

// FREEBIE
8 years ago
lilia 79872be9f5
Unfurl notifications
Since we no longer have support for list-style notifications, stop
coalescing notifications into batches and just show contents of the last
message received. Also open the window when clicking on a notification
if it has previously been closed.

// FREEBIE
8 years ago
lilia 4d981c439a
Remove number validation from install view
Allows our special cased test numbers to link desktop clients.

// FREEBIE
8 years ago
lilia 76cd650577
Restore missing contactsync listeners
Fix installer getting stuck on "Generating Keys"

// FREEBIE
8 years ago
lilia d2179b2c3f
Conversation view handles drag n drop events
By forwarding them to its file input.

// FREEBIE
8 years ago
Scott Nonnenberg 601081c1b8
More refactoring to reduce global event dependencies
All Whisper.events listeners are now defined and bound in background.js,
and we no longer need global methods for opening the inbox and
conversation views, as those are handled by AppView or internally by
InboxView.

// FREEBIE
8 years ago
lilia 8d32a3bebd
Remove dead code
This view doesn't contain any elements with class openInbox.

// FREEBIE
8 years ago
lilia 4b96722d52
Hide initially empty error in standalone view
// FREEBIE
8 years ago
lilia 008e978b8a
Make standalone registration more accessible
Add buttons for switching between the linking flow and the standalone
registration flow. The button and standalone registration are only
availble in a development environment.

// FREEBIE
8 years ago
lilia a2e0fa59c1
Collect references to Whisper.events
Fixup

// FREEBIE
8 years ago