1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-06 00:13:28 +00:00

fix(notifications): [PM-25424] Fix unnecessary quick reconnect

* Ensure we don't reconnect on feature flag emissions of the same value

* Harden notification processing

* Do error for both
This commit is contained in:
Justin Baur
2025-09-04 12:40:37 -04:00
committed by GitHub
parent 896f54696b
commit 9946f61296

View File

@@ -172,6 +172,7 @@ export class DefaultServerNotificationsService implements ServerNotificationsSer
private hasAccessToken$(userId: UserId) {
return this.configService.getFeatureFlag$(FeatureFlag.PushNotificationsWhenLocked).pipe(
distinctUntilChanged(),
switchMap((featureFlagEnabled) => {
if (featureFlagEnabled) {
return this.authService.authStatusFor$(userId).pipe(
@@ -305,11 +306,23 @@ export class DefaultServerNotificationsService implements ServerNotificationsSer
startListening() {
return this.notifications$
.pipe(
mergeMap(async ([notification, userId]) => this.processNotification(notification, userId)),
mergeMap(async ([notification, userId]) => {
try {
await this.processNotification(notification, userId);
} catch (err: unknown) {
this.logService.error(
`Problem processing notification of type ${notification.type}`,
err,
);
}
}),
)
.subscribe({
error: (e: unknown) =>
this.logService.warning("Error in server notifications$ observable", e),
error: (err: unknown) =>
this.logService.error(
"Fatal error in server notifications$ observable, notifications won't be recieved anymore.",
err,
),
});
}