UNPKG

chrome-devtools-frontend

Version:
269 lines (255 loc) • 9.74 kB
// Copyright 2020 The Chromium Authors. All rights reserved. // 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 type * as InspectorMain from './inspector_main.js'; const UIStrings = { /** * @description Title of the Rendering tool. The rendering tool is a collection of settings that * lets the user debug the rendering (i.e. how the website is drawn onto the screen) of the * website. * https://developer.chrome.com/docs/devtools/evaluate-performance/reference#rendering */ rendering: 'Rendering', /** * @description Command for showing the 'Rendering' tool */ showRendering: 'Show Rendering', /** * @description Command Menu search query that points to the Rendering tool. This refers to the * process of drawing pixels onto the screen (called painting). */ paint: 'paint', /** * @description Command Menu search query that points to the Rendering tool. Layout is a phase of * rendering a website where the browser calculates where different elements in the website will go * on the screen. */ layout: 'layout', /** * @description Command Menu search query that points to the Rendering tool. 'fps' is an acronym * for 'Frames per second'. It is in lowercase here because the search box the user will type this * into is case-insensitive. If there is an equivalent acronym/shortening in the target language * then a translation would be appropriate, otherwise it can be left in English. */ fps: 'fps', /** * @description Command Menu search query that points to the Rendering tool. * https://developer.mozilla.org/en-US/docs/Web/CSS/@media#media_types. This is something the user * might type in to search for the setting to change the CSS media type. */ cssMediaType: 'CSS media type', /** * @description Command Menu search query that points to the Rendering tool. * https://developer.mozilla.org/en-US/docs/Web/CSS/@media#media_features This is something the * user might type in to search for the setting to change the value of various CSS media features. */ cssMediaFeature: 'CSS media feature', /** * @description Command Menu search query that points to the Rendering tool. Possible search term * when the user wants to find settings related to visual impairment e.g. blurry vision, blindness. */ visionDeficiency: 'vision deficiency', /** * @description Command Menu search query that points to the Rendering tool. Possible search term * when the user wants to find settings related to color vision deficiency/color blindness. */ colorVisionDeficiency: 'color vision deficiency', /** * @description Title of an action that reloads the inspected page. */ reloadPage: 'Reload page', /** * @description Title of an action that 'hard' reloads the inspected page. A hard reload also * clears the browser's cache, forcing it to reload the most recent version of the page. */ hardReloadPage: 'Hard reload page', /** * @description Title of a setting under the Network category in Settings. All ads on the site will * be blocked (the setting is forced on). */ forceAdBlocking: 'Force ad blocking on this site', /** * @description A command available in the command menu to block all ads on the current site. */ blockAds: 'Block ads on this site', /** * @description A command available in the command menu to disable ad blocking on the current site. */ showAds: 'Show ads on this site, if allowed', /** * @description A command available in the command menu to automatically open DevTools when * webpages create new popup windows. */ autoOpenDevTools: 'Auto-open DevTools for popups', /** * @description A command available in the command menu to stop automatically opening DevTools when * webpages create new popup windows. */ doNotAutoOpen: 'Do not auto-open DevTools for popups', /** * @description Title of a setting under the Appearance category in Settings. When the webpage is * paused by devtools, an overlay is shown on top of the page to indicate that it is paused. The * overlay is a pause/unpause button and some text, which appears on top of the paused page. This * setting turns off this overlay. */ disablePaused: 'Disable paused state overlay', /** * @description Title of an action that toggle * "forces CSS prefers-color-scheme" color */ toggleCssPrefersColorSchemeMedia: 'Toggle CSS media feature prefers-color-scheme', }; const str_ = i18n.i18n.registerUIStrings('entrypoints/inspector_main/inspector_main-meta.ts', UIStrings); const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_); let loadedInspectorMainModule: (typeof InspectorMain|undefined); async function loadInspectorMainModule(): Promise<typeof InspectorMain> { if (!loadedInspectorMainModule) { loadedInspectorMainModule = await import('./inspector_main.js'); } return loadedInspectorMainModule; } UI.ViewManager.registerViewExtension({ location: UI.ViewManager.ViewLocationValues.DRAWER_VIEW, id: 'rendering', title: i18nLazyString(UIStrings.rendering), commandPrompt: i18nLazyString(UIStrings.showRendering), persistence: UI.ViewManager.ViewPersistence.CLOSEABLE, order: 50, async loadView() { const InspectorMain = await loadInspectorMainModule(); return InspectorMain.RenderingOptions.RenderingOptionsView.instance(); }, tags: [ i18nLazyString(UIStrings.paint), i18nLazyString(UIStrings.layout), i18nLazyString(UIStrings.fps), i18nLazyString(UIStrings.cssMediaType), i18nLazyString(UIStrings.cssMediaFeature), i18nLazyString(UIStrings.visionDeficiency), i18nLazyString(UIStrings.colorVisionDeficiency), ], }); UI.ActionRegistration.registerActionExtension({ category: UI.ActionRegistration.ActionCategory.NAVIGATION, actionId: 'inspector_main.reload', async loadActionDelegate() { const InspectorMain = await loadInspectorMainModule(); return InspectorMain.InspectorMain.ReloadActionDelegate.instance(); }, iconClass: UI.ActionRegistration.IconClass.REFRESH, title: i18nLazyString(UIStrings.reloadPage), bindings: [ { platform: UI.ActionRegistration.Platforms.WindowsLinux, shortcut: 'Ctrl+R', }, { platform: UI.ActionRegistration.Platforms.WindowsLinux, shortcut: 'F5', }, { platform: UI.ActionRegistration.Platforms.Mac, shortcut: 'Meta+R', }, ], }); UI.ActionRegistration.registerActionExtension({ category: UI.ActionRegistration.ActionCategory.NAVIGATION, actionId: 'inspector_main.hard-reload', async loadActionDelegate() { const InspectorMain = await loadInspectorMainModule(); return InspectorMain.InspectorMain.ReloadActionDelegate.instance(); }, title: i18nLazyString(UIStrings.hardReloadPage), bindings: [ { platform: UI.ActionRegistration.Platforms.WindowsLinux, shortcut: 'Shift+Ctrl+R', }, { platform: UI.ActionRegistration.Platforms.WindowsLinux, shortcut: 'Shift+F5', }, { platform: UI.ActionRegistration.Platforms.WindowsLinux, shortcut: 'Ctrl+F5', }, { platform: UI.ActionRegistration.Platforms.WindowsLinux, shortcut: 'Ctrl+Shift+F5', }, { platform: UI.ActionRegistration.Platforms.Mac, shortcut: 'Shift+Meta+R', }, ], }); UI.ActionRegistration.registerActionExtension({ actionId: 'rendering.toggle-prefers-color-scheme', category: UI.ActionRegistration.ActionCategory.RENDERING, title: i18nLazyString(UIStrings.toggleCssPrefersColorSchemeMedia), async loadActionDelegate() { const InspectorMain = await loadInspectorMainModule(); return InspectorMain.RenderingOptions.ReloadActionDelegate.instance(); }, }); Common.Settings.registerSettingExtension({ category: Common.Settings.SettingCategory.NETWORK, title: i18nLazyString(UIStrings.forceAdBlocking), settingName: 'network.adBlockingEnabled', settingType: Common.Settings.SettingType.BOOLEAN, storageType: Common.Settings.SettingStorageType.Session, defaultValue: false, options: [ { value: true, title: i18nLazyString(UIStrings.blockAds), }, { value: false, title: i18nLazyString(UIStrings.showAds), }, ], }); Common.Settings.registerSettingExtension({ category: Common.Settings.SettingCategory.GLOBAL, storageType: Common.Settings.SettingStorageType.Synced, title: i18nLazyString(UIStrings.autoOpenDevTools), settingName: 'autoAttachToCreatedPages', settingType: Common.Settings.SettingType.BOOLEAN, order: 2, defaultValue: false, options: [ { value: true, title: i18nLazyString(UIStrings.autoOpenDevTools), }, { value: false, title: i18nLazyString(UIStrings.doNotAutoOpen), }, ], }); Common.Settings.registerSettingExtension({ category: Common.Settings.SettingCategory.APPEARANCE, storageType: Common.Settings.SettingStorageType.Synced, title: i18nLazyString(UIStrings.disablePaused), settingName: 'disablePausedStateOverlay', settingType: Common.Settings.SettingType.BOOLEAN, defaultValue: false, }); UI.Toolbar.registerToolbarItem({ async loadItem() { const InspectorMain = await loadInspectorMainModule(); return InspectorMain.InspectorMain.NodeIndicator.instance(); }, order: 2, location: UI.Toolbar.ToolbarItemLocation.MAIN_TOOLBAR_LEFT, showLabel: undefined, condition: undefined, separator: undefined, actionId: undefined, });