Skip to content

[PM-45006] chore: Migrate from glide to coil for async image loading - #7465

Open
david-livefront wants to merge 1 commit into
mainfrom
coil-migration
Open

david-livefront wants to merge 1 commit into
mainfrom
coil-migration

Conversation

@david-livefront

@david-livefront david-livefront commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

🎟️ Tracking

PM-45006
VULN-1208

📔 Objective

This PR migrates the app from using Glide for async image loading to Coil. Glide not been update-able due to API issues for quite some time now and using Coil would be allow us to continue to move forward without having a stagnant dependency in the app.

The Coil repository can be found here.

Glide status as of October 14th, 2026:

image

More details on why Glide cannot be updated can be found here.

@github-actions github-actions Bot added app:password-manager Bitwarden Password Manager app context app:authenticator Bitwarden Authenticator app context t:tech-debt Change Type - Tech debt labels Oct 9, 2026
* type Network.
* @return An IconCompat created from the IconData or the default resource.
*/
suspend fun Context.createFido2IconCompatFromIconDataOrDefault(

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This was never being used.

@codecov

codecov Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.79%. Comparing base (43d7b8b) to head (62fb4c3).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #7465      +/-   ##
==========================================
- Coverage   86.80%   86.79%   -0.01%     
==========================================
  Files         895      894       -1     
  Lines       65676    65653      -23     
  Branches     9384     9383       -1     
==========================================
- Hits        57007    56984      -23     
  Misses       5189     5189              
  Partials     3480     3480              
Flag Coverage Δ
app-data 18.66% <0.00%> (+<0.01%) ⬆️
app-ui-auth-tools 18.65% <0.00%> (-0.03%) ⬇️
app-ui-platform 16.50% <100.00%> (+<0.01%) ⬆️
app-ui-vault 26.89% <0.00%> (+<0.01%) ⬆️
authenticator 6.03% <0.00%> (+<0.01%) ⬆️
lib-core-network-bridge 4.11% <0.00%> (+<0.01%) ⬆️
lib-data-ui 1.25% <0.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@david-livefront
david-livefront marked this pull request as ready for review October 12, 2026 16:58
@david-livefront
david-livefront requested a review from a team as a code owner October 12, 2026 16:58
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

🤖 Bitwarden Claude Code Review

Overall Assessment: REQUEST CHANGES

This PR replaces Glide with Coil 3 for loading images in the :app, :ui, and :authenticator modules. The mTLS and cookie-aware OkHttp setup moves from the Glide module into a Hilt-provided ImageLoader, and the application class supplies that loader as the Coil singleton. The interceptor rename and the removal of the unused ContextExtensions look correct, and no Glide references remain. The one blocking item is that Coil is a new dependency and the PR shows no AppSec approval for it.

Code Review Details
  • ⚠️ : New dependency Coil added with no AppSec Dependency Review and Approval signal
    • gradle/libs.versions.toml:33

Dependency Changes

Package Change Ecosystem
io.coil-kt.coil3:coil New (3.6.3) Gradle
io.coil-kt.coil3:coil-compose New (3.6.3) Gradle
io.coil-kt.coil3:coil-gif New (3.6.3) Gradle
io.coil-kt.coil3:coil-network-okhttp New (3.6.3) Gradle
com.github.bumptech.glide:compose Removed Gradle
com.github.bumptech.glide:okhttp3-integration Removed Gradle
com.github.bumptech.glide:ksp Removed Gradle

Comment thread gradle/libs.versions.toml
androidxSplash = "1.2.0"
androidxWork = "2.11.2"
bitwardenSdk = "4.0.0-9318-3b2c8fc3"
coil = "3.6.3"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ IMPORTANT: New dependency io.coil-kt.coil3 (coil, coil-compose, coil-gif, coil-network-okhttp 3.6.3) added with no AppSec approval signal.

Details and fix

Coil is net-new to the codebase; it is not a version bump of Glide. Bitwarden requires AppSec approval before a new dependency goes in, and that applies to all four artifacts added here. The PR description has no VULN task reference and doesn't mention the approval process.

Please contact the AppSec team to start the Dependency Review and Approval process, then add the VULN task reference to the PR description.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Dependency approved.

@vvolkgang vvolkgang left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks great mate, thanks for moving forward with this! Summary of what we discussed for my own sake:

  1. Wait for VULN-1208.
  2. Explain in the ticket description why we couldn't update glideCompose so we have context if we need to look back in the future.
  3. Add a ticket for QA testing, specially in self-host / mTLS / enterprise scenarios.

@vvolkgang vvolkgang changed the title chore: Migrate from glide to coil for async image loading [PM-45006] chore: Migrate from glide to coil for async image loading Oct 14, 2026

@vvolkgang vvolkgang left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

:shipit:

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app:authenticator Bitwarden Authenticator app context app:password-manager Bitwarden Password Manager app context t:tech-debt Change Type - Tech debt

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants