HomePhabricator
Diffusion Comm ba0fefa3a961

[web] Fix user not getting logged out on ops failure

Description

[web] Fix user not getting logged out on ops failure

Summary:
ENG-7655 : User not getting logged out on web db ops failure

While working on D11544 I discovered that actually users weren't getting logged out on ops handling failure. Detailed explanation is in the linked task, but the general idea is that redux persist is able to persist data between calls to sharedWorker.init and location.reload and the db isn't cleared. This diff fixes it:

  • It introduces a new optional parameter markAsCorrupted which disallows any future operations on the db, until the webpage is reloaded
  • It also has to remove the localstorage fallback in comm-redux-storage-engine. Otherwise redux-persist persists data to localstorage which is then picked up in our old "localstorage to sqlite" migration, which also ends with user not getting logged out

Depends on D11544

Test Plan: Add a throw new Error in rekey message ops. Send a new message. Check that an alert shows up, the page is reloaded and after reload the user is logged out. Repeat a few times.

Reviewers: kamil, marcin

Reviewed By: kamil

Subscribers: ashoat, tomek

Differential Revision: https://phab.comm.dev/D11563

Details

Provenance
Michal Gniadek <michal.gniadek@swmansion.com>Authored on Apr 4 2024, 7:49 AM
Reviewer
kamil
Differential Revision
D11563: [web] Fix user not getting logged out on ops failure
Parents
rCOMMa77e7bf193ca: [web/native/lib] Use message pruner on web
Branches
Unknown
Tags
Unknown

Event Timeline