1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-11-28 12:45:45 +01:00

Reload browser extension after enabling nativeMessaging (#1577)

This commit is contained in:
Oscar Hinton 2021-01-27 23:05:50 +01:00 committed by GitHub
parent 1d79172876
commit 14293a7831
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 6 deletions

View File

@ -1438,6 +1438,12 @@
"biometricsNotSupportedDesc": { "biometricsNotSupportedDesc": {
"message": "Browser biometrics is not supported on this device." "message": "Browser biometrics is not supported on this device."
}, },
"nativeMessagingPermissionPromptTitle": {
"message": "Additional Permission required"
},
"nativeMessagingPermissionPromptDesc": {
"message": "To enable browser biometrics we need to request an additional permission. Once allowed, the browser extension will reload and you may need to unlock your vault again."
},
"nativeMessaginPermissionErrorTitle": { "nativeMessaginPermissionErrorTitle": {
"message": "Permission not provided" "message": "Permission not provided"
}, },

View File

@ -35,6 +35,11 @@ export class NativeMessagingBackground {
private runtimeBackground: RuntimeBackground, private i18nService: I18nService, private userService: UserService, private runtimeBackground: RuntimeBackground, private i18nService: I18nService, private userService: UserService,
private messagingService: MessagingService, private appIdService: AppIdService) { private messagingService: MessagingService, private appIdService: AppIdService) {
this.storageService.save(ConstantsService.biometricFingerprintValidated, false); this.storageService.save(ConstantsService.biometricFingerprintValidated, false);
// Reload extension to activate nativeMessaging
chrome.permissions.onAdded.addListener((permissions) => {
BrowserApi.reloadExtension(null);
});
} }
async connect() { async connect() {

View File

@ -214,6 +214,15 @@ export class SettingsComponent implements OnInit {
// Request permission to use the optional permission for nativeMessaging // Request permission to use the optional permission for nativeMessaging
if (!this.platformUtilsService.isFirefox()) { if (!this.platformUtilsService.isFirefox()) {
const hasPermission = await new Promise((resolve) => {
chrome.permissions.contains({permissions: ['nativeMessaging']}, resolve);
});
if (!hasPermission) {
await this.platformUtilsService.showDialog(
this.i18nService.t('nativeMessagingPermissionPromptDesc'), this.i18nService.t('nativeMessagingPermissionPromptTitle'),
this.i18nService.t('ok'), null);
const granted = await new Promise((resolve, reject) => { const granted = await new Promise((resolve, reject) => {
chrome.permissions.request({permissions: ['nativeMessaging']}, resolve); chrome.permissions.request({permissions: ['nativeMessaging']}, resolve);
}); });
@ -226,6 +235,7 @@ export class SettingsComponent implements OnInit {
return; return;
} }
} }
}
const submitted = Swal.fire({ const submitted = Swal.fire({
heightAuto: false, heightAuto: false,