Commit Graph

890 Commits

Author SHA1 Message Date
6ac8a4c0bc GODT-2160: Ensure we can safely move cache file
It's currently impossible to wait until all SQLite write finish to disk.
This is not guaranteed when closing the ent DB client.

The existing code to move the cache handles the case where the
new location is on a new drive. However, due to the above issue this can
now lead to database corruption.

To avoid database corruption we now use the `os.Rename` function and
prevent moving the cache between drives until a better solution can be
implemented.
2022-11-29 16:33:53 +01:00
0827d81617 Other: Bump gluon version to drop non-UTF-8 commands 2022-11-29 16:20:16 +01:00
e71e56f7fe Other: Ensure context is string in sentry reports 2022-11-29 14:58:29 +00:00
7510ba2541 Other: include sentry dll for Windows deploy. 2022-11-29 14:26:09 +00:00
a78b2dee46 Other: GUI Tester supports the 3 states of user (Signed out/Locked/Connected). 2022-11-29 13:35:47 +00:00
2cce1c7b2a Other: setMailServerSettings is async as it should. 2022-11-29 13:31:12 +01:00
7533dc952d Other: update gui tester to support latest changes in gRPC implementation. 2022-11-29 11:57:07 +01:00
9f64e8a6fa Other: Wipe vault properly on factory reset
Deleting the file isn't enough because it's still held in memory
and is written back to disk on the next write (SetLastVersion during
bridge teardown).
2022-11-29 09:59:30 +01:00
f176174fca Other: Remove sentry test code 2022-11-29 09:41:25 +01:00
2747f3b492 GODT-2157: Add Sentry to Bridge-Gui 2022-11-29 08:05:48 +00:00
1c374b59d3 GODT-2160: Prevent double closing of bridge if restart fails
Set imapServer instance to nil once the server is no longer running to
prevent multiple calls to close on shutdown.
2022-11-29 08:38:21 +01:00
ae7ae2886f GODT-2041: Crash after factory reset
I forgot to remove the user from the users map during factory reset.
This meant the (deleted) would attempt to be closed during teardown.
2022-11-28 19:58:10 +01:00
b902f1490f GODT-2114: sanitize attachment disposition. 2022-11-28 18:20:48 +00:00
8e5040a357 GODT-1910: fix GUI not being notified of SMTP SSL being turned on by ConfigureAppleMail. 2022-11-28 17:55:55 +01:00
9881011043 GODT-1910: Fix save button state not being updated after being clicked once. 2022-11-28 17:16:16 +01:00
d4b8f3e1c2 GODT-2153: use file socket for bridge gRPC on linux & macOS.
Other: fix integration tests.
2022-11-28 16:51:13 +01:00
7fa81a7aca GODT-2150: Do not forward --no-window flag. 2022-11-25 14:55:51 +00:00
b7be599769 GODT-2151: Sync backwards to please product people 2022-11-24 13:04:00 +01:00
c3484dc062 GODT-2149: Sort logs by timestamp when clearing 2022-11-23 16:12:46 +00:00
578a12529c GODT-2137: set sentry sync transport. 2022-11-23 16:41:58 +01:00
e601245f01 Other(chore): Bump major version to v3 2022-11-23 16:08:27 +01:00
ad1fb47b0d Other: Switch from liteapi to go-proton-api 2022-11-23 15:17:56 +01:00
61287d05bf Other: Retry sync after cooldown if it fails 2022-11-23 12:47:16 +01:00
555453bc1a GODT-2142: Also permit split by comma in References header 2022-11-22 19:08:03 +01:00
f2db2b9b1d GODT-2085: Use time.Since, structured logging 2022-11-22 16:14:25 +01:00
4b6d0d035e GODT-2085: Ensure minimum sync worker count
Make sure that we are at least using 16 workers for sync, otherwise
multiply the current sync worker count by 2.

Finally, this patch also logs the duration of the time it takes to
transfer all the messages from the server.
2022-11-22 15:02:52 +00:00
57e9310510 Other: Use API call rather than server-specific method in test code 2022-11-22 16:01:01 +01:00
029c798eff Other: Switch to mail-api.proton.me 2022-11-22 15:59:36 +01:00
b81fa5ed39 GODT-2139: Validate key pass during login 2022-11-22 14:51:31 +00:00
1375f42869 Other: Clean up gRPC shutdown goroutine 2022-11-22 14:20:30 +00:00
6bd8c6ceb6 Other: Stop gRPC server on crash 2022-11-22 14:20:30 +00:00
0df4f41269 Other: Remove unused SyncBuffers setting 2022-11-22 13:59:06 +01:00
a2ab5df7ce GODT-2085: Revise sync algorithm
Revise syncing work distribution. Sync time can be reduced by up to 50%.

Rework the sync so that it pipelines better with bigger batch counts at
each stage. We now use 3 separate stages: Download, Updates and Sync.

The Download stage downloads messages in maxBatchSize intervals using
1.5x syncWorkers. Once the current batch has finished downloading it's
forwarded to the Updates stage and we proceed to download the next
batch.

The Update stage converts everything into gluon updates and prepares a
collection of noops that the sync stage can wait on for termination.

Finally the sync stage waits until the updates have been applied in
Gluon so that the vault information can be updated. We allow up to 4
pending wait operations to be queued currently to not block the
pipeline.
2022-11-22 12:32:47 +00:00
1395f1c990 GODT-2138: fix UserDataDir for Windows and mac. 2022-11-22 12:06:21 +00:00
c473e987f4 GODT-2134: fix dock icon on macOS when launched with '--no-window'. 2022-11-22 11:49:52 +00:00
b97ffc16ea Other: Don't migrate if prefs doesn't exist 2022-11-22 10:15:39 +00:00
1abda7555d GODT-2131: if refresh token is revoked, user gets signed out. 2022-11-22 07:23:07 +00:00
520361f7f3 GODT-2111: properly name bridge-gui lock 2022-11-21 20:33:00 +01:00
c8c9e911f6 Other: chores: removed comments in bridge-gui that were used for the transition Go -> C++ of the Qt code. 2022-11-21 17:31:22 +00:00
eb62056755 GODT-2119: Only show supported label IDs to clients 2022-11-21 17:15:51 +00:00
294d1edfee GODT-2120: Encrypt gluon store with gzip 2022-11-21 17:37:56 +01:00
febab47124 Other: Don't show corrupt vault as "no keychain" error 2022-11-21 17:15:28 +01:00
054d9b3f09 GODT-2111: Properly reset crash counter + remove additional Quit call. 2022-11-21 11:32:25 +01:00
a95eb759ca GODT-1910: use a single view for IMAP & SMTP SSL options. 2022-11-21 10:22:03 +00:00
d1f140ebcb Other: More descriptive event poll name 2022-11-21 10:20:28 +00:00
721cd9f319 GODT-2002: Wait for API events to be applied after send
When we send a message, the send recorder records the sent message.
When the client then appends an identical message to the sent folder,
the deduplication works and instead returns the message ID of the
existing proton message, rather than creating a new message. Gluon is
expected to notice that it already has this message ID and perform
some deduplication stuff internally.

However, it can happen that gluon doesn't yet have this message ID,
because we haven't yet received the "Message Created" event from the
API. To prevent this, we poll the events after send and wait for all
new events to be applied.

There's still a chance that the event wasn't generated yet on the API
side. Not sure what we can do about this.
2022-11-21 10:20:28 +00:00
e6a780ebd4 Other: Don't encrypt vault version 2022-11-21 09:58:56 +00:00
9868fae735 GODT-2105: Ensure ClientVersion is set in bug report request 2022-11-21 09:57:09 +00:00
c22037462e Other: Only update event ID in vault once all gluon updates were applied 2022-11-21 09:12:52 +00:00
1f0312573a GODT-1846: remove restart cues, implement restart-less behaviour.
Other: fixed case issue in SSL member function names.
Other: removed 'restart' mention in SMTP and IMAP SSL settings.
GODT-1846: modified gRPC server to introduce ConnectionMode settings.
GODT-1846: implemented connection mode handling in bridge-gui.
GODT-1846: implemented error reporting in bridge-gui for connection mode.
Other: gathered all IMAP/SMTP server settings.
GODT-1846: wired IMAP/SMTP port change errors.
Other: Renamed some error events and signals.
Other: Fixed crash in IMAP restart when not started.
Other: dismiss port error notifications before changing ports.
Other: misc. fixes.
2022-11-21 09:08:52 +00:00