Move OTP trigger, include version & action (#123)

This commit is contained in:
Erayd
2019-04-19 01:03:34 +12:00
committed by GitHub
parent d3887401b2
commit 782ed44693

View File

@@ -743,6 +743,11 @@ async function handleMessage(settings, message, sendResponse) {
});
break;
}
// trigger browserpass-otp
if (typeof message.login !== "undefined" && message.login.fields.hasOwnProperty("otp")) {
triggerOTPExtension(settings, message.action, message.login.fields.otp);
}
}
/**
@@ -870,23 +875,6 @@ async function parseFields(settings, login) {
delete login.settings[key];
}
}
// trigger otp extension
if (login.fields.hasOwnProperty("otp")) {
for (let key in otpID) {
chrome.runtime
.sendMessage(otpID[key], {
otp: login.fields.otp,
host: settings.host,
tab: settings.tab
})
// Both response & error are noop functions, because we don't care about
// the response, and if there's an error it just means the otp extension
// is probably not installed. We can't detect that without requesting the
// management permission, so this is an acceptable workaround.
.then(noop => null, noop => null);
}
}
}
/**
@@ -971,6 +959,35 @@ async function saveSettings(settings) {
}
}
/**
* Trigger OTP extension (browserpass-otp)
*
* @since 3.0.13
*
* @param object settings Settings object
* @param string action Browserpass action
* @param object otp OTP field data
* @return void
*/
function triggerOTPExtension(settings, action, otp) {
// trigger otp extension
for (let targetID of otpID) {
chrome.runtime
.sendMessage(targetID, {
version: chrome.runtime.getManifest().version,
action: action,
otp: otp,
host: settings.host,
tab: settings.tab
})
// Both response & error are noop functions, because we don't care about
// the response, and if there's an error it just means the otp extension
// is probably not installed. We can't detect that without requesting the
// management permission, so this is an acceptable workaround.
.then(noop => null, noop => null);
}
}
/**
* Handle browser extension installation and updates
*