Closed
Bug 1803171
Opened 3 years ago
Closed 3 years ago
FedCM Promise rejections on timeout cause tab crashes
Categories
(Core :: DOM: Credential Management, defect)
Core
DOM: Credential Management
Tracking
()
RESOLVED
FIXED
109 Branch
| Tracking | Status | |
|---|---|---|
| firefox109 | --- | fixed |
People
(Reporter: bvandersloot, Assigned: bvandersloot)
References
(Blocks 1 open bug)
Details
Attachments
(1 external file)
If you have the following config:
dom.security.credentialmanagement.identity.enabled: true
dom.security.credentialmanagement.identity.select_first_in_ui_lists: false
dom.security.credentialmanagement.identity.wait_for_timeout: true
Then any use of the API that leads to a the returned promise being rejected causes a tab crash. Running the following in the console is an easy reproduction condition:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/manifest.json",
clientId: "123",
nonce: 123
}]
}
});
A likely candidate for the bug is the fun manual pointer management in IdentityCredential::DiscoverFromExternalSource required to make the timeout work.
| Assignee | ||
Comment 1•3 years ago
|
||
I found the source of the crash. We need to grab a reference of the promise and release it after the callback fires and make sure we don't lose our promise ref when we return from this function.
Updated•3 years ago
|
Assignee: nobody → bvandersloot
Status: NEW → ASSIGNED
| Assignee | ||
Updated•3 years ago
|
Pushed by bvandersloot@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/021d5430a274
FedCM Promise rejections on timeout cause tab crashes, r=pbz
Comment 3•3 years ago
|
||
| bugherder | ||
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
status-firefox109:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → 109 Branch
You need to log in
before you can comment on or make changes to this bug.
Description
•