floccus icon indicating copy to clipboard operation
floccus copied to clipboard

Let user decide if future update notifications are shown or not

Open hyperlink-skylight opened this issue 1 year ago • 10 comments

Describe the feature you'd like to request

As a followup of my first feature request (https://github.com/floccusaddon/floccus/issues/1634) It would be great when the user gets asked if future update notifications should be shown or not.

Describe the solution you'd like

Add a section to the update page that lets the user decide if future update notifications should be shown or not. (Just like the "Automated Error Reporting" options that are available on the update page)

Describe alternatives you've considered

I know that you rely on donations and that this feature request could reduce the amount of donations due to the user is not aware of it anymore.

Alternative 1: Ask the user if update notifications should not be shown until:

  • a new major version gets installed
  • a period of X months is over This would be something between "update page doesn't annoy user" and "you still get donations".

Alternative 2: If the Add-On is used on many clients in a company, give an admin somehow the option to turn of those messages globally. Question: If you receive a (yearly) donation from a company, would it be possible to hide all the donation-messages?

Thanks

hyperlink-skylight avatar Jun 12 '24 09:06 hyperlink-skylight

Hello :wave:

Thank you for taking the time to open this issue with floccus. I know it's frustrating when software causes problems. You have made the right choice to come here and open an issue to make sure your problem gets looked at and if possible solved. I'm Marcel and I created floccus and have been maintaining it ever since. I currently work for Nextcloud which leaves me with less time for side projects like this one than I used to have. I still try to answer all issues and if possible fix all bugs here, but it sometimes takes a while until I get to it. Until then, please be patient. Note also that GitHub is a place where people meet to make software better together. Nobody here is under any obligation to help you, solve your problems or deliver on any expectations or demands you may have, but if enough people come together we can collaborate to make this software better. For everyone. Thus, if you can, you could also have a look at other issues to see whether you can help other people with your knowledge and experience. If you have coding experience it would also be awesome if you could step up to dive into the code and try to fix the odd bug yourself. Everyone will be thankful for extra helping hands! One last word: If you feel, at any point, like you need to vent, this is not the place for it; you can go to the forum, to twitter or somewhere else. But this is a technical issue tracker, so please make sure to focus on the tech and keep your opinions to yourself.

I look forward to working with you on this issue Cheers :blue_heart:

github-actions[bot] avatar Jun 12 '24 09:06 github-actions[bot]

Hi @hartsberger I see your dilemma.

a period of X months is over

What would be X months be ideally, in your opinion. Currently, it's set to 35 days.

marcelklehr avatar Jun 12 '24 09:06 marcelklehr

In my opinion 6 months would be sufficient.

But this would still be interesting:

Question: If you receive a (yearly) donation from a company, would it be possible to hide all the donation-messages?

hyperlink-skylight avatar Jun 12 '24 10:06 hyperlink-skylight

Are you able to set values in web extension local storage with your deployment method? You could set the time the last intervention was displayed to 2050 and it would never get shown.

marcelklehr avatar Jun 12 '24 10:06 marcelklehr

Can you please describe where this storage should reside in Mozilla Firefox and Microsoft Edge? Do I have to add some lines to "prefs.js" for Firefox? Or how can I modify these storages? Thanks.

hyperlink-skylight avatar Jun 12 '24 12:06 hyperlink-skylight

That's a good question, I don't know where the different browsers store this data.

marcelklehr avatar Jun 12 '24 14:06 marcelklehr

Well, then I am not able to set values in these storages. If anyone else could give me a hint, this would be awesome.

Back to topic: Is there a chance that you set a greater time period?

hyperlink-skylight avatar Jun 13 '24 04:06 hyperlink-skylight

I've increased the time to 75 days now. I think understand your need. Basically, we would need to disable the update screen for company installations, ideally only for those that donate. What are you able to influence in your deployment process? Do you have other extensions where this works for example?

marcelklehr avatar Jun 16 '24 11:06 marcelklehr

I can only modify these things in my deployment process:

  • Registry keys
  • Config files in %APPDATA%
  • Browser config via ADMX

hyperlink-skylight avatar Jun 18 '24 06:06 hyperlink-skylight

ADMX sounds like an interesting possibility:

LLM explanation on using ADMX to set config values for web extensions

To set a value using ADMX (Administrative Templates) that a web extension in Firefox or Edge can read, you need to configure the appropriate group policy settings. This involves creating or editing ADMX files to define policies and then applying these policies via Group Policy Management. Here's how you can do it:

Step-by-Step Guide for Firefox

  1. Download the Firefox ADMX Templates:

  2. Add ADMX Templates to Group Policy:

    • Extract the downloaded files.
    • Copy the .admx files to C:\Windows\PolicyDefinitions on your domain controller.
    • Copy the corresponding language files (e.g., .adml) to C:\Windows\PolicyDefinitions\en-US or your respective language folder.
  3. Configure Policies:

    • Open the Group Policy Management Console (GPMC) and create a new Group Policy Object (GPO) or edit an existing one.
    • Navigate to Computer Configuration > Policies > Administrative Templates > Mozilla > Firefox.
    • Configure the desired policies. For example, you might set an extension's configuration using the ExtensionSettings policy.
  4. Set Custom Preferences:

    • To set custom preferences that your web extension can read, you can use the Preferences policy. Here’s an example of setting a custom preference:

      {
        "Extensions": {
          "[email protected]": {
            "install": true,
            "locked": {
              "customPreference": "customValue"
            }
          }
        }
      }
      
  5. Deploy the Policy:

    • Link the GPO to the appropriate organizational unit (OU) in Active Directory.
    • Force a policy update on the target machines using the command gpupdate /force.
  6. Read the Preference in the Extension:

    • In your web extension, you can read the preference using the browser.storage.managed API.
    browser.storage.managed.get('customPreference').then((result) => {
      console.log('Custom preference:', result.customPreference);
    });
    

Step-by-Step Guide for Microsoft Edge

  1. Download the Edge ADMX Templates:

  2. Add ADMX Templates to Group Policy:

    • Extract the downloaded files.
    • Copy the .admx files to C:\Windows\PolicyDefinitions on your domain controller.
    • Copy the corresponding language files (e.g., .adml) to C:\Windows\PolicyDefinitions\en-US or your respective language folder.
  3. Configure Policies:

    • Open the Group Policy Management Console (GPMC) and create a new Group Policy Object (GPO) or edit an existing one.
    • Navigate to Computer Configuration > Policies > Administrative Templates > Microsoft Edge > Extensions or other relevant settings.
  4. Set Custom Preferences:

    • To set custom preferences that your web extension can read, use the ExtensionInstallForcelist and ExtensionSettings policies. Here’s an example of configuring an extension and setting a custom preference:

      {
        "ExtensionInstallForcelist": ["[email protected]"],
        "ExtensionSettings": {
          "[email protected]": {
            "installation_mode": "force_installed",
            "preferences": {
              "customPreference": "customValue"
            }
          }
        }
      }
      
  5. Deploy the Policy:

    • Link the GPO to the appropriate organizational unit (OU) in Active Directory.
    • Force a policy update on the target machines using the command gpupdate /force.

Floccus could then read the settings you have set in the json.

marcelklehr avatar Jun 19 '24 11:06 marcelklehr

@hartsberger what do you think?

marcelklehr avatar Jul 05 '24 09:07 marcelklehr

Closing due to lack of response.

marcelklehr avatar Aug 11 '24 08:08 marcelklehr

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

github-actions[bot] avatar Aug 12 '25 00:08 github-actions[bot]