mirror of
https://github.com/keepassxreboot/keepassxc-browser.git
synced 2026-03-11 08:54:43 +00:00
Merge pull request #2143 from keepassxreboot/fix/passkeys_fix_forwarding_to_fallback
Fix forwarding to fallback on errors
This commit is contained in:
commit
0934446d9d
3 changed files with 11 additions and 5 deletions
|
|
@ -843,7 +843,9 @@ kpxc.enablePasskeys = function() {
|
|||
kpxcUI.createNotification('error', errorMessage);
|
||||
}
|
||||
|
||||
if (letTimerRunOut(ret?.response?.errorCode)) {
|
||||
if (kpxc.settings.passkeysFallback) {
|
||||
kpxcPasskeysUtils.sendPasskeysResponse(undefined, ret.response?.errorCode, errorMessage);
|
||||
} else if (letTimerRunOut(ret?.response?.errorCode)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ const kpxcPasskeysUtils = {};
|
|||
// Sends response from KeePassXC back to the injected script
|
||||
kpxcPasskeysUtils.sendPasskeysResponse = function(publicKey, errorCode, errorMessage) {
|
||||
const response = errorCode
|
||||
? { errorCode: errorCode, errorMessage: errorMessage }
|
||||
? { errorCode: errorCode, errorMessage: errorMessage, fallback: kpxc.settings.passkeysFallback }
|
||||
: { publicKey: publicKey, fallback: kpxc.settings.passkeysFallback };
|
||||
const details = isFirefox() ? cloneInto(response, document.defaultView) : response;
|
||||
document.dispatchEvent(new CustomEvent('kpxc-passkeys-response', { detail: details }));
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ const isSameOriginWithAncestors = function() {
|
|||
};
|
||||
|
||||
// Throws errors to a correct exceptions
|
||||
const handleError = function(errorCode, errorMessage) {
|
||||
const throwError = function(errorCode, errorMessage) {
|
||||
if ((!errorCode && !errorMessage) || errorCode === PASSKEYS_REQUEST_CANCELED) {
|
||||
// No error or canceled by user. Stop the timer but throw no exception. Fallback with be called instead.
|
||||
return;
|
||||
|
|
@ -103,7 +103,9 @@ const handleError = function(errorCode, errorMessage) {
|
|||
});
|
||||
|
||||
if (!response.publicKey) {
|
||||
handleError(response?.errorCode, response?.errorMessage);
|
||||
if (!response.fallback) {
|
||||
throwError(response?.errorCode, response?.errorMessage);
|
||||
}
|
||||
return response.fallback ? originalCredentials.create(options) : null;
|
||||
}
|
||||
|
||||
|
|
@ -129,7 +131,9 @@ const handleError = function(errorCode, errorMessage) {
|
|||
});
|
||||
|
||||
if (!response.publicKey) {
|
||||
handleError(response?.errorCode, response?.errorMessage);
|
||||
if (!response.fallback) {
|
||||
throwError(response?.errorCode, response?.errorMessage);
|
||||
}
|
||||
return response.fallback ? originalCredentials.get(options) : null;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue