Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Let user decide if future update notifications are shown or not #1640

Open
hartsberger opened this issue Jun 12, 2024 · 10 comments
Open

Let user decide if future update notifications are shown or not #1640

hartsberger opened this issue Jun 12, 2024 · 10 comments

Comments

@hartsberger
Copy link

Describe the feature you'd like to request

As a followup of my first feature request (#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

Copy link

Hello 👋

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 💙

@marcelklehr
Copy link
Member

marcelklehr commented Jun 12, 2024

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.

@hartsberger
Copy link
Author

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?

@marcelklehr
Copy link
Member

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.

@hartsberger
Copy link
Author

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.

@marcelklehr
Copy link
Member

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

@hartsberger
Copy link
Author

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?

@marcelklehr
Copy link
Member

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?

@hartsberger
Copy link
Author

I can only modify these things in my deployment process:

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

@marcelklehr
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Development

No branches or pull requests

2 participants