Commit graph

6319 commits

Author SHA1 Message Date
Fabio Tomat
4a4e6a6992 Update Friulian translation 2020-09-15 05:20:06 +00:00
Fabio Tomat
56b77cf0d7 Update Friulian translation 2020-09-14 19:32:40 +00:00
Michael Gratton
26f3878a7a Update files for 3.38.0.1 2020-09-14 23:36:32 +10:00
Michael Gratton
a67d55bff6 Merge branch 'mjog/forgotten-sql-files' into 'mainline'
sql: Remember to install new SQL migration files

See merge request GNOME/geary!581
2020-09-13 14:22:45 +00:00
Michael Gratton
1e2ae9410f sql: Remember to install new SQL migration files 2020-09-13 23:59:00 +10:00
Jordi Mas
b72a8491c6 Update Catalan translation 2020-09-13 09:34:47 +02:00
Michael Gratton
22b642edef Update files for 3.38 2020-09-13 14:21:30 +10:00
Jordi Mas
ea40569251 Update Catalan translation 2020-09-08 22:42:52 +02:00
Fabio Tomat
d3905e141d Update Friulian translation 2020-09-08 14:22:36 +00:00
Michael Gratton
5b64939490 Update files for 3.37.92 2020-09-06 08:48:36 +10:00
Michael Gratton
45c27dffa4 Merge branch '921-slow-old-detach-query' into 'mainline'
Fix query performance regression in old message detachment

See merge request GNOME/geary!577
2020-09-05 05:09:30 +00:00
Michael Gratton
4ae97ab74b Merge branch 'mjog/921-db-locked' into 'mainline'
Database is locked error

See merge request GNOME/geary!576
2020-09-05 04:51:32 +00:00
Michael Gratton
6d473a2655 Geary.Logging.Record: Stop keeping a ref on logging source objects
When constructing a new record, rather that getting the state object
from a source and hanging on to it, just keep a few salient details
and then release it, so we don't keep a ref to the source hanging
around. This also means we need to pre-fill well-known up front, adding
some overhead when not logging.

This fixes hitting resource limits like memory and file descriptors
when lots of objects are logged, as seen when logging is enabled for
the DB, and in particular for `DatabaseConnection` objects, since each
one represents an open SQLite database file and related state.

It also ruins the glorious future in which we could inspect logged
objects in the Inspector in the same way that Firefox allows you to
inspect objects in the JS console, but c'est la ve. The way forward
there is probably adding structured data to state objects, allowing
sources to provide a curated set of properties to log.
2020-09-05 13:25:41 +10:00
Michael Gratton
2983990eca Application.Client: Ensure DB log messages show up in the inspector
Stop suppressing the db's logging domain by default for the moment.
2020-09-05 13:25:41 +10:00
Michael Gratton
dcad419b03 Geary.Db.DatabaseConnection: Add SQL debug logging when txns fail
This isn't a good place to do it, but neither GLib's error model not the
engine's database model makes it possible to getting access to
transaction state otherwise at the moment.
2020-09-05 13:25:41 +10:00
Michael Gratton
51ad8458a9 Geary.Db: Update logging implementation
Fix infinite recursion logging from DatabaseConnection caused by
`to_string` and Context implementing `to_logging_state` that calls that.
Make individual objects implement `Logging.Source` instead and have
them return appropriate, custom logging state individually.
2020-09-05 13:25:41 +10:00
Michael Gratton
257f6fb901 Geary.Db.Connection: Split up into db and transaction-specific impls
Convert `Connection` into an interface, add two concrete implementations
that allow splitting up the database connection used generally, and the
connection passed to transactions. This allows limiting the API surface
that transactions have access to (so they can't e.g. create
sub-transactions) and perform transaction-specific work (e.g. better
logging when an error occurs).
2020-09-05 13:25:41 +10:00
Chris Heywood
cea89ff9ec Fix query performance regression brought in with !556
The join used to determine how many messages should be left in the
folder was inefficient. The following query has also been performance
tested and found to be more efficient as a join (instead of a subquery).
2020-09-05 10:02:53 +10:00
Thibault Martin
801fa710cc Update French translation 2020-09-04 12:27:23 +00:00
Daniel Mustieles
d593fb37fe Updated Spanish translation 2020-09-04 13:07:11 +02:00
Michael Gratton
63b73c9d0e Merge branch 'mjog/imap-command-cancellation' into 'mainline'
IMAP command cancellation cleanup

See merge request GNOME/geary!574
2020-09-03 00:42:44 +00:00
Emin Tufan Çetin
850961467e Update Turkish translation 2020-09-02 11:43:48 +00:00
Michael Gratton
a123983cb0 Geary.Imap: Remove COMPRESS command
Geary hasn't used compression for IMAP in a while now due to the
possibility of information leakage for secure connections, so remove
the command as well.
2020-09-02 14:54:42 +10:00
Michael Gratton
a1b0547e67 Geary.Imap.Command: Improve cancelled-before send handling
Add `cancelled_before_send` method to support explicitly cancelling the
command before it was sent, so that `wait_until_complete` does not end
up waiting forever when this happens. Call the new method from
`ClientConnection` as required.
2020-09-02 14:42:39 +10:00
Michael Gratton
6c0607d809 Geary.Imap.Command: Rename cancel_send to something that better describes it
This method doesn't cancel sending as much as it halts any serialisation
that is occurring.
2020-09-02 14:42:33 +10:00
Michael Gratton
0707500561 Geary.Imap.ClientConnection: Avoid sending cancelled commands
Now that commands has a `should_send` cancellable property, check that
before queuing and before sending, so that cancelled commands never
actually get sent over the wire.
2020-09-02 14:34:41 +10:00
Michael Gratton
85e9046c71 Geary.Imap: Make command cancellable a property of the command object
Since both submitting a command no longer requires a cancellable, and it
is desirable to avoid sending a queued command that has already been
cancelled beforehand, add a new `Command.should_send` Cancellable
property to specify if a command should (still) be sent or not, and stop
passing a cancellable to ClientSession when submitting commands.

Allow call sites to pass in existing cancellable objects, and thus also
add it it as a ctor property to the Command class and all subclasses.

Lastly, throw a cancelled exception in `wait_until_complete` if send
was cancelled so that the caller knows what happened.

Remove redundant cancellable argument from
`Imap.Client.command_transaction_async` and rename it to
`submit_command` to make it more obvious about what it does.
2020-09-02 14:34:41 +10:00
Michael Gratton
67f0678b1d Geary.Imap: Don't cancel waiting for responses for submitted commands
The IMAP protocol does not allow commands to be cancelled once sent over
the wire to the server. However `IMAP.Command` objects are currently
submitted to be send with a cancellable, which may be cancelled before
the response is received from the server. If this happens, the repsonse
to the command from the server is not waited for, and untagged data from
the cancelled command may end up being handled by the subsequent
command, which is bad.

After submitting a command to the connection, don't supply the given
cancellable to the command's wait method, so it hangs around to handle
any tagged and untagged responses as required.
2020-09-02 14:34:41 +10:00
Michael Gratton
83156acf34 Merge branch 'mjog/797-sync-recoverable-error-loop-followup' into 'mainline'
ImapEngine.MinimalFolder: Fix embarrassing logic bug in commit 117051e5

Closes #964

See merge request GNOME/geary!573
2020-09-02 04:02:32 +00:00
Michael Gratton
29b3407139 ImapEngine.MinimalFolder: Fix embarrassing logic bug in commit 117051e5
See !571

Fixes #964
2020-09-02 13:28:08 +10:00
Michael Gratton
0de5d137b5 Merge branch 'mjog/966-goa-retry-ensure-creds' into 'mainline'
GoaMediator: Re-try calling EnsureCredentials if auth error occurs

See merge request GNOME/geary!572
2020-09-02 02:03:09 +00:00
Michael Gratton
5b301db5e3 GoaMediator: Re-try calling EnsureCredentials if auth error occurs
Per GOA docs, if that calls fails with an auth error, we need to try
it again.

See #966
2020-09-02 11:37:00 +10:00
Michael Gratton
9af04622ff Merge branch 'mjog/797-sync-recoverable-error-loop' into 'mainline'
ImapEngine.MinimalFolder: Add workaround for infinite "recoverable error"

Closes #797

See merge request GNOME/geary!571
2020-09-01 12:38:23 +00:00
Michael Gratton
3c4673900f Merge branch 'mjog/959-unloc-button' into 'mainline'
Fix composer Cancel label not being marked as translatable

Closes #959

See merge request GNOME/geary!570
2020-09-01 12:12:03 +00:00
Michael Gratton
117051e5b3 ImapEngine.MinimalFolder: Add workaround for infinite "recoverable error"
Workaround for infinite "recoverable error" loop on sync when the
folder's network connection has gone away unnoticed.

Fixes #797
2020-09-01 22:01:42 +10:00
Michael Gratton
5ab4838a77 ui/composer-headerbar.ui: Fix label not being marked as translatable
Fixes #959
2020-09-01 21:38:32 +10:00
Bruce Cowan
923a6b7a42 Update British English translation 2020-08-31 18:51:49 +00:00
Michael Gratton
87340a9675 Merge branch 'mjog/955-special-use-unavailable-at-startup' into 'mainline'
Geary.Account.Information: Fix special use folder not correctly stored

See merge request GNOME/geary!569
2020-08-31 04:17:32 +00:00
Federico Bruni
b50f1a8626 Update Italian translation 2020-08-30 15:13:43 +00:00
Emin Tufan Çetin
a473d2a19e Update Turkish translation 2020-08-30 09:31:09 +00:00
Michael Gratton
39f687fcd3 Geary.Account.Information: Fix special use folder not correctly stored
The special use map needs custom hash and equality functions to
work correctly. Add these and some unit tests.

See #995
2020-08-30 18:26:26 +10:00
Piotr Drąg
d75faa8d43 Update Polish translation 2020-08-29 12:07:29 +02:00
Michael Gratton
9f2b501eb6 Merge branch 'mjog/950-test-case-conversion-locale' into 'mainline'
RFC822MesageTest: Fix locale-sensitive test case

Closes #950

See merge request GNOME/geary!568
2020-08-29 09:35:48 +00:00
Michael Gratton
5e4ec86445 Merge branch 'mjog/810-goa-startup-freeze' into 'mainline'
Application.GoaMediator: Fix UI freeze while waiting for auth token

Closes #810

See merge request GNOME/geary!567
2020-08-29 09:22:11 +00:00
Michael Gratton
a64412e696 RFC822MesageTest: Fix locale-sensitive test case
Use `ascii_down()` instead of `down()` so the test case is more robust
in the face of being run under different locales.

Fixes #950
2020-08-29 18:33:15 +10:00
Michael Gratton
96c27ea9d0 Merge branch 'mjog/fix-find-crash' into 'mainline'
ConversationWebView: Fix crash performing find in conversation

See merge request GNOME/geary!566
2020-08-29 08:25:52 +00:00
Michael Gratton
e40f0bd526 Application.GoaMediator: Fix UI freeze while waiting for auth token
The GOA mediator was using the sync GOA API to access tokens due to
GNOME/vala#709. That's been fixed for ages, so lets use the async
versions instead.

That will help prevent the UI freezing when GOA tokens are being updated
in the background, such as in #810.
2020-08-29 17:59:26 +10:00
Michael Gratton
87a5a3e78d ConversationWebView: Fix crash performing find in conversation
WebKit.FindController seems to be signalling found/not-found/cancelled
signals multiple times when typing text in the find entry (perhaps
when not found and cancelled due to the next keystroke?), causing the
async call to be resumed more than once and thus triggering a vala
assertion ensuring that doesn't happen.

This commit adds guards so that once the method has resumed once, it is
not resumed again.
2020-08-29 17:56:25 +10:00
Michael Gratton
d8d59cd565 Components.ReflowBox: Un-mark developer-only strings for translation 2020-08-29 11:57:38 +10:00
Jiri Grönroos
9e1aaf2d22 Update Finnish translation 2020-08-28 14:30:35 +00:00