WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
318408
Digital Credentials: concurrent "wait" requests from separate processes can clobber WebPageProxy's single pending-handler slot under site isolation
https://bugs.webkit.org/show_bug.cgi?id=318408
Summary
Digital Credentials: concurrent "wait" requests from separate processes can c...
Marcos Caceres
Reported
2026-07-01 22:24:19 PDT
Under site isolation, a cross-origin subframe runs in its own WebProcess with its own WebCore::Page and CredentialRequestCoordinator. The concurrent-request guard in CredentialRequestCoordinator::prepareCredentialRequests only serializes requests within a single process (it checks that coordinator's InteractionState). Two cross-origin iframes in different processes therefore each pass their own guard and both dispatch ShowDigitalCredentialsChooser to the same WebPageProxy. WebPageProxy tracks a pending "wait"-parked request with a single slot (m_pendingDigitalCredentialsWaitContextID for the BiDi automation agent; internals().testingPendingDigitalCredentialHandler for WebKitTestRunner). When a second concurrent request arrives while one is parked, the slot is overwritten and the first request's parked completion handler is orphaned (never settled until session teardown). In debug builds this trips ASSERT(!m_pendingDigitalCredentialsWaitContextID) in WebPageProxy::showDigitalCredentialsChooser. This affects only automated testing of the Digital Credentials "wait"/virtual-wallet path across site-isolated cross-origin iframes; same-process requests are correctly serialized.
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2026-07-01 22:24:24 PDT
<
rdar://problem/181198108
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug