Skip to content

Conversation

mikescamell
Copy link
Contributor

@mikescamell mikescamell commented Sep 4, 2025

Task/Issue URL: https://app.asana.com/1/137249556945/project/1207908166761516/task/1210918149098144

Description

Implemented LibraryLoaderListener interface in RealSecureStorageDatabaseFactory to properly handle SQLCipher library loading success and failure callbacks. This change improves error handling by:

  1. Adding explicit success and failure callback methods
  2. Wrapping database retrieval in a try-catch block to handle exceptions
  3. Properly logging errors during library loading and database access

Steps to test this PR

SQLCipher Library Loading

  • Verify that SQLCipher library loads successfully with proper logging
  • Confirm that database access works correctly when the feature is enabled

UI changes

Before After
N/A N/A

@mikescamell mikescamell requested a review from Copilot September 4, 2025 09:41
@mikescamell mikescamell force-pushed the feature/mike/load-sqlcipher-async branch from c8f8527 to 1cb406d Compare September 4, 2025 09:53
@mikescamell mikescamell marked this pull request as ready for review September 4, 2025 09:53
Copilot

This comment was marked as outdated.

@duckduckgo duckduckgo deleted a comment from Copilot AI Sep 4, 2025
@mikescamell mikescamell requested a review from Copilot September 4, 2025 09:56
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements asynchronous SQLCipher library loading by adding LibraryLoaderListener interface support to RealSecureStorageDatabaseFactory. The change improves error handling and logging for SQLCipher library initialization.

Key changes:

  • Implements LibraryLoaderListener interface with success/failure callbacks
  • Adds comprehensive error handling with try-catch blocks
  • Improves logging messages for better debugging

@CDRussell
Copy link
Member

@mikescamell I'm not convinced by these changes as is, because it feels risky that it could introduce breakage. The main concerns:

  • if the library loading isn't finished by the time we first attempt to call getDatabase() then we'll fail to initialise the databases. It shouldn't crash, but will conclude that autofill can't be used on this device and essentially turn it all off.
  • if the above happened, we'd have no immediate way of knowing
  • the changes aren't guarded by a feature flag and therefore any issues we encounter would require a new app release / hotfix to address

Will follow up with you some more on the linked task.

Copy link
Member

@CDRussell CDRussell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added suggestions to the linked task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants