diff options
Diffstat (limited to 'ext/js/pages/info-main.js')
| -rw-r--r-- | ext/js/pages/info-main.js | 83 | 
1 files changed, 36 insertions, 47 deletions
| diff --git a/ext/js/pages/info-main.js b/ext/js/pages/info-main.js index ca5094b1..7d7d56a5 100644 --- a/ext/js/pages/info-main.js +++ b/ext/js/pages/info-main.js @@ -17,7 +17,6 @@   */  import {Application} from '../application.js'; -import {log} from '../core/logger.js';  import {promiseTimeout} from '../core/utilities.js';  import {DocumentFocusController} from '../dom/document-focus-controller.js';  import {querySelectorNotNull} from '../dom/query-selector.js'; @@ -116,59 +115,49 @@ async function showDictionaryInfo(api) {      container.appendChild(fragment);  } -/** Entry point. */ -async function main() { -    try { -        const documentFocusController = new DocumentFocusController(); -        documentFocusController.prepare(); - -        const manifest = chrome.runtime.getManifest(); -        const language = chrome.i18n.getUILanguage(); - -        const application = new Application(); -        await application.prepare(); +await Application.main(async (application) => { +    const documentFocusController = new DocumentFocusController(); +    documentFocusController.prepare(); -        const {userAgent} = navigator; -        const {name, version} = manifest; -        const {browser, platform: {os}} = await application.api.getEnvironmentInfo(); +    const manifest = chrome.runtime.getManifest(); +    const language = chrome.i18n.getUILanguage(); -        /** @type {HTMLLinkElement} */ -        const thisVersionLink = querySelectorNotNull(document, '#release-notes-this-version-link'); -        const {hrefFormat} = thisVersionLink.dataset; -        thisVersionLink.href = typeof hrefFormat === 'string' ? hrefFormat.replace(/\{version\}/g, version) : ''; +    const {userAgent} = navigator; +    const {name, version} = manifest; +    const {browser, platform: {os}} = await application.api.getEnvironmentInfo(); -        /** @type {HTMLElement} */ -        const versionElement = querySelectorNotNull(document, '#version'); -        /** @type {HTMLElement} */ -        const browserElement = querySelectorNotNull(document, '#browser'); -        /** @type {HTMLElement} */ -        const platformElement = querySelectorNotNull(document, '#platform'); -        /** @type {HTMLElement} */ -        const languageElement = querySelectorNotNull(document, '#language'); -        /** @type {HTMLElement} */ -        const userAgentElement = querySelectorNotNull(document, '#user-agent'); +    /** @type {HTMLLinkElement} */ +    const thisVersionLink = querySelectorNotNull(document, '#release-notes-this-version-link'); +    const {hrefFormat} = thisVersionLink.dataset; +    thisVersionLink.href = typeof hrefFormat === 'string' ? hrefFormat.replace(/\{version\}/g, version) : ''; -        versionElement.textContent = `${name} ${version}`; -        browserElement.textContent = getBrowserDisplayName(browser); -        platformElement.textContent = getOperatingSystemDisplayName(os); -        languageElement.textContent = `${language}`; -        userAgentElement.textContent = userAgent; +    /** @type {HTMLElement} */ +    const versionElement = querySelectorNotNull(document, '#version'); +    /** @type {HTMLElement} */ +    const browserElement = querySelectorNotNull(document, '#browser'); +    /** @type {HTMLElement} */ +    const platformElement = querySelectorNotNull(document, '#platform'); +    /** @type {HTMLElement} */ +    const languageElement = querySelectorNotNull(document, '#language'); +    /** @type {HTMLElement} */ +    const userAgentElement = querySelectorNotNull(document, '#user-agent'); -        showAnkiConnectInfo(application.api); -        showDictionaryInfo(application.api); +    versionElement.textContent = `${name} ${version}`; +    browserElement.textContent = getBrowserDisplayName(browser); +    platformElement.textContent = getOperatingSystemDisplayName(os); +    languageElement.textContent = `${language}`; +    userAgentElement.textContent = userAgent; -        const settingsController = new SettingsController(application); -        await settingsController.prepare(); +    showAnkiConnectInfo(application.api); +    showDictionaryInfo(application.api); -        const backupController = new BackupController(settingsController, null); -        await backupController.prepare(); +    const settingsController = new SettingsController(application); +    await settingsController.prepare(); -        await promiseTimeout(100); +    const backupController = new BackupController(settingsController, null); +    await backupController.prepare(); -        document.documentElement.dataset.loaded = 'true'; -    } catch (e) { -        log.error(e); -    } -} +    await promiseTimeout(100); -await main(); +    document.documentElement.dataset.loaded = 'true'; +}); |