UNPKG

chrome-devtools-frontend

Version:
58 lines (49 loc) 1.77 kB
// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as Common from '../../core/common/common.js'; import * as i18n from '../../core/i18n/i18n.js'; import * as UI from '../../ui/legacy/legacy.js'; import * as Lighthouse from './lighthouse.js'; const UIStrings = { /** * @description Command for showing the 'Lighthouse' tool */ showLighthouse: 'Show `Lighthouse`', } as const; const str_ = i18n.i18n.registerUIStrings('panels/lighthouse/lighthouse-meta.ts', UIStrings); const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_); let loadedLighthouseModule: (typeof Lighthouse|undefined); async function loadLighthouseModule(): Promise<typeof Lighthouse> { if (!loadedLighthouseModule) { loadedLighthouseModule = await import('./lighthouse.js'); } return loadedLighthouseModule; } UI.ViewManager.registerViewExtension({ location: UI.ViewManager.ViewLocationValues.PANEL, id: 'lighthouse', title: i18n.i18n.lockedLazyString('Lighthouse'), commandPrompt: i18nLazyString(UIStrings.showLighthouse), order: 90, async loadView() { const Lighthouse = await loadLighthouseModule(); return Lighthouse.LighthousePanel.LighthousePanel.instance(); }, tags: [ i18n.i18n.lockedLazyString('lighthouse'), i18n.i18n.lockedLazyString('pwa'), ], }); Common.Revealer.registerRevealer({ contextTypes() { return [ Lighthouse.LighthousePanel.ActiveLighthouseReport, ]; }, destination: Common.Revealer.RevealerDestination.LIGHTHOUSE_PANEL, async loadRevealer() { const Lighthouse = await loadLighthouseModule(); return new Lighthouse.LighthousePanel.ReportRevealer(); }, });