UNPKG

chrome-devtools-frontend

Version:
339 lines (318 loc) 10.7 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 '../common/common.js'; import type * as Platform from '../platform/platform.js'; import {ls} from '../platform/platform.js'; import * as Root from '../root/root.js'; import * as UI from '../ui/ui.js'; // eslint-disable-next-line rulesdir/es_modules_import import type * as Emulation from './emulation.js'; let loadedEmulationModule: (typeof Emulation|undefined); async function loadEmulationModule(): Promise<typeof Emulation> { if (!loadedEmulationModule) { // Side-effect import resources in module.json await Root.Runtime.Runtime.instance().loadModulePromise('emulation'); loadedEmulationModule = await import('./emulation.js'); } return loadedEmulationModule; } UI.ViewManager.registerViewExtension({ location: UI.ViewManager.ViewLocationValues.SETTINGS_VIEW, commandPrompt: (): Platform.UIString.LocalizedString => ls`Show Devices`, title: (): Platform.UIString.LocalizedString => ls`Devices`, order: 30, async loadView() { const Emulation = await loadEmulationModule(); return Emulation.DevicesSettingsTab.DevicesSettingsTab.instance(); }, id: 'devices', settings: [ 'standardEmulatedDeviceList', 'customEmulatedDeviceList', ], }); UI.ViewManager.registerViewExtension({ location: UI.ViewManager.ViewLocationValues.DRAWER_VIEW, commandPrompt: (): Platform.UIString.LocalizedString => ls`Show Sensors`, title: (): Platform.UIString.LocalizedString => ls`Sensors`, id: 'sensors', persistence: UI.ViewManager.ViewPersistence.CLOSEABLE, order: 100, async loadView() { const Emulation = await loadEmulationModule(); return Emulation.SensorsView.SensorsView.instance(); }, tags: [ (): Platform.UIString.LocalizedString => ls`geolocation`, (): Platform.UIString.LocalizedString => ls`timezones`, (): Platform.UIString.LocalizedString => ls`locale`, (): Platform.UIString.LocalizedString => ls`locales`, (): Platform.UIString.LocalizedString => ls`accelerometer`, (): Platform.UIString.LocalizedString => ls`device orientation`, ], }); UI.ViewManager.registerViewExtension({ location: UI.ViewManager.ViewLocationValues.SETTINGS_VIEW, id: 'emulation-locations', commandPrompt: (): Platform.UIString.LocalizedString => ls`Show Locations`, title: (): Platform.UIString.LocalizedString => ls`Locations`, order: 40, async loadView() { const Emulation = await loadEmulationModule(); return Emulation.LocationsSettingsTab.LocationsSettingsTab.instance(); }, settings: [ 'emulation.locations', ], }); UI.ActionRegistration.registerActionExtension({ category: UI.ActionRegistration.ActionCategory.MOBILE, actionId: 'emulation.toggle-device-mode', toggleable: true, async loadActionDelegate() { const Emulation = await loadEmulationModule(); return Emulation.DeviceModeWrapper.ActionDelegate.instance(); }, condition: Root.Runtime.ConditionName.CAN_DOCK, title: (): Platform.UIString.LocalizedString => ls`Toggle device toolbar`, iconClass: UI.ActionRegistration.IconClass.LARGEICON_PHONE, bindings: [ { platform: UI.ActionRegistration.Platforms.WindowsLinux, shortcut: 'Shift+Ctrl+M', }, { platform: UI.ActionRegistration.Platforms.Mac, shortcut: 'Shift+Meta+M', }, ], }); UI.ActionRegistration.registerActionExtension({ actionId: 'emulation.capture-screenshot', category: UI.ActionRegistration.ActionCategory.SCREENSHOT, async loadActionDelegate() { const Emulation = await loadEmulationModule(); return Emulation.DeviceModeWrapper.ActionDelegate.instance(); }, condition: Root.Runtime.ConditionName.CAN_DOCK, title: (): Platform.UIString.LocalizedString => ls`Capture screenshot`, }); UI.ActionRegistration.registerActionExtension({ actionId: 'emulation.capture-full-height-screenshot', category: UI.ActionRegistration.ActionCategory.SCREENSHOT, async loadActionDelegate() { const Emulation = await loadEmulationModule(); return Emulation.DeviceModeWrapper.ActionDelegate.instance(); }, condition: Root.Runtime.ConditionName.CAN_DOCK, title: (): Platform.UIString.LocalizedString => ls`Capture full size screenshot`, }); UI.ActionRegistration.registerActionExtension({ actionId: 'emulation.capture-node-screenshot', category: UI.ActionRegistration.ActionCategory.SCREENSHOT, async loadActionDelegate() { const Emulation = await loadEmulationModule(); return Emulation.DeviceModeWrapper.ActionDelegate.instance(); }, condition: Root.Runtime.ConditionName.CAN_DOCK, title: (): Platform.UIString.LocalizedString => ls`Capture node screenshot`, }); UI.ActionRegistration.registerActionExtension({ actionId: 'emulation.show-sensors', category: UI.ActionRegistration.ActionCategory.SENSORS, async loadActionDelegate() { const Emulation = await loadEmulationModule(); return Emulation.SensorsView.ShowActionDelegate.instance(); }, title: (): Platform.UIString.LocalizedString => ls`Sensors`, }); Common.Settings.registerSettingExtension({ category: Common.Settings.SettingCategory.MOBILE, settingName: 'showMediaQueryInspector', settingType: Common.Settings.SettingType.BOOLEAN, defaultValue: false, options: [ { value: true, title: (): Platform.UIString.LocalizedString => ls`Show media queries`, }, { value: false, title: (): Platform.UIString.LocalizedString => ls`Hide media queries`, }, ], tags: [(): Platform.UIString.LocalizedString => ls`device`], }); Common.Settings.registerSettingExtension({ category: Common.Settings.SettingCategory.MOBILE, settingName: 'emulation.showRulers', settingType: Common.Settings.SettingType.BOOLEAN, defaultValue: false, options: [ { value: true, title: (): Platform.UIString.LocalizedString => ls`Show rulers`, }, { value: false, title: (): Platform.UIString.LocalizedString => ls`Hide rulers`, }, ], tags: [(): Platform.UIString.LocalizedString => ls`device`], }); Common.Settings.registerSettingExtension({ category: Common.Settings.SettingCategory.MOBILE, settingName: 'emulation.showDeviceOutline', settingType: Common.Settings.SettingType.BOOLEAN, defaultValue: false, options: [ { value: true, title: (): Platform.UIString.LocalizedString => ls`Show device frame`, }, { value: false, title: (): Platform.UIString.LocalizedString => ls`Hide device frame`, }, ], tags: [(): Platform.UIString.LocalizedString => ls`device`], }); Common.Settings.registerSettingExtension({ settingName: 'emulation.locations', settingType: Common.Settings.SettingType.ARRAY, defaultValue: [ { title: 'Berlin', lat: 52.520007, long: 13.404954, timezoneId: 'Europe/Berlin', locale: 'de_DE', }, { title: 'London', lat: 51.507351, long: -0.127758, timezoneId: 'Europe/London', locale: 'en_GB', }, { title: 'Moscow', lat: 55.755826, long: 37.6173, timezoneId: 'Europe/Moscow', locale: 'ru_RU', }, { title: 'Mountain View', lat: 37.386052, long: -122.083851, timezoneId: 'US/Pacific', locale: 'en_US', }, { title: 'Mumbai', lat: 19.075984, long: 72.877656, timezoneId: 'Asia/Kolkata', locale: 'mr_IN', }, { title: 'San Francisco', lat: 37.774929, long: -122.419416, timezoneId: 'US/Pacific', locale: 'en_US', }, { title: 'Shanghai', lat: 31.230416, long: 121.473701, timezoneId: 'Asia/Shanghai', locale: 'zh_Hans_CN', }, { title: 'São Paulo', lat: -23.55052, long: -46.633309, timezoneId: 'America/Sao_Paulo', locale: 'pt_BR', }, { title: 'Tokyo', lat: 35.689487, long: 139.691706, timezoneId: 'Asia/Tokyo', locale: 'ja_JP', }, ], }); Common.Settings.registerSettingExtension({ title: (): Platform.UIString.LocalizedString => ls`Touch`, reloadRequired: true, settingName: 'emulation.touch', settingType: Common.Settings.SettingType.ENUM, defaultValue: 'none', options: [ { value: 'none', title: (): Platform.UIString.LocalizedString => ls`Device-based`, text: (): Platform.UIString.LocalizedString => ls`Device-based`, }, { value: 'force', title: (): Platform.UIString.LocalizedString => ls`Force enabled`, text: (): Platform.UIString.LocalizedString => ls`Force enabled`, }, ], }); Common.Settings.registerSettingExtension({ title: (): Platform.UIString.LocalizedString => ls`Emulate Idle Detector state`, settingName: 'emulation.idleDetection', settingType: Common.Settings.SettingType.ENUM, defaultValue: 'none', options: [ { value: 'none', title: (): Platform.UIString.LocalizedString => ls`No idle emulation`, text: (): Platform.UIString.LocalizedString => ls`No idle emulation`, }, { value: '{\"isUserActive\":true,\"isScreenUnlocked\":true}', title: (): Platform.UIString.LocalizedString => ls`User active, screen unlocked`, text: (): Platform.UIString.LocalizedString => ls`User active, screen unlocked`, }, { value: '{\"isUserActive\":true,\"isScreenUnlocked\":false}', title: (): Platform.UIString.LocalizedString => ls`User active, screen locked`, text: (): Platform.UIString.LocalizedString => ls`User active, screen locked`, }, { value: '{\"isUserActive\":false,\"isScreenUnlocked\":true}', title: (): Platform.UIString.LocalizedString => ls`User idle, screen unlocked`, text: (): Platform.UIString.LocalizedString => ls`User idle, screen unlocked`, }, { value: '{\"isUserActive\":false,\"isScreenUnlocked\":false}', title: (): Platform.UIString.LocalizedString => ls`User idle, screen locked`, text: (): Platform.UIString.LocalizedString => ls`User idle, screen locked`, }, ], }); UI.Toolbar.registerToolbarItem({ actionId: 'emulation.toggle-device-mode', condition: Root.Runtime.ConditionName.CAN_DOCK, location: UI.Toolbar.ToolbarItemLocation.MAIN_TOOLBAR_LEFT, order: 1, showLabel: undefined, loadItem: undefined, separator: undefined, }); Common.AppProvider.registerAppProvider({ async loadAppProvider() { const Emulation = await loadEmulationModule(); return Emulation.AdvancedApp.AdvancedAppProvider.instance(); }, condition: Root.Runtime.ConditionName.CAN_DOCK, order: 0, });