Skip to content

[PM-29569] feat: Generate passwords without user interaction in AutoFill extension#2776

Draft
fedemkr wants to merge 5 commits into
mainfrom
PM-29569/extension-password-generation-no-ui
Draft

[PM-29569] feat: Generate passwords without user interaction in AutoFill extension#2776
fedemkr wants to merge 5 commits into
mainfrom
PM-29569/extension-password-generation-no-ui

Conversation

@fedemkr

@fedemkr fedemkr commented Jun 10, 2026

Copy link
Copy Markdown
Member

🎟️ Tracking

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

📔 Objective

Implements iOS 26.2 headless password generation in the AutoFill extension via performWithoutUserInteraction(generatePasswordsRequest:).

fedemkr added 4 commits June 10, 2026 11:21
…ill extension

Implements the iOS 26.2 ASCredentialProviderViewController entry point that
allows apps to request a generated password during sign-up flows without
showing the extension UI. The completion call is stubbed with a TODO pending
ASGeneratedPasswords availability in the shipping Xcode SDK.
…atePasswordCredential case

Renames the mode case to generatePasswordCredential(any GeneratePasswordRequestProxy, userInteraction: Bool)
to mirror the autofillCredential pattern and be forward-compatible with a future UI flow. Threads the
request through the entire VC → AppProcessor chain so password rules are available when the SDK exposes
the mapping API. Removes the user's saved generation options from the headless path in favour of a
hardcoded stub until then.
@fedemkr fedemkr added the ai-review Request a Claude code review label Jun 10, 2026
@github-actions github-actions Bot added app:password-manager Bitwarden Password Manager app context t:feature labels Jun 10, 2026
@github-actions

github-actions Bot commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

🤖 Bitwarden Claude Code Review

Overall Assessment: APPROVE

This PR wires up iOS 26.2 headless password generation in the AutoFill extension via performWithoutUserInteraction(generatePasswordsRequest:), adds a generatePasswordCredential case to CredentialProviderMode, and routes the request through AppProcessor.generatePasswordCredential(request:). The flow mirrors the existing savePassword path — app initialization, vault unlock with the never-lock key, and error handling that cancels the extension request. Changes are covered by tests in AppProcessorTests (success, unlock failure, generator failure) and CredentialProviderContextTests.

Code Review Details

No findings to report.

The hardcoded PasswordGeneratorRequest parameters, the ignored request argument in AppProcessor.generatePasswordCredential, and the hardcoded ASGeneratedPassword.Kind.alphanumeric are all explicitly tracked with TODO: PM-29569 markers pending the SDK rules-mapping API. These are intentional placeholders consistent with the feature being gated at the OS level. The error logging via Logger.appExtension.error("...\(error)") matches the established savePassword pattern in the same file, so it is consistent and not a regression.

@codecov

codecov Bot commented Jun 17, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 44.00000% with 28 lines in your changes missing coverage. Please review.
✅ Project coverage is 80.78%. Comparing base (3467801) to head (d5df0c5).

Files with missing lines Patch % Lines
...llExtension/CredentialProviderViewController.swift 0.00% 28 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2776      +/-   ##
==========================================
- Coverage   80.82%   80.78%   -0.04%     
==========================================
  Files        1019     1019              
  Lines       64856    64906      +50     
==========================================
+ Hits        52418    52434      +16     
- Misses      12438    12472      +34     

☔ 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.

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

Labels

ai-review Request a Claude code review app:password-manager Bitwarden Password Manager app context t:feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant