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

Open
opened 2026-06-03 13:46:59 -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 (3)

  • 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

📊 Changes

8 files changed (+1324 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 (+72 -0)
app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/di/FillAssistModule.kt (+57 -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 (+238 -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 (+135 -0)
app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerTest.kt (+708 -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 (3) - [`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 ### 📊 Changes **8 files changed** (+1324 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` (+72 -0) ➕ `app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/di/FillAssistModule.kt` (+57 -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` (+238 -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` (+135 -0) ➕ `app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/manager/FillAssistManagerTest.kt` (+708 -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-03 13:46:59 -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#107244