[PR #6991] [PM-37255] feat: Add fill-assist targeting rules data layer #120936

Open
opened 2026-06-09 19:24:26 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/6991
Author: @aj-rosado
Created: 5/29/2026
Status: 🔄 Open

Base: PM-37255/fill-assist-network-layerHead: PM-37255/fill-assist-data-layer


📝 Commits (7)

  • 8b6ce8b Add fill assist data layer
  • 00b2479 chained code on FillAssistManager
  • 61db0cd Merge branch 'PM-37255/fill-assist-network-layer' into PM-37255/fill-assist-data-layer
  • bbdc2f1 Merge branch 'PM-37255/fill-assist-network-layer' into PM-37255/fill-assist-data-layer
  • ad2aada updating environmentDiskSource.fillAssistUrl when serverConfigStateFlow updates
  • 6c0bfa5 Improved code readability
  • 8b05d40 Addressing pr comments

📊 Changes

8 files changed (+1376 additions, -0 deletions)

View changed files

app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/datasource/disk/FillAssistDiskSource.kt (+44 -0)
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/datasource/disk/FillAssistDiskSourceImpl.kt (+71 -0)
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/di/FillAssistModule.kt (+60 -0)
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManager.kt (+23 -0)
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerImpl.kt (+249 -0)
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/model/FillAssistRules.kt (+47 -0)
app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/datasource/disk/FillAssistDiskSourceTest.kt (+156 -0)
app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerTest.kt (+726 -0)

📄 Description

🎟️ Tracking

https://bitwarden.atlassian.net/browse/PM-37255

📔 Objective

Adds the data layer for caching and managing fill-assist targeting rules, including CSS selector parsing and the self-managing sync manager.

Changes:

  • FillAssistRules — domain model with HostRule and SelectorClause(tag, id, name, type, role); CSS selectors are parsed at sync time, not at autofill time
  • FillAssistDiskSource / FillAssistDiskSourceImpl — per-server SharedPreferences storage (keyed by fillAssistRulesUrl); includes CURRENT_CACHE_VERSION migration to invalidate cached data when parsing logic changes
  • FillAssistManager / FillAssistManagerImpl — self-managing singletonthat syncs on serverConfigStateFlow changes; uses a 6-hour timestamp throttle before checking the manifest CID; CSS forms parsed from all pathnames, pooled and merged by category (one HostRule per form type per host); shadow DOM selectors (>>>) use the last segment for matching
  • FillAssistModule — Hilt DI bindings

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/bitwarden/android/pull/6991 **Author:** [@aj-rosado](https://github.com/aj-rosado) **Created:** 5/29/2026 **Status:** 🔄 Open **Base:** `PM-37255/fill-assist-network-layer` ← **Head:** `PM-37255/fill-assist-data-layer` --- ### 📝 Commits (7) - [`8b6ce8b`](https://github.com/bitwarden/android/commit/8b6ce8bce99d2a8e20992c3ba9390f046a293308) Add fill assist data layer - [`00b2479`](https://github.com/bitwarden/android/commit/00b2479808ddb0395e35c6c4fd29f048dd8dfd88) chained code on FillAssistManager - [`61db0cd`](https://github.com/bitwarden/android/commit/61db0cd4c4def543b5dc3b152a75cf98073c6f68) Merge branch 'PM-37255/fill-assist-network-layer' into PM-37255/fill-assist-data-layer - [`bbdc2f1`](https://github.com/bitwarden/android/commit/bbdc2f10da12b618113e37bf6b12ad3a6057fbd2) Merge branch 'PM-37255/fill-assist-network-layer' into PM-37255/fill-assist-data-layer - [`ad2aada`](https://github.com/bitwarden/android/commit/ad2aada6b105ca238016b29867c3a0d054bd556f) updating environmentDiskSource.fillAssistUrl when serverConfigStateFlow updates - [`6c0bfa5`](https://github.com/bitwarden/android/commit/6c0bfa5ba5ec0a702566e69c2fa362b67e3ba6a1) Improved code readability - [`8b05d40`](https://github.com/bitwarden/android/commit/8b05d40cc98f313fdfcf6164d5ed1508ba81d6ad) Addressing pr comments ### 📊 Changes **8 files changed** (+1376 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/datasource/disk/FillAssistDiskSource.kt` (+44 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/datasource/disk/FillAssistDiskSourceImpl.kt` (+71 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/di/FillAssistModule.kt` (+60 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManager.kt` (+23 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerImpl.kt` (+249 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/model/FillAssistRules.kt` (+47 -0) ➕ `app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/datasource/disk/FillAssistDiskSourceTest.kt` (+156 -0) ➕ `app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerTest.kt` (+726 -0) </details> ### 📄 Description ## 🎟️ Tracking https://bitwarden.atlassian.net/browse/PM-37255 ## 📔 Objective Adds the data layer for caching and managing fill-assist targeting rules, including CSS selector parsing and the self-managing sync manager. **Changes:** - `FillAssistRules` — domain model with `HostRule` and `SelectorClause(tag, id, name, type, role)`; CSS selectors are parsed at sync time, not at autofill time - `FillAssistDiskSource` / `FillAssistDiskSourceImpl` — per-server SharedPreferences storage (keyed by `fillAssistRulesUrl`); includes `CURRENT_CACHE_VERSION` migration to invalidate cached data when parsing logic changes - `FillAssistManager` / `FillAssistManagerImpl` — self-managing singletonthat syncs on `serverConfigStateFlow` changes; uses a 6-hour timestamp throttle before checking the manifest CID; CSS forms parsed from all pathnames, pooled and merged by category (one `HostRule` per form type per host); shadow DOM selectors (`>>>`) use the last segment for matching - `FillAssistModule` — Hilt DI bindings --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-06-09 19:24:26 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#120936