[PM-12308][Defect] Immediately
vault timeout causes locking while using the extension
#11344
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎟️ Tracking
📔 Objective
Fix bug where the vault locks even when interacting with it when timeout is set to Immediately in Chrome.
The fix
Only load vault timeout setting service in the background. This should be ok since the vault timeout checks are properly scheduled using MV3 compatible alarms.
Root cause
Lock works by
VaultTimeoutService
constantly callingcheckVaultTimeout
at regular intervals. One of the conditions that this function checks is if the extension has any views open, it does this by callingplatformUtilsService.isViewOpen()
. This function in turn uses the following call to verify if this is the case:Now, the main issue is that as we transitioned to MV3 we started creating creating the background services in the popup too. This includes
VaultTimeoutService
which in turn usesPlatformUtilsService
which depends on sending messages to any views present. However, this mechanism doesn't work when the message originates form within the view itself, meaning that this function will never get a response, causing it to think there are no views open, which in turns locks the extension.📸 Screenshots
⏰ Reminders before review
🦮 Reviewer guidelines
:+1:
) or similar for great changes:memo:
) or ℹ️ (:information_source:
) for notes or general info:question:
) for questions:thinking:
) or 💭 (:thought_balloon:
) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion:art:
) for suggestions / improvements:x:
) or:warning:
) for more significant problems or concerns needing attention:seedling:
) or ♻️ (:recycle:
) for future improvements or indications of technical debt:pick:
) for minor or nitpick changes