[PM-3020] Change initialization of EnvironmentService to default to uninitialized (#5830)

* Set initialized to false on construction of the EnvironmentService

* Add initialization on browser and desktop.

* Added comments.
This commit is contained in:
Todd Martin 2023-07-14 15:10:47 -04:00 committed by GitHub
parent 79ed4ff83f
commit b2374acc7f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 4 deletions

View File

@ -676,6 +676,9 @@ export default class MainBackground {
return new Promise<void>((resolve) => { return new Promise<void>((resolve) => {
setTimeout(async () => { setTimeout(async () => {
await this.environmentService.setUrlsFromStorage(); await this.environmentService.setUrlsFromStorage();
// Workaround to ignore stateService.activeAccount until URLs are set
// TODO: Remove this when implementing ticket PM-2637
this.environmentService.initialized = true;
if (!this.isPrivateMode) { if (!this.isPrivateMode) {
await this.refreshBadge(); await this.refreshBadge();
} }

View File

@ -44,6 +44,9 @@ export class InitService {
this.nativeMessagingService.init(); this.nativeMessagingService.init();
await this.stateService.init(); await this.stateService.init();
await this.environmentService.setUrlsFromStorage(); await this.environmentService.setUrlsFromStorage();
// Workaround to ignore stateService.activeAccount until URLs are set
// TODO: Remove this when implementing ticket PM-2637
this.environmentService.initialized = true;
this.syncService.fullSync(true); this.syncService.fullSync(true);
(this.vaultTimeoutService as VaultTimeoutService).init(true); (this.vaultTimeoutService as VaultTimeoutService).init(true);
const locale = await this.stateService.getLocale(); const locale = await this.stateService.getLocale();

View File

@ -38,14 +38,13 @@ export class InitService {
init() { init() {
return async () => { return async () => {
// Workaround to ignore stateService.activeAccount until process.env.URLS are set
// TODO: Remove this when implementing ticket PM-2637
this.environmentService.initialized = false;
await this.stateService.init(); await this.stateService.init();
const urls = process.env.URLS as Urls; const urls = process.env.URLS as Urls;
urls.base ??= this.win.location.origin; urls.base ??= this.win.location.origin;
await this.environmentService.setUrls(urls); await this.environmentService.setUrls(urls);
// Workaround to ignore stateService.activeAccount until process.env.URLS are set
// TODO: Remove this when implementing ticket PM-2637
this.environmentService.initialized = true; this.environmentService.initialized = true;
setTimeout(() => this.notificationsService.init(), 3000); setTimeout(() => this.notificationsService.init(), 3000);

View File

@ -12,7 +12,7 @@ export class EnvironmentService implements EnvironmentServiceAbstraction {
private readonly urlsSubject = new Subject<void>(); private readonly urlsSubject = new Subject<void>();
urls: Observable<void> = this.urlsSubject.asObservable(); urls: Observable<void> = this.urlsSubject.asObservable();
selectedRegion?: Region; selectedRegion?: Region;
initialized = true; initialized = false;
protected baseUrl: string; protected baseUrl: string;
protected webVaultUrl: string; protected webVaultUrl: string;
@ -286,6 +286,7 @@ export class EnvironmentService implements EnvironmentServiceAbstraction {
async setRegion(region: Region) { async setRegion(region: Region) {
this.selectedRegion = region; this.selectedRegion = region;
await this.stateService.setRegion(region); await this.stateService.setRegion(region);
if (region === Region.SelfHosted) { if (region === Region.SelfHosted) {
// If user saves a self-hosted region with empty fields, default to US // If user saves a self-hosted region with empty fields, default to US
if (this.isEmpty()) { if (this.isEmpty()) {