Commit Graph

1314 Commits (531d1701efb68dd032b027efcb05b100442627f0)

Author SHA1 Message Date
lilia 2128ee63aa Update libaxolotl
// FREEBIE
10 years ago
lilia 84235ef58e Use forEach instead of loop
// FREEBIE
10 years ago
lilia c02054d5da Pass ciphertext as ArrayBuffer instead of string
// FREEBIE
10 years ago
lilia 6053fe67ba Use built-in string conversion on protobuf
In lieu of a global helper.

// FREEBIE
10 years ago
lilia 3e0bce2b21 Move, rename, and simplify toArrayBuffer helper
This function is only ever used to convert groupIds from strings to
array buffers in sendmessage.

// FREEBIE
10 years ago
lilia 7dff9ac51b Update libaxolotl
// FREEBIE
10 years ago
lilia 151b9797f6 Perform components concatenation missed in ec6948
// FREEBIE
10 years ago
lilia 0434c4bc53 Fixes #663 Conversation list loads in reverse order
The onChangeActiveAt listener promotes newly activated conversations to
the top of the inbox. By firing on an 'add' event, if the conversation
list happened to load after the inbox frontend was initialized, each new
entry would be incorrectly moved to the top, effectively reversing the
list.

// FREEBIE
10 years ago
lilia 1b72ef6170 Restore notifications heading
// FREEBIE
10 years ago
Blake Griffith 0ceb8e7038 i18n notification's settings dialog
FREEBIE
10 years ago
Blake Griffith 24e4d9c615 'off' -> 'disable notifications' in settings
FREEBIE
10 years ago
lilia 7578991f4e Remove emoji logging
// FREEBIE
10 years ago
lilia 57d64fe669 Fix session corruption due to database races
Prevent races between encrypt and decrypt calls, and other read/write
operations on the session store by serializing session io ops per
device.

Possible fix for #535

// FREEBIE
10 years ago
lilia f0539fda52 Fix exception when drawAttention is called too early
// FREEBIE
10 years ago
lilia 28c82531d3 Allow promises to handle identity removal failure
Previously this exception was thrown in a callback which did not
propogate it up to the enclosing promise.

// FREEBIE
10 years ago
lilia a98de39173 Warn if writing to storage too early
// FREEBIE
10 years ago
Sam Lanning 662020ce68 Add title text for emoji in messages.
Fixes #250

// FREEBIE
10 years ago
Sam Lanning 7b1c06538d Updated twemoji to v1.4.2
This allows us to define the "attributes" option, allowing for emoji titles.

// FREEBIE
10 years ago
lilia 0763cf14a3 Remove messages from notifications when read
Remove individual messages from Notifications when marked read.
Previously this was only done from the conversation model when marking
the entire conversation as read.

Fixes #717

// FREEBIE
10 years ago
lilia fd8bac2003 Fix conversation list ordering
Order conversation list by timestamp instead of active_at. The former is
the send time of the most recent message. The latter is typically the
receive time of that message. This can cause mis-ordering if you send a
message while processing a backlog of incoming messages.

Fixes #617

// FREEBIE
10 years ago
lilia 5f07c74f1a Add log statement when opening provisioning socket
Make it more obvious via logs which server someone is attempting to
register with (i.e., to disambiguate staging from prod).

// FREEBIE
10 years ago
lilia 9ea9a8160b Add logging when opening inbox
// FREEBIE
10 years ago
lilia 2b7cbef8b1 Rename a function
Avoid confusing this operation with actual receipts, which are something
else.

// FREEBIE
10 years ago
lilia b77d5df4f2 Fix markRead when messages have not been loaded yet
Query the database and not just the in-memory messages.

// FREEBIE
10 years ago
lilia 01053335ac Don't send empty read status reports
// FREEBIE
10 years ago
lilia f88b33a135 Fix unread message lookup in markRead
// FREEBIE
10 years ago
lilia c4a88dd651 Fix getUnread query
Booleans are not valid keys in indexeddb.
https://www.w3.org/TR/IndexedDB/#dfn-valid-key

// FREEBIE
10 years ago
lilia 8fdf58971c Add missing semicolons
// FREEBIE
10 years ago
lilia c3bbdb393f Refactor media uploading step
Move this to its own function which encapsulates the error handling for
it.

// FREEBIE
10 years ago
lilia 44b1a6451d Add validation to Message class
// FREEBIE
10 years ago
lilia 2e30c4388f Set destination on end session messages for syncing
// FREEBIE
10 years ago
lilia e91f646920 Fix initial post-sync timestamps
Fixes #669

// FREEBIE
10 years ago
lilia d121effe3b Add logging for clearing taskbar attention
// FREEBIE
10 years ago
lilia 71467822f6 Clear key conflict before replaying it
Don't save the change until we successfully process the message, but
make it first so that the user sees the error disappear when the new key
is accepted.

// FREEBIE
10 years ago
lilia f7191ad9de Clear notification when the last one is removed
Previously, we switched to not updating the notification popup on a
removal, since this usually respawns a new notification popup
unexpectedly. However, when the last relevant notification is cleared
(ie, by opening/reading the thread before the notification times out and
disappears on its own) we should clear the existing popup if there is
one.

// FREEBIE
10 years ago
lilia 1f897f32b7 Track and sync unread messages
// FREEBIE
10 years ago
lilia 1be45f3775 Derive global unread count from individual counts
// FREEBIE
10 years ago
lilia 781ada64ca Add libtextsecure support for syncing read messages
Plumbing for sending and receiving a new sync protobuf for marking
messages read on/from my other devices.

// FREEBIE
10 years ago
lilia ecf2885a6c Do post-send tasks when resolving conflicts
Fixes #684

// FREEBIE
10 years ago
lilia 731052ad0a Clear old key conflict errors after failed replay
If the replay failed due to a bad mac or other decryption error for some
other reason we still want to clear the conflict. If it failed because
it's still in conflict then the newly returned error will reflect that
and be saved.

// FREEBIE
10 years ago
lilia cc0b8e835a Don't show left groups in list of all contacts
// FREEBIE
10 years ago
lilia ef9559d844 Add tests for filtering left groups from search
// FREEBIE
10 years ago
lilia 7e8ce5eb54 Omit left groups from search
Unless they contain messages.

// FREEBIE
10 years ago
lilia 010297f4c5 Track groups I've left
// FREEBIE
10 years ago
lilia f940676357 Ignore attempts to post empty debug logs
Fixes #697

// FREEBIE
10 years ago
lilia a962d97bfb Fix debug log submission loading UX
This flow broke a bit with transition to modal debug log.

Restructure such that the loading class can be applied to an appropriate
element inside the modal. Ensure that the input elements are hidden when
submit is clicked, the result elements are shown when the log upload is
completed.

// FREEBIE
10 years ago
lilia 7f8c76faca Make debug log as big as possible
Tweak style to make the modal reasonably wide/tall, and use flexbox
to automatically expand the textarea.

// FREEBIE
10 years ago
lilia 636c0f2a60 Put debug log in a modal
Also dedupe close-button style

// FREEBIE
10 years ago
lilia 33fde3d4e7 Dedupe modal styles
// FREEBIE
10 years ago
lilia 74aeddcbda Add missing view file
// FREEBIE
10 years ago
lilia 173e037fa6 Fix minor style errors
And keep it that way, by making jscs config more opinionated.

// FREEBIE
10 years ago
lilia 18e9ded296 Fix storage.put
Adding an existing id to a collection is a no-op. To update an existing
item, we must pass {merge: true} as an option.

// FREEBIE
10 years ago
lilia a3c6061480 Add Notification Settings
Fixes #471

// FREEBIE
10 years ago
lilia 4ab2e25df6 Refactor Contact and Conflict views
Untangle these two views into their component parts, consolidating all
the key conflict logic in the key conflict view. Contact view now simply
renders basic contact info and miscellaneous errors but not conflicts or
message errors.

// FREEBIE
10 years ago
lilia 1e1b87bbbd Add session store logging
// FREEBIE
10 years ago
lilia 1bd0855d93 Remove duplicate display of network errors
Network errors render as a resend dialogue at the top of the message
detail and need not be re-reported in the contact list or errors
section.

// FREEBIE
10 years ago
lilia f221921127 Tweak conflict style
// FREEBIE
10 years ago
lilia 28c763992a Move error indicators on message bubbles
// FREEBIE
10 years ago
lilia 5340791868 Display key conflict dialog inline
One less modal.

// FREEBIE
10 years ago
lilia ad66da9fb5 Move identity conflicts to top of message detail
Also restyle them as with network errors

// FREEBIE
10 years ago
lilia f5436a5123 Clicking on message status icon opens detail view
Additionally, hovering over it will apply cursor: pointer. Previously
only the timestamp exhibited this behavior.

// FREEBIE
10 years ago
lilia 496ac30d6f Process delivery receipts from yourself
Fixes #668

// FREEBIE
10 years ago
lilia cd7bc78b1d Refactor delivery receipt processing
Replace the where, forEach, and found pattern with a find.

// FREEBIE
10 years ago
lilia b602533084 Serialize calls to sendSyncMessage
Fixes #679

// FREEBIE
10 years ago
lilia 6154dbb8db Fix debug log growing uncontrollably
Races between adding new log entries and fetching old ones can cause an
overage of more than one entry.

// FREEBIE
10 years ago
lilia b8602a3b42 Make migrations more robust
Occasionally these will fail if they happen to be executed before the
necessary dependencies (storage, ConversationCollection) are declared.

// FREEBIE
10 years ago
lilia 48626ceafb Remove spurious storage.fetch from migration
This should really only be called once, from background.js.

Calling it twice can cause doubled listeners for the registration_done
event, which in turn leads to duplicate post-registration callbacks,
dual sync requests, and an eventual datastore inconsistency.

Fixes #670

// FREEBIE
10 years ago
lilia 1f2dfc5ea9 Only update notification on add
Previously, notifications were persistent until explicitly dismissed
from the notification center (a bell icon in the system tray), but that
ui has been removed from chrome*, so now updating on remove is
unexpectedly creating a new notification pop up.

*http://blog.chromium.org/2015/10/streamlining-notifications-on-desktop.html

Fixes #667

// FREEBIE
10 years ago
lilia 4198987723 Display a message when provisioning socket fails
Fixes #464

// FREEBIE
10 years ago
lilia 7e82d1295c Handle attachment upload errors
Adds a new kind of replayable error that handles retry of pre-encryption
failures, e.g., attachment upload.

Fixes #485

// FREEBIE
10 years ago
lilia 910e37649a Let group messages use new Message class
// FREEBIE
10 years ago
lilia 3bffdd96f5 Add sendMessage to handle sending from Message class
// FREEBIE
10 years ago
lilia ecdfa09e97 Create a helper class for constructing messages
// FREEBIE
10 years ago
lilia b73a3aea80 Fix syntax error
// FREEBIE
10 years ago
lilia cee2b3163a Add missing bind in messageReceiver
// FREEBIE
10 years ago
lilia 7dcad67410 Fix handleSentMessage
Missing a bind in 27fe7e3.

// FREEBIE
10 years ago
lilia d4760452d1 Add signal agent to server requests
// FREEBIE
10 years ago
lilia 7bab669ef0 Rebuild components
// FREEBIE
10 years ago
lilia 27fe7e355e Process end session flags in sync messages
Because remote clients will delete all sessions in response to an end
session message, regardless of which device it came from, when our
linked device sends an end session message, we must also end all
sessions with the destination.

This change moves the end session flag processing to processDecrypted,
which is shared between handlers of sent messages, data messages, and
messages which are re-tried after resolving identity conflicts.

// FREEBIE
10 years ago
lilia fe82e469f2 Make end session consistent with android
Close all the sessions for a number when receiving an end session
message.

// FREEBIE
10 years ago
lilia bf632bfa54 Fix migrations
Migrations should always call next() exactly once.

// FREEBIE
10 years ago
lilia 87ddcef333 Make debug log persistent
Save log entries in indexedDB rather than just in memory. Reload them
whenever the background page is refreshed.

// FREEBIE
10 years ago
lilia 86132a38a8 Log envelopes and session end events
Help debug bad session errors by logging some envelope info about the
message we are about to decrypt. With this, if there is a decryption
error (e.g., bad mac or no session) it is clear from the logs what
number and device message sent the bad message.

Also log when we send and receive end session messages and when we close
sessions for certain devices.

// FREEBIE
10 years ago
lilia 137b992f87 Fix "Delete Messages" not deleting all messages
Since the introduction of infinite scroll, the delete messages function
has only deleted the currently loaded set of messages in a conversation.
To fix this, we should fetch all the messages and then delete them.

Fixes #645

// FREEBIE
10 years ago
lilia 080c233a93 Add timestamp update interval test
Break out delay computation into its own function and add tests,
including a regression test for #646.

// FREEBIE
10 years ago
codedust 9b390baea0 Fix a bug that causes 100% CPU load in timestamp_view.js
When `millis_since` becomes larger than one week, `delay` becomes
negative and is set to Zero. This causes an infinite loop and therefore
100% CPU usage (single thread).

// FREEBIE
10 years ago
lilia b0def76801 Remove unused code
Well that never worked.

Closes #458

// FREEBIE
10 years ago
Lorenz Hübschle-Schneider e876d8f6ed Display relative timestamps in conversation list
This mimicks Signal-Android's relative timestamps.
Previously, only the date was displayed.

Fixes #284
10 years ago
Sam Lanning 0569d4c889 Replace conversation panel js resizing with flex styling.
// FREEBIE
10 years ago
Sam Lanning c4a9ac94b4 Improve Confirmation Dialog
Some basic modifications to the Confirmation Dialog:
* Always attached to <body> regardless of view that called it.
* Always centered horizontally on screen.
* A black semi-transparent overlay is now displayed over everything, and under
  the dialog.
* Various other style changes.

fixes #389

// FREEBIE
10 years ago
lilia 9d644d4037 Update libphonenumber
Fixes #531

// FREEBIE
10 years ago
lilia a9cba1471a Update our own key on re-install
Previously we would delete our own key from the trust store when
re-linking, in case it changed. We can also immediately take one step
further and store the new key. Typically this happens in the course of
requesting sync info from the master device, except in the case of
standalone clients.

Closes #596

// FREEBIE
10 years ago
lilia 43071d94d6 Log invalid number inputs
// FREEBIE
10 years ago
lilia 05681ce35b Don't render placeholder markup unless necessary
Rather than always rendering divs for the key and placeholder, render
the placeholder only if the key is missing.

// FREEBIE
10 years ago
jakob 6c7f2cf0fc Show help text for unknown contact identity
Adds a new message string "theirIdentityUnknown".

Fixes #576

// FREEBIE
10 years ago
2-4601 ea0e013e81 Add a trifle of i18n to KeyVerificationView
Two strings were left behind:
- "Their identity (they read)"
- "Your identity (you read)"

I saved them.

// FREEBIE
10 years ago
Sam Lanning ac25b62fdc Improve implementation of i18n for Install Flow following comments on #611
* Move install flow i18n logic to install_view.js (from options.js)
* Switch to using placeholders (instead of jQuery) for i18n messages with html.
* Switch to using moustache template instead of jQuery for i18n substitution.

// FREEBIE
10 years ago
Sam Lanning 0825d3e22f Implement i18n for Install Flow
Fixes #600

// FREEBIE
10 years ago
lilia 3a494bf2a3 Log when we draw attention to the window
Hopefully help debug spurious cries for window attention.

// FREEBIE
10 years ago
lilia 7301a4c0fb Quick fix for inbox not opening on launch
Fixes #610

// FREEBIE
10 years ago