dis-moi / extension

:speech_balloon: Never browse alone again
https://www.dismoi.io/
Other
42 stars 12 forks source link

The Automatic subscription process has various negative implications #855

Open zhinu opened 3 years ago

zhinu commented 3 years ago

Describe the bug When a user has 0 subscriptions an automatic process takes place and subscribe the user to 20 accounts.

Context Apparently, this process was put in place because some accounts randomly would fall to 0 subscription.

The underlying issue As the project moves forward, we need to understand more our users. The automatic subscription process has several negative implications :

Further investigation is needed It is essential, to find a way to debug the issue of users subscriptions dropping to 0, recreate it and then troubleshoot it. So we can move away from this hack.

christpet commented 3 years ago

This is important because currently, an unknown portion of our userbase is getting their subscriptions deleted then re-subscribed with the same 20 accounts. This could be causing some uninstalls, since our most common complaint is that "posts are not relevant".

The mission here as @zhinu has said (thank you) is to

  1. Figure out what is causing users subscriptions to go to zero (and possibly how many users it affects)
  2. Identify a way to fix it so that we don't have to auto-generate subscriptions for those users

This might be a good one for you to look at @lutangar - what do you think?

lutangar commented 3 years ago

It is essential, to find a way to debug the issue of users subscriptions dropping to 0, recreate it and then troubleshoot it. So we can move away from this hack.

I totally agree this is tiresome and the hack is nothing more than a hack.

This is long "known" issue of our extension and may happens randomly on any extension as well. (I'm going to add some previously documented content & links here later to bring some light on the why)

Even if I'd like to avoid forcing user to create an account, this is the only long term solution to keep track of one's subscriptions.

Nonetheless, once I bring more background here, I'd love someone to take a fresh look at it. Even if I know we can't fix 100% of these data losses, we could probably mitigate some of them if identified.

MaartenLMEM commented 3 years ago

I tried to find other chromium add on owners with same issue. If found none recent in Chromium apps google group. Just some threads on stack overflow, but hard for me to detect a relation with our situation.

zhinu commented 3 years ago

In extension/package.json, chrome storage is referred to as "chrome-storage-local". Could we also use chrome.storage.sync, so those with chrome sync have a unique userid, and the same settings across all devices. Maybe it will mitigate some loss.

lutangar commented 3 years ago

Browser storage

As stated in permissions we are already using the sync storage:

It was implemented in #529

Also see these old Trello cards for some background :

I sometimes suggested to imagine how the extension would work if it was stateless...

Data loss simulation

To simulate a data loss open extension background window and type in the console:

chrome.storage.sync.clear()

And then hit F5.

Similar issues

See #634

@johnkrovitch who submitted the issue, also use a lot of privacy extensions, which I can't remember right now...

23 juin 2020 à 14:49 sur supprimer-tos En recherchant avec des noms d'extensions connus on tombe sur des problèmes similaires, peut-etre qu'en y passant un peut de temps nous pourrions identifier des coupables. https://help.getadblock.com/support/solutions/articles/6000169060-i-keep-seeing-your-payment-page-or-adblock-keeps-losing-my-settings-in-firefox https://www.reddit.com/r/firefox/comments/bwv68f/how_to_stop_firefox_from_automatically_resetting/

Scenarios

We still need figure tests scenarios highlighting these data loss. I think the first step toward this would be to add more log around this issue.

christpet commented 3 years ago

Thank you for the detailed look @lutangar , super helpful. Do you mean logging like what we get with Sentry, or something more customized?