While working on another bug, I discovered some issues with the
maintenance of parent references for IMAP Parameters being held in
ListParameters (of which every Parameter is held). This patch not
only tightens up references, it also verifies references are accurate
when the ListParameter is destroyed.
Any selection made in the link dialog will destroy a selection in the
editor. Previously, we corrected for this only when we had selected a
link, but we really need to do this every time.
https://bugzilla.gnome.org/show_bug.cgi?id=736689
Some rules, including @media rules, are dropped completely. Others,
like @font-face rules, are passed through unaltered. There's a
potential that these could interfere with rules we might specify in the
future.
Based on work by Simon Lipp.
https://bugzilla.gnome.org/show_bug.cgi?id=712904
This reduces lags by searching for incomplete emails in slices as
well as in separate database transactions.
This is a refinement of commit 6672f8, where the database was
searched in slices but in one transaction. This didn't completely
solve the db lags in this code path.
With the database improvements over this cycle, testing shows
that we can now switch to NORMAL synchronous mode with little to
no performance loss but better database safety.
This fixes a subtle bug in the IMAP stack. The most prominent symptom
was for the entire folder list to clear after running Geary for a day
or so. Smaller symptoms were less noticeable, but could include dropped
incoming messages (which would be picked up later when Geary was restarted
or the connection was dropped and reestablished).
The essential problem is that ClientConnection generates internal
IDLE commands to control data flow and to receive unsolicited
server data. It would always signal the corresponding IDLE responses
from the server. These were being stored in the ClientSession object
as "finished commands" for commands it did not issue, leading to the
internal IDLE tag being kept around in a hash map. When the tag
numbering rolled over (which could take 8 - 12 hours depending on the
connection) the ClientSession would complete new commands with those
leftover tags instantly, causing for results to be dropped and the
session state machine to be out of sync with the server.
The solution is simply not to report status responses for internal
IDLE commands.
The editor in the composer no longer shows its own scrollbar. Instead,
the conversation view allocates enough space to hold the composer
without any scrolling. The composer then positions and scrolls itself
to create the illusion that the outer scroll bar controls it.
To track the size of the composer, we put all the text in a div and mark
that as contenteditable. Then, when the div changes height, we update
the layout. We use the user_changed_contents signal as a proxy for
this.
https://bugzilla.gnome.org/show_bug.cgi?id=730955
When a TLS certificate warning is detected, the user will now be
presented with a warning dialog presenting them with three options:
Trust This Server, Always Trust This Server, and Don't Trust This
Server (the default). The user must select one of the first two
buttons for Geary to continue connecting to the server, otherwise it
will close the Account object for the duration of the application
session.
This patch introduces a dependency on gcr-3, which is used to pin TLS
certificates (i.e. persist the user's choice of ignoring the TLS
warnings).
Since different email accounts can have the same username, use the
full email address for the keyring to prevent collisions. This patch
will also migrate both username-based keys and the very early one-pw
keys (from 0.1).
When building sparse MessageSets, instead of constructing single one
it's possible for multiple to be returned, indicating that the number
of values exceeds a defined limit. This may require multiple I/Os to
complete all commands, although they can be pipelined.