See https://wiki.mozilla.org/Thunderbird/Add-ons_Guide_57 for changes relevant to Thunderbird 60. This commit also bumps up the minimum supported version to Thunderbird 52.
If Bitmask is shut down and Thunderbird is still running, notify the user using an alert to refresh the session by manually fetching messages ("Get new messages"). Otherwise if Bitmask has shut down and Thunderbird tries to fetch messages, it will throw up an error and to refresh the session, the user has to manually fetch the messages. There can be better ways of handling this but for now we should just make sure that the user knows why the messages are not being fetched in case Bitmask stops running or is shut down. Another solution can be to check for messages automatically for the user after Bitmask is running to refresh the session but the reason this approach was not preferred was because the user may not wish to check for new messages and force-checking would not be transparent. (Not to forget, the XUL hacks :) This commit also removes a redundant string bundle call.
Display a notification bar in the message pane if the message was encrypted for messages in the "Inbox" folder. For messages in the "Sent" folder, we have placeholder code for displaying the message state and for adding custom headers if required. However, we need to understand how to handle the case for multiple recipients with different encryption states since it's possible to send encrypted messages to recipients with known keys but the same message will be send unencrypted to recipients whose keys are not known. In such a case we can display the message status per-recipient.
When composing an email, display the encryption status for each address. If the public key for a given address is found, show the "lock" sign (encrypted) in front of it otherwise show the "unlocked" sign (unencrypted). This status is fetched using the keymanager.
Display the status of bitmaskd in Thunderbird's status bar by connecting to it using bitmask.js
Display the status of bitmaskd in Thunderbird's status bar by connecting to it using bitmask.js