| 118 | } |
| 119 | |
| 120 | private static async MV3syncSystemColorStateManager(isDark: boolean | null): Promise<void> { |
| 121 | if (!__CHROMIUM_MV3__) { |
| 122 | return; |
| 123 | } |
| 124 | if (!Extension.systemColorStateManager) { |
| 125 | Extension.systemColorStateManager = new StateManager<SystemColorState>(Extension.SYSTEM_COLOR_LOCAL_STORAGE_KEY, Extension, { |
| 126 | wasLastColorSchemeDark: isDark, |
| 127 | }, logWarn); |
| 128 | } |
| 129 | if (isDark === null) { |
| 130 | // Attempt to restore data from storage |
| 131 | return Extension.systemColorStateManager.loadState(); |
| 132 | } else if (Extension.wasLastColorSchemeDark !== isDark) { |
| 133 | Extension.wasLastColorSchemeDark = isDark; |
| 134 | return Extension.systemColorStateManager.saveState(); |
| 135 | } |
| 136 | } |
| 137 | |
| 138 | private static alarmListener = (alarm: chrome.alarms.Alarm): void => { |
| 139 | if (alarm.name === Extension.ALARM_NAME) { |