()
| 229 | } |
| 230 | |
| 231 | static async start(): Promise<void> { |
| 232 | Extension.init(); |
| 233 | await TabManager.cleanState(); |
| 234 | await DevTools.init(Extension.onSettingsChanged); |
| 235 | await Promise.all([ |
| 236 | ConfigManager.load({local: true}), |
| 237 | Extension.MV3syncSystemColorStateManager(null), |
| 238 | UserStorage.loadSettings(), |
| 239 | ]); |
| 240 | |
| 241 | if (UserStorage.settings.enableContextMenus && !Extension.registeredContextMenus) { |
| 242 | chrome.permissions.contains({permissions: ['contextMenus']}, (permitted) => { |
| 243 | if (permitted) { |
| 244 | Extension.registerContextMenus(); |
| 245 | } else { |
| 246 | logWarn('User has enabled context menus, but did not provide permission.'); |
| 247 | } |
| 248 | }); |
| 249 | } |
| 250 | if (UserStorage.settings.syncSitesFixes) { |
| 251 | await ConfigManager.load({local: false}); |
| 252 | } |
| 253 | Extension.updateAutoState(); |
| 254 | Extension.runWakeDetector(); |
| 255 | Extension.onAppToggle(); |
| 256 | logInfo('loaded', UserStorage.settings); |
| 257 | |
| 258 | if (__THUNDERBIRD__) { |
| 259 | TabManager.registerMailDisplayScript(); |
| 260 | } else if (!__CHROMIUM_MV3__ || Extension.isFirstLoad) { |
| 261 | TabManager.updateContentScript({runOnProtectedPages: UserStorage.settings.enableForProtectedPages}); |
| 262 | } |
| 263 | |
| 264 | UserStorage.settings.fetchNews && Newsmaker.subscribe(); |
| 265 | Extension.startBarrier!.resolve(); |
| 266 | } |
| 267 | |
| 268 | private static getMessengerAdapter(): ExtensionAdapter { |
| 269 | return { |
nothing calls this directly
no test coverage detected