dreadnaut / bordercolors-d

A Thunderbird add-on to color-code the compose window based on the selected identity.
GNU General Public License v3.0
18 stars 4 forks source link

Choosen colors are not saved #30

Open pierre264 opened 2 years ago

pierre264 commented 2 years ago

I am using Thunderbird T19.9.1 on Linux MINT 20.3 and I cannot use "bordercolors" because the colors I choose for each email address are not saved. When I restart Thunderbird the colors have been reseted to their default value. I was thinking first it was because I use a the "main password" feature of thunderbird, but removing this password change nothing.

dreadnaut commented 2 years ago

Hello Pierre, thank you for reporting here.

I have tried setting up a new profile with a master password, and BorderColors does not seem affected, as you pointed out. We'll have to investigate further then. I have two questions at this point:

Where to find error logs 🛠 - Disable all add-ons except BorderColors - Restart Thunderbird - Open the error console from Tools \ Developer Tools \ Error Console - Clear the log with the Bin icon in the top left—we'd like a clean slate - Open BorderColors' options, and change one of the colors - Open a new compose window, try to send a test email - If any red text appears in the logs, or any of the messages look suspicious to you, post the contents here—please amend any personal information first
pierre264 commented 2 years ago

I have sent you an email, but I tested again after and I see that there is problem with another add-ons (ReplyWithHeader) to save its parameters. So I think there is a problem with my configuration. Do you have any idea ?

reagle commented 2 years ago

Similar problem on macOS 12.4 21F79 arm64 with thunderbird: 102.0.3. It saves where I want the border fairly well, but the actual colors is hit and miss. I set them by changing each identity one at a time, clicking over to "Themes" from "Extensions", click back, disabling the extension, enabling the extension, restarting, and repeating.

reagle commented 2 years ago

I just upgraded from 102.0.3 (in homebrew) from 68, and notice that some of my configurations are not saving in the extension nostalgy++.

dreadnaut commented 2 years ago

If you have time, it would be useful to test what happens with a clean profile. You can start thunderbird -P to access the profile dialog. Create a new one, add the problematic add-ons, and see how it behaves.

I've been testing on Windows, with fresh and old profiles, but I can't reproduce the problem.

pierre264 commented 2 years ago

I have resolved the problem, it was due to my profile. I first tried to uninstall and reinstall thunderbird, but nothing better. I then :

And now all my extensions work fine and can save correctly their parameters.

reagle commented 2 years ago

@pierre264, good to know, but not something I'm willing to replicate yet given my 2GB of (local) mail and tons of configuration (e.g., filters, accounts, and such).

dreadnaut commented 2 years ago

Note that Thunderbird 102+ has an Export / Import function under the Tools menu, and it covers both email and settings.

You could:

  1. export your current profile data
  2. create a new profile
  3. use it to import the data exported at step (1)
  4. install your favorite add-ons
  5. if all works well, delete the original profile

I had to do something similar—manually 😱— when TB98 came out, and I had 4.5GB of email at the time! Still, worth having a fresh, working Thunderbird.

reagle commented 2 years ago

Yes, I tried many ways, including stepping individually from 68.* to 91.11.0, to 102.0. Using 102's import feature (didn't work well). I ended up just going from 68 to 102 with the same profile and got the colors saved by closing the color picker each time I selected a color for a given identity. (That is, leaving the color picker open when setting my four identities led to things getting lost.) I don't know why nostalgy++ is being weird, but I'm using "Quick Folder Move" in its stead for the time being.

opto/nostalgy-xpi/issues/186

dreadnaut commented 2 years ago

I've brought this up on the Add-ons dev mailing list: https://thunderbird.topicbox.com/groups/addons/T8d5c59edb609e559/add-ons-preferences-troubles-with-tb102

I'll leave this issue open for the moment, but I consider it "external": BorderColors uses standard and up-to-date API to save preferences 🤷‍♂️

dreadnaut commented 2 years ago

@pierre264, @reagle - I've been asked for a few more details to help the Thunderbird team debug your issue:

Happy to report your answers, or you can join the mailing list yourself —it's easy to leave.

Plus, there's the possibility to have a screen sharing issue with someone in the team, to investigate further.

reagle commented 2 years ago

As I mentioned, I tried many progressions and had problems with nostalgy++ and bordercolors-d no matter which avenue I took getting to 102. @jobisoft I'd be happy to do a screen sharing session.

I did not previously use either of these plugins, as I used "Identity Chooser" and "Nostalgy" with 68.

jobisoft commented 2 years ago

The first step in debugging profiles is to disable all other add-ons and check if bordercolors-d works if it is the only active add-on. Restart after disabling all other add-ons.

We should focus on Thunderbird 102 only.

reagle commented 2 years ago

Below is the Error Console from starting in "troubleshoot" mode. All addons are disabled, and you can see bordercolors-d say "hello" when I enable just it. It then fails to save configuration correctly. (I configured the colors without dismissing the color selector each time.) You'll also note that there's warnings about "addons.webextension.quickmove" which surprises me since it is not enabled.

1658838896186   addons.xpi  WARN    Checking /Applications/Thunderbird.app/Contents/Resources/distribution/extensions for addons
Cc[("@mozilla.org/addressbook/directory;1?type=" + (intermediate value))] is undefined 2 AddrBookManager.jsm:76
Successfully loaded OpenPGP library librnp.dylib version 0.16+git20220124.f06439f7.MZLA from /Applications/Thunderbird.app/Contents/MacOS/librnp.dylib RNPLib.jsm:100:15
Found 0 public keys and 0 secret keys (0 protected, 0 unprotected) RNPLib.jsm:301:15
Trying to load /Applications/Thunderbird.app/Contents/MacOS/libotr.dylib OTRLib.jsm:64:11
Successfully loaded OTR library /Applications/Thunderbird.app/Contents/MacOS/libotr.dylib OTRLib.jsm:72:13
services.settings: Failed to load last_modified.json: TypeError: NetworkError when attempting to fetch resource. Utils.jsm:330
1658838897102   addons.xpi  WARN    Addon with ID google@search.mozilla.org already installed, older version will be disabled
NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED: JavaScript component does not have a method named: "getItems"'JavaScript component does not have a method named: "getItems"' when calling method: [calICalendar::getItems] CalAlarmService.jsm:740
1658838897186   addons.xpi  WARN    Addon with ID ddg@search.mozilla.org already installed, older version will be disabled
1658838897198   addons.xpi  WARN    Addon with ID amazondotcom@search.mozilla.org already installed, older version will be disabled
1658838897213   addons.xpi  WARN    Addon with ID wikipedia@search.mozilla.org already installed, older version will be disabled
1658838897223   addons.xpi  WARN    Addon with ID bing@search.mozilla.org already installed, older version will be disabled
about:preferences : Unable to run script because scripts are blocked internally.
Cookie “” has been rejected as third-party. 6 aboutaddons.js:3334
Cookie “” has been rejected as third-party. 6 aboutaddons.js:3334
1658838925849   addons.webextension.quickmove@mozilla.kewis.ch  WARN    Loading extension 'quickmove@mozilla.kewis.ch': Reading manifest: "applications" property ignored and overridden by "browser_specific_settings"
Request to access cookie or storage on “<URL>” was blocked because we are blocking all third-party storage access requests and content blocking is enabled. 12
1658838925941   addons.webextension.quickmove@mozilla.kewis.ch  WARN    Loading extension 'quickmove@mozilla.kewis.ch': Reading manifest: "applications" property ignored and overridden by "browser_specific_settings"
Hello there, I'm BorderColors-D! background.js:10:9
1658838957880   addons.webextension.quickmove@mozilla.kewis.ch  WARN    Loading extension 'quickmove@mozilla.kewis.ch': Reading manifest: "applications" property ignored and overridden by "browser_specific_settings"
1658838957884   addons.webextension.quickmove@mozilla.kewis.ch  WARN    Loading extension 'quickmove@mozilla.kewis.ch': Reading manifest: "applications" property ignored and overridden by "browser_specific_settings" 
reagle commented 2 years ago

Actually removing "addons.webextension.quickmove@mozilla.kewis.ch" does not help.

reagle commented 2 years ago

Closing the color picker after each identity color selection seems to save the preference as stated earlier. I think @dreadnaut should speak to whether this is unexpected behavior for bordercolors-d.

dreadnaut commented 2 years ago

The expected behaviour is for color preferences to update when a new color is "selected" in the picker, and immediately apply to all open compose windows.

Identity colors are updated on change. I know that one of the Linux color pickers had some issues (#12), but I had not heard of the MacOS one having trouble yet 🤔

jobisoft commented 2 years ago

For a test version, you could add a log entry whenever a value is stored and after a fixed timeout of 2s, read the value back and log that as well, to see if storing itself works, or if the entire process is skipped.

dreadnaut commented 2 years ago

Let's try that: I've added some extra logging.

Could you download the test release and look for [BorderColors preferences] messages in the error console?

reagle commented 2 years ago

I set the colors on my 4 IDs (I removed the addresses from the PNG) without closing the picker, and then set the top bar border height to medium. Oddly, the log only shows the last color ("id-5") being set after setting the medium. Quitting TB and returning to the config shows only the last (id-5) has retained its color.

Screen Shot 2022-07-30 at 11 20 04
reagle commented 2 years ago

And I can confirm closing the color picker also shows the color change in the log. So I must do this (or perhaps change the border height) after every selection.

reagle commented 2 years ago

Just upgraded to 102.1 but no difference.

dreadnaut commented 2 years ago

Thanks for taking the time to test this @reagle!

It looks like the colour picker does not send a "change" event when you pick a different colour, but only when it's closed, either manually or by moving to a different control. That's an odd behaviour, but it would be consistent with the Linux (Gnome?) picker.

This might be a quirk of Thunderbird, but it might go all the way to Firefox, from which many controls are inherited 😱 Probably of interest for @jobisoft.