From c7ead83425dce629582807c2555756e14abbd947 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Fri, 16 Dec 2022 10:49:33 -0500 Subject: [PATCH] Fix crash due to timing issues - Make injectable phases more explicit for renderer Signed-off-by: Sebastian Malton --- .../renderer/setup-sync.injectable.ts | 4 ++-- .../cluster/store/renderer/init.injectable.ts | 4 ++-- .../renderer/init-store.injectable.ts | 4 ++-- .../hotbar/store/renderer/init.injectable.ts | 4 ++-- .../renderer/initialize.injectable.ts | 4 ++-- .../load-monaco-themes.injectable.ts | 4 ++-- .../setup-auto-registration.injectable.ts | 5 ++-- ...up-current-cluster-broadcast.injectable.ts | 4 ++-- ...tes-cluster-catalog-add-menu.injectable.ts | 4 ++-- ...es-cluster-context-menu-open.injectable.ts | 4 ++-- .../setup-root-mac-class.injectable.ts | 4 ++-- .../runnables/setup-sentry.injectable.ts | 4 ++-- ...p-weblink-context-menu-open.injectable.tsx | 4 ++-- src/renderer/before-frame-starts/tokens.ts | 24 +++++++++++++------ .../top-bar/start-state-sync.injectable.ts | 4 ++-- .../root-frame/setup-system-ca.injectable.ts | 4 ++-- .../start-frame/start-frame.injectable.ts | 24 ++++++++++++------- .../stores/init-user-store.injectable.ts | 4 ++-- .../setup-apply-active-theme.injectable.ts | 4 ++-- .../start-listening-of-channels.injectable.ts | 4 ++-- ...nitial-values-for-sync-boxes.injectable.ts | 4 ++-- .../vars/build-version/init.injectable.ts | 4 ++-- .../default-update-channel/init.injectable.ts | 4 ++-- .../vars/release-channel/init.injectable.ts | 4 ++-- .../semantic-build-version/init.injectable.ts | 4 ++-- 25 files changed, 80 insertions(+), 61 deletions(-) diff --git a/src/features/cluster/state-sync/renderer/setup-sync.injectable.ts b/src/features/cluster/state-sync/renderer/setup-sync.injectable.ts index 93005543db..e4df4c7f8e 100644 --- a/src/features/cluster/state-sync/renderer/setup-sync.injectable.ts +++ b/src/features/cluster/state-sync/renderer/setup-sync.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import getClusterByIdInjectable from "../../../../common/cluster-store/get-by-id.injectable"; -import { beforeFrameStartsInjectionToken } from "../../../../renderer/before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../../../renderer/before-frame-starts/tokens"; import initClusterStoreInjectable from "../../store/renderer/init.injectable"; import requestInitialClusterStatesInjectable from "./request-initial.injectable"; @@ -23,7 +23,7 @@ const setupClusterStateSyncInjectable = getInjectable({ }, runAfter: di.inject(initClusterStoreInjectable), }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default setupClusterStateSyncInjectable; diff --git a/src/features/cluster/store/renderer/init.injectable.ts b/src/features/cluster/store/renderer/init.injectable.ts index 2c2795de5c..66d2e31e09 100644 --- a/src/features/cluster/store/renderer/init.injectable.ts +++ b/src/features/cluster/store/renderer/init.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable"; -import { beforeFrameStartsInjectionToken } from "../../../../renderer/before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../../../renderer/before-frame-starts/tokens"; import initUserStoreInjectable from "../../../../renderer/stores/init-user-store.injectable"; const initClusterStoreInjectable = getInjectable({ @@ -18,7 +18,7 @@ const initClusterStoreInjectable = getInjectable({ }, runAfter: di.inject(initUserStoreInjectable), }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default initClusterStoreInjectable; diff --git a/src/features/file-system-provisioner/renderer/init-store.injectable.ts b/src/features/file-system-provisioner/renderer/init-store.injectable.ts index d241dcad38..0e64e49fd6 100644 --- a/src/features/file-system-provisioner/renderer/init-store.injectable.ts +++ b/src/features/file-system-provisioner/renderer/init-store.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import fileSystemProvisionerStoreInjectable from "../../../extensions/extension-loader/file-system-provisioner-store/file-system-provisioner-store.injectable"; -import { beforeFrameStartsInjectionToken } from "../../../renderer/before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../../renderer/before-frame-starts/tokens"; const initFileSystemProvisionerStoreInjectable = getInjectable({ id: "init-file-system-provisioner-store", @@ -16,7 +16,7 @@ const initFileSystemProvisionerStoreInjectable = getInjectable({ store.load(); }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default initFileSystemProvisionerStoreInjectable; diff --git a/src/features/hotbar/store/renderer/init.injectable.ts b/src/features/hotbar/store/renderer/init.injectable.ts index 6d341f1ee8..c17e3a4858 100644 --- a/src/features/hotbar/store/renderer/init.injectable.ts +++ b/src/features/hotbar/store/renderer/init.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import hotbarStoreInjectable from "../../../../common/hotbars/store.injectable"; -import { beforeFrameStartsInjectionToken } from "../../../../renderer/before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../../../renderer/before-frame-starts/tokens"; import initClusterStoreInjectable from "../../../cluster/store/renderer/init.injectable"; const initHotbarStoreInjectable = getInjectable({ @@ -18,7 +18,7 @@ const initHotbarStoreInjectable = getInjectable({ }, runAfter: di.inject(initClusterStoreInjectable), }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default initHotbarStoreInjectable; diff --git a/src/features/theme/system-type/renderer/initialize.injectable.ts b/src/features/theme/system-type/renderer/initialize.injectable.ts index e6ed81f4f1..849c8328b2 100644 --- a/src/features/theme/system-type/renderer/initialize.injectable.ts +++ b/src/features/theme/system-type/renderer/initialize.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { beforeFrameStartsInjectionToken } from "../../../../renderer/before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../../../renderer/before-frame-starts/tokens"; import initUserStoreInjectable from "../../../../renderer/stores/init-user-store.injectable"; import systemThemeConfigurationInjectable from "../../../../renderer/themes/system-theme.injectable"; import requestInitialSystemThemeTypeInjectable from "./request-initial.injectable"; @@ -20,7 +20,7 @@ const initializeSystemThemeTypeInjectable = getInjectable({ }, runAfter: di.inject(initUserStoreInjectable), }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default initializeSystemThemeTypeInjectable; diff --git a/src/renderer/before-frame-starts/runnables/load-monaco-themes.injectable.ts b/src/renderer/before-frame-starts/runnables/load-monaco-themes.injectable.ts index 02a00523ad..ef85a84cd0 100644 --- a/src/renderer/before-frame-starts/runnables/load-monaco-themes.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/load-monaco-themes.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { customMonacoThemeInjectionToken } from "../../components/monaco-editor"; import addNewMonacoThemeInjectable from "../../monaco/add-new-theme.injectable"; -import { beforeFrameStartsInjectionToken } from "../tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../tokens"; const loadMonacoThemesInjectable = getInjectable({ id: "load-monaco-themes", @@ -18,7 +18,7 @@ const loadMonacoThemesInjectable = getInjectable({ customThemes.forEach(addNewMonacoTheme); }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default loadMonacoThemesInjectable; diff --git a/src/renderer/before-frame-starts/runnables/setup-auto-registration.injectable.ts b/src/renderer/before-frame-starts/runnables/setup-auto-registration.injectable.ts index bae9ca595e..ecfac3136a 100644 --- a/src/renderer/before-frame-starts/runnables/setup-auto-registration.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/setup-auto-registration.injectable.ts @@ -9,7 +9,7 @@ import { CustomResourceStore } from "../../../common/k8s-api/api-manager/resourc import type { CustomResourceDefinition } from "../../../common/k8s-api/endpoints"; import { KubeApi } from "../../../common/k8s-api/kube-api"; import { KubeObject } from "../../../common/k8s-api/kube-object"; -import { beforeClusterFrameStartsInjectionToken } from "../tokens"; +import { beforeClusterFrameStartsSecondInjectionToken } from "../tokens"; import type { KubeObjectStoreDependencies } from "../../../common/k8s-api/kube-object.store"; import clusterFrameContextForNamespacedResourcesInjectable from "../../cluster-frame-context/for-namespaced-resources.injectable"; @@ -71,6 +71,7 @@ const setupAutoRegistrationInjectable = getInjectable({ } }); + // NOTE: this MUST happen after the event emitter listeners are registered const apiManager = di.inject(apiManagerInjectable); beforeApiManagerInitializationCrds.forEach(autoInitCustomResourceStore); @@ -78,7 +79,7 @@ const setupAutoRegistrationInjectable = getInjectable({ initialized = true; }, }), - injectionToken: beforeClusterFrameStartsInjectionToken, + injectionToken: beforeClusterFrameStartsSecondInjectionToken, }); export default setupAutoRegistrationInjectable; diff --git a/src/renderer/before-frame-starts/runnables/setup-current-cluster-broadcast.injectable.ts b/src/renderer/before-frame-starts/runnables/setup-current-cluster-broadcast.injectable.ts index 978eae3d95..a89ba58ec2 100644 --- a/src/renderer/before-frame-starts/runnables/setup-current-cluster-broadcast.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/setup-current-cluster-broadcast.injectable.ts @@ -7,7 +7,7 @@ import { reaction } from "mobx"; import { currentClusterMessageChannel } from "../../../common/cluster/current-cluster-channel"; import { sendMessageToChannelInjectionToken } from "../../../common/utils/channel/message-to-channel-injection-token"; import matchedClusterIdInjectable from "../../navigation/matched-cluster-id.injectable"; -import { beforeMainFrameStartsInjectionToken } from "../tokens"; +import { beforeMainFrameStartsFirstInjectionToken } from "../tokens"; const setupCurrentClusterBroadcastInjectable = getInjectable({ id: "setup-current-cluster-broadcast", @@ -26,7 +26,7 @@ const setupCurrentClusterBroadcastInjectable = getInjectable({ ); }, }), - injectionToken: beforeMainFrameStartsInjectionToken, + injectionToken: beforeMainFrameStartsFirstInjectionToken, }); export default setupCurrentClusterBroadcastInjectable; diff --git a/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts b/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts index 406b1641af..20566b5dac 100644 --- a/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-catalog-add-menu.injectable.ts @@ -9,7 +9,7 @@ import isLinuxInjectable from "../../../common/vars/is-linux.injectable"; import isWindowsInjectable from "../../../common/vars/is-windows.injectable"; import openPathPickingDialogInjectable from "../../../features/path-picking-dialog/renderer/pick-paths.injectable"; import addSyncEntriesInjectable from "../../initializers/add-sync-entries.injectable"; -import { beforeFrameStartsInjectionToken } from "../tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../tokens"; const setupKubernetesClusterCatalogAddMenuListenerInjectable = getInjectable({ id: "setup-kubernetes-cluster-catalog-add-menu-listener", @@ -75,7 +75,7 @@ const setupKubernetesClusterCatalogAddMenuListenerInjectable = getInjectable({ }); }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default setupKubernetesClusterCatalogAddMenuListenerInjectable; diff --git a/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-context-menu-open.injectable.ts b/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-context-menu-open.injectable.ts index 150620c22a..73cc988e2c 100644 --- a/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-context-menu-open.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/setup-kubernetes-cluster-context-menu-open.injectable.ts @@ -9,7 +9,7 @@ import readFileInjectable from "../../../common/fs/read-file.injectable"; import { loadConfigFromString } from "../../../common/kube-helpers"; import loggerInjectable from "../../../common/logger.injectable"; import openDeleteClusterDialogInjectable from "../../components/delete-cluster-dialog/open.injectable"; -import { beforeFrameStartsInjectionToken } from "../tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../tokens"; const setupKubernetesClusterContextMenuOpenInjectable = getInjectable({ id: "setup-kubernetes-cluster-context-menu-open", @@ -50,7 +50,7 @@ const setupKubernetesClusterContextMenuOpenInjectable = getInjectable({ }); }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default setupKubernetesClusterContextMenuOpenInjectable; diff --git a/src/renderer/before-frame-starts/runnables/setup-root-mac-class.injectable.ts b/src/renderer/before-frame-starts/runnables/setup-root-mac-class.injectable.ts index 59a684ccc9..56b9ce66fa 100644 --- a/src/renderer/before-frame-starts/runnables/setup-root-mac-class.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/setup-root-mac-class.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import isMacInjectable from "../../../common/vars/is-mac.injectable"; -import { beforeFrameStartsInjectionToken } from "../tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../tokens"; const setupRootMacClassnameInjectable = getInjectable({ id: "setup-root-mac-classname", @@ -17,7 +17,7 @@ const setupRootMacClassnameInjectable = getInjectable({ rootElem?.classList.toggle("is-mac", isMac); }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default setupRootMacClassnameInjectable; diff --git a/src/renderer/before-frame-starts/runnables/setup-sentry.injectable.ts b/src/renderer/before-frame-starts/runnables/setup-sentry.injectable.ts index 401cec99d5..c6af3b7614 100644 --- a/src/renderer/before-frame-starts/runnables/setup-sentry.injectable.ts +++ b/src/renderer/before-frame-starts/runnables/setup-sentry.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import initializeSentryReportingWithInjectable from "../../../common/error-reporting/initialize-sentry-reporting.injectable"; -import { beforeMainFrameStartsInjectionToken } from "../tokens"; +import { beforeMainFrameStartsFirstInjectionToken } from "../tokens"; import { init } from "@sentry/electron/renderer"; const setupSentryInjectable = getInjectable({ @@ -17,7 +17,7 @@ const setupSentryInjectable = getInjectable({ initializeSentryReportingWith(init); }, }), - injectionToken: beforeMainFrameStartsInjectionToken, + injectionToken: beforeMainFrameStartsFirstInjectionToken, }); export default setupSentryInjectable; diff --git a/src/renderer/before-frame-starts/runnables/setup-weblink-context-menu-open.injectable.tsx b/src/renderer/before-frame-starts/runnables/setup-weblink-context-menu-open.injectable.tsx index 4c027d6047..7bf8f29422 100644 --- a/src/renderer/before-frame-starts/runnables/setup-weblink-context-menu-open.injectable.tsx +++ b/src/renderer/before-frame-starts/runnables/setup-weblink-context-menu-open.injectable.tsx @@ -7,7 +7,7 @@ import React from "react"; import catalogCategoryRegistryInjectable from "../../../common/catalog/category-registry.injectable"; import { WeblinkAddCommand } from "../../components/catalog-entities/weblink-add-command"; import commandOverlayInjectable from "../../components/command-palette/command-overlay.injectable"; -import { beforeFrameStartsInjectionToken } from "../tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../tokens"; const setupWeblickContextMenuOpenInjectable = getInjectable({ id: "setup-weblick-context-menu-open", @@ -28,7 +28,7 @@ const setupWeblickContextMenuOpenInjectable = getInjectable({ }); }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default setupWeblickContextMenuOpenInjectable; diff --git a/src/renderer/before-frame-starts/tokens.ts b/src/renderer/before-frame-starts/tokens.ts index 77b0350315..460c44cde9 100644 --- a/src/renderer/before-frame-starts/tokens.ts +++ b/src/renderer/before-frame-starts/tokens.ts @@ -7,20 +7,30 @@ import type { Runnable } from "../../common/runnable/run-many-for"; // NOTE: these are run before any other token, mostly to set up things that all other runnables need export const beforeFrameStartsFirstInjectionToken = getInjectionToken({ - id: "even-before-frame-starts", + id: "before-frame-starts-first", }); // NOTE: these are only run when process.isMainFrame === true -export const beforeMainFrameStartsInjectionToken = getInjectionToken({ - id: "even-before-main-frame-starts", +export const beforeMainFrameStartsFirstInjectionToken = getInjectionToken({ + id: "before-main-frame-starts-first", }); // NOTE: these are only run when process.isMainFrame === false -export const beforeClusterFrameStartsInjectionToken = getInjectionToken({ - id: "even-before-cluster-frame-starts", +export const beforeClusterFrameStartsFirstInjectionToken = getInjectionToken({ + id: "before-cluster-frame-starts-first", }); -export const beforeFrameStartsInjectionToken = getInjectionToken({ - id: "before-frame-starts", +export const beforeFrameStartsSecondInjectionToken = getInjectionToken({ + id: "before-frame-starts-second", +}); + +// NOTE: these are only run when process.isMainFrame === true +export const beforeMainFrameStartsSecondInjectionToken = getInjectionToken({ + id: "before-main-frame-starts-second", +}); + +// NOTE: these are only run when process.isMainFrame === false +export const beforeClusterFrameStartsSecondInjectionToken = getInjectionToken({ + id: "before-cluster-frame-starts-second", }); diff --git a/src/renderer/components/layout/top-bar/start-state-sync.injectable.ts b/src/renderer/components/layout/top-bar/start-state-sync.injectable.ts index 666966ddad..92488851c5 100644 --- a/src/renderer/components/layout/top-bar/start-state-sync.injectable.ts +++ b/src/renderer/components/layout/top-bar/start-state-sync.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { action } from "mobx"; -import { beforeFrameStartsInjectionToken } from "../../../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../../before-frame-starts/tokens"; import ipcRendererInjectable from "../../../utils/channel/ipc-renderer.injectable"; import topBarStateInjectable from "./state.injectable"; @@ -26,7 +26,7 @@ const startTopbarStateSyncInjectable = getInjectable({ })); }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, causesSideEffects: true, }); diff --git a/src/renderer/frames/root-frame/setup-system-ca.injectable.ts b/src/renderer/frames/root-frame/setup-system-ca.injectable.ts index 698a769be7..557d87c81f 100644 --- a/src/renderer/frames/root-frame/setup-system-ca.injectable.ts +++ b/src/renderer/frames/root-frame/setup-system-ca.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { beforeFrameStartsInjectionToken } from "../../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../before-frame-starts/tokens"; import injectSystemCAsInjectable from "../../../common/certificate-authorities/inject-system-cas.injectable"; const setupSystemCaInjectable = getInjectable({ @@ -12,7 +12,7 @@ const setupSystemCaInjectable = getInjectable({ id: "setup-system-ca", run: di.inject(injectSystemCAsInjectable), }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default setupSystemCaInjectable; diff --git a/src/renderer/start-frame/start-frame.injectable.ts b/src/renderer/start-frame/start-frame.injectable.ts index 60e8d590d0..3f1934aa1c 100644 --- a/src/renderer/start-frame/start-frame.injectable.ts +++ b/src/renderer/start-frame/start-frame.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { runManyFor } from "../../common/runnable/run-many-for"; -import { beforeFrameStartsInjectionToken, beforeClusterFrameStartsInjectionToken, beforeFrameStartsFirstInjectionToken, beforeMainFrameStartsInjectionToken } from "../before-frame-starts/tokens"; +import * as tokens from "../before-frame-starts/tokens"; import currentlyInClusterFrameInjectable from "../routes/currently-in-cluster-frame.injectable"; const startFrameInjectable = getInjectable({ @@ -13,22 +13,30 @@ const startFrameInjectable = getInjectable({ // TODO: Consolidate contents of bootstrap.tsx here instantiate: (di) => { const runMany = runManyFor(di); - const beforeFrameStartsFirst = runMany(beforeFrameStartsFirstInjectionToken); - const beforeMainFrameStarts = runMany(beforeMainFrameStartsInjectionToken); - const beforeClusterFrameStarts = runMany(beforeClusterFrameStartsInjectionToken); - const beforeFrameStarts = runMany(beforeFrameStartsInjectionToken); + const beforeFrameStartsFirst = runMany(tokens.beforeFrameStartsFirstInjectionToken); + const beforeMainFrameStartsFirst = runMany(tokens.beforeMainFrameStartsFirstInjectionToken); + const beforeClusterFrameStartsFirst = runMany(tokens.beforeClusterFrameStartsFirstInjectionToken); + const beforeFrameStartsSecond = runMany(tokens.beforeFrameStartsSecondInjectionToken); + const beforeMainFrameStartsSecond = runMany(tokens.beforeMainFrameStartsSecondInjectionToken); + const beforeClusterFrameStartsSecond = runMany(tokens.beforeClusterFrameStartsSecondInjectionToken); const currentlyInClusterFrame = di.inject(currentlyInClusterFrameInjectable); return async () => { await beforeFrameStartsFirst(); if (currentlyInClusterFrame) { - await beforeClusterFrameStarts(); + await beforeClusterFrameStartsFirst(); } else { - await beforeMainFrameStarts(); + await beforeMainFrameStartsFirst(); } - await beforeFrameStarts(); + await beforeFrameStartsSecond(); + + if (currentlyInClusterFrame) { + await beforeClusterFrameStartsSecond(); + } else { + await beforeMainFrameStartsSecond(); + } }; }, }); diff --git a/src/renderer/stores/init-user-store.injectable.ts b/src/renderer/stores/init-user-store.injectable.ts index a65181ca67..fba2287fe0 100644 --- a/src/renderer/stores/init-user-store.injectable.ts +++ b/src/renderer/stores/init-user-store.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import userStoreInjectable from "../../common/user-store/user-store.injectable"; -import { beforeFrameStartsInjectionToken } from "../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../before-frame-starts/tokens"; import initDefaultUpdateChannelInjectable from "../vars/default-update-channel/init.injectable"; const initUserStoreInjectable = getInjectable({ @@ -19,7 +19,7 @@ const initUserStoreInjectable = getInjectable({ }, runAfter: di.inject(initDefaultUpdateChannelInjectable), }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default initUserStoreInjectable; diff --git a/src/renderer/themes/setup-apply-active-theme.injectable.ts b/src/renderer/themes/setup-apply-active-theme.injectable.ts index 17b2e655a5..960f5f8764 100644 --- a/src/renderer/themes/setup-apply-active-theme.injectable.ts +++ b/src/renderer/themes/setup-apply-active-theme.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { reaction } from "mobx"; import initializeSystemThemeTypeInjectable from "../../features/theme/system-type/renderer/initialize.injectable"; -import { beforeFrameStartsInjectionToken } from "../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../before-frame-starts/tokens"; import initUserStoreInjectable from "../stores/init-user-store.injectable"; import activeThemeInjectable from "./active.injectable"; import applyLensThemeInjectable from "./apply-lens-theme.injectable"; @@ -31,7 +31,7 @@ const setupApplyActiveThemeInjectable = getInjectable({ di.inject(initUserStoreInjectable), ], }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default setupApplyActiveThemeInjectable; diff --git a/src/renderer/utils/channel/channel-listeners/start-listening-of-channels.injectable.ts b/src/renderer/utils/channel/channel-listeners/start-listening-of-channels.injectable.ts index cbcf63ea76..aea98b3360 100644 --- a/src/renderer/utils/channel/channel-listeners/start-listening-of-channels.injectable.ts +++ b/src/renderer/utils/channel/channel-listeners/start-listening-of-channels.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { beforeFrameStartsInjectionToken } from "../../../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../../before-frame-starts/tokens"; import listeningOnMessageChannelsInjectable from "../../../../common/utils/channel/listening-on-message-channels.injectable"; const startListeningOfChannelsInjectable = getInjectable({ @@ -18,7 +18,7 @@ const startListeningOfChannelsInjectable = getInjectable({ }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default startListeningOfChannelsInjectable; diff --git a/src/renderer/utils/sync-box/provide-initial-values-for-sync-boxes.injectable.ts b/src/renderer/utils/sync-box/provide-initial-values-for-sync-boxes.injectable.ts index f813445855..3666bf0840 100644 --- a/src/renderer/utils/sync-box/provide-initial-values-for-sync-boxes.injectable.ts +++ b/src/renderer/utils/sync-box/provide-initial-values-for-sync-boxes.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { beforeFrameStartsInjectionToken } from "../../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../before-frame-starts/tokens"; import { syncBoxInitialValueChannel } from "../../../common/utils/sync-box/channels"; import createSyncBoxStateInjectable from "../../../common/utils/sync-box/sync-box-state.injectable"; import { requestFromChannelInjectionToken } from "../../../common/utils/channel/request-from-channel-injection-token"; @@ -32,7 +32,7 @@ const provideInitialValuesForSyncBoxesInjectable = getInjectable({ }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default provideInitialValuesForSyncBoxesInjectable; diff --git a/src/renderer/vars/build-version/init.injectable.ts b/src/renderer/vars/build-version/init.injectable.ts index 7e7b7e9876..0734960289 100644 --- a/src/renderer/vars/build-version/init.injectable.ts +++ b/src/renderer/vars/build-version/init.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { beforeFrameStartsInjectionToken } from "../../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../before-frame-starts/tokens"; import buildVersionInjectable from "./build-version.injectable"; const initializeBuildVersionInjectable = getInjectable({ @@ -16,7 +16,7 @@ const initializeBuildVersionInjectable = getInjectable({ await buildVersion.init(); }, }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default initializeBuildVersionInjectable; diff --git a/src/renderer/vars/default-update-channel/init.injectable.ts b/src/renderer/vars/default-update-channel/init.injectable.ts index c7435230c8..a349769815 100644 --- a/src/renderer/vars/default-update-channel/init.injectable.ts +++ b/src/renderer/vars/default-update-channel/init.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { beforeFrameStartsInjectionToken } from "../../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../before-frame-starts/tokens"; import initReleaseChannelInjectable from "../release-channel/init.injectable"; import defaultUpdateChannelInjectable from "../../../features/application-update/common/selected-update-channel/default-update-channel.injectable"; @@ -18,7 +18,7 @@ const initDefaultUpdateChannelInjectable = getInjectable({ }, runAfter: di.inject(initReleaseChannelInjectable), }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default initDefaultUpdateChannelInjectable; diff --git a/src/renderer/vars/release-channel/init.injectable.ts b/src/renderer/vars/release-channel/init.injectable.ts index 016ec0826d..e0092abf55 100644 --- a/src/renderer/vars/release-channel/init.injectable.ts +++ b/src/renderer/vars/release-channel/init.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import releaseChannelInjectable from "../../../common/vars/release-channel.injectable"; -import { beforeFrameStartsInjectionToken } from "../../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../before-frame-starts/tokens"; import initSemanticBuildVersionInjectable from "../semantic-build-version/init.injectable"; const initReleaseChannelInjectable = getInjectable({ @@ -18,7 +18,7 @@ const initReleaseChannelInjectable = getInjectable({ }, runAfter: di.inject(initSemanticBuildVersionInjectable), }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default initReleaseChannelInjectable; diff --git a/src/renderer/vars/semantic-build-version/init.injectable.ts b/src/renderer/vars/semantic-build-version/init.injectable.ts index bf9d3e02d4..62a9a3387f 100644 --- a/src/renderer/vars/semantic-build-version/init.injectable.ts +++ b/src/renderer/vars/semantic-build-version/init.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import buildSemanticVersionInjectable from "../../../common/vars/build-semantic-version.injectable"; -import { beforeFrameStartsInjectionToken } from "../../before-frame-starts/tokens"; +import { beforeFrameStartsSecondInjectionToken } from "../../before-frame-starts/tokens"; import initializeBuildVersionInjectable from "../build-version/init.injectable"; const initSemanticBuildVersionInjectable = getInjectable({ @@ -18,7 +18,7 @@ const initSemanticBuildVersionInjectable = getInjectable({ }, runAfter: di.inject(initializeBuildVersionInjectable), }), - injectionToken: beforeFrameStartsInjectionToken, + injectionToken: beforeFrameStartsSecondInjectionToken, }); export default initSemanticBuildVersionInjectable;