chrome-devtools-frontend 1.0.1669021 → 1.0.1672557
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/fixing-skipped-tests/SKILL.md +6 -6
- package/.agents/skills/gerrit-cli/SKILL.md +4 -10
- package/.agents/skills/gerrit-cli/references/commands.md +45 -2
- package/.agents/skills/gerrit-cli/references/workflows.md +7 -0
- package/.agents/skills/gerrit-cli/scripts/import_upstream.py +34 -152
- package/config/typescript/tsconfig.eslint.json +1 -1
- package/docs/contributing/settings-experiments-features.md +2 -8
- package/docs/ecosystem/automatic_workspace_folders.md +0 -19
- package/eslint.config.mjs +5 -5
- package/front_end/core/common/Lazy.ts +3 -3
- package/front_end/core/common/SettingRegistration.ts +0 -7
- package/front_end/core/common/Settings.ts +0 -38
- package/front_end/core/host/UserMetrics.ts +187 -953
- package/front_end/core/host/UserMetricsEnums.ts +949 -0
- package/front_end/core/root/Runtime.ts +21 -138
- package/front_end/core/sdk/CSSMetadata.ts +70 -65
- package/front_end/core/sdk/CategorizedBreakpoint.ts +0 -1
- package/front_end/core/sdk/ChildTargetManager.ts +0 -2
- package/front_end/core/sdk/EmulationModel.ts +0 -2
- package/front_end/core/sdk/EventBreakpointsModel.ts +0 -4
- package/front_end/core/sdk/NetworkManager.ts +0 -3
- package/front_end/core/sdk/PageResourceLoader.ts +9 -9
- package/front_end/core/sdk/RehydratingConnection.ts +52 -4
- package/front_end/core/sdk/Target.ts +0 -4
- package/front_end/devtools_compatibility.js +886 -0
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +7 -6
- package/front_end/entrypoints/main/ExecutionContextSelector.ts +0 -1
- package/front_end/entrypoints/main/MainImpl.ts +18 -22
- package/front_end/foundation/Universe.ts +7 -2
- package/front_end/generated/InspectorBackendCommands.ts +3 -10
- package/front_end/generated/{SupportedCSSProperties.js → SupportedCSSProperties.ts} +16 -0
- package/front_end/generated/protocol-mapping.d.ts +0 -42
- package/front_end/generated/protocol-proxy-api.d.ts +0 -38
- package/front_end/generated/protocol.ts +9 -169
- package/front_end/models/ai_assistance/AiAgent2.ts +11 -3
- package/front_end/models/ai_assistance/AiConversation.ts +1 -0
- package/front_end/models/ai_assistance/AiHistoryStorage.ts +8 -5
- package/front_end/models/ai_assistance/AiSetting.ts +108 -0
- package/front_end/models/ai_assistance/AiUtils.ts +47 -0
- package/front_end/models/ai_assistance/ChangeManager.ts +1 -0
- package/front_end/models/ai_assistance/ExtensionScope.ts +3 -12
- package/front_end/models/ai_assistance/agents/AiAgent.ts +11 -18
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +3 -0
- package/front_end/models/ai_assistance/agents/ExecuteJavascript.ts +42 -17
- package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +1 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +3 -2
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +253 -155
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +2 -2
- package/front_end/models/ai_assistance/ai_assistance.ts +4 -0
- package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +12 -6
- package/front_end/models/ai_assistance/data_formatters/FileFormatter.ts +3 -1
- package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +1 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +4 -3
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +1 -1
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +1 -0
- package/front_end/models/ai_assistance/injected.ts +1 -0
- package/front_end/models/ai_assistance/performance/AICallTree.ts +1 -0
- package/front_end/models/ai_assistance/skills/Skill.ts +1 -1
- package/front_end/models/ai_assistance/skills/SkillRegistry.ts +2 -0
- package/front_end/models/ai_assistance/skills/performance.md +10 -0
- package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +52 -5
- package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +4 -4
- package/front_end/models/ai_assistance/tools/GetLighthouseAudits.ts +4 -4
- package/front_end/models/ai_assistance/tools/GetNetworkRequestDetails.ts +5 -4
- package/front_end/models/ai_assistance/tools/GetStyles.ts +5 -4
- package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +5 -4
- package/front_end/models/ai_assistance/tools/README.md +1 -1
- package/front_end/models/ai_assistance/tools/RecordPerformanceTrace.ts +63 -0
- package/front_end/models/ai_assistance/tools/ResolveDevtoolsNodePath.ts +5 -5
- package/front_end/models/ai_assistance/tools/Tool.ts +118 -24
- package/front_end/models/ai_assistance/tools/ToolRegistry.ts +2 -0
- package/front_end/models/badges/UserBadges.ts +2 -0
- package/front_end/models/bindings/NetworkProject.ts +5 -0
- package/front_end/models/bindings/ResourceScriptMapping.ts +2 -0
- package/front_end/models/bindings/ResourceUtils.ts +3 -0
- package/front_end/models/crux-manager/CrUXManager.ts +1 -0
- package/front_end/models/emulation/DeviceModeModel.ts +140 -7
- package/front_end/models/emulation/EmulatedDevices.ts +246 -793
- package/front_end/models/issues_manager/IssuesManager.ts +10 -2
- package/front_end/models/live-metrics/LiveMetrics.ts +41 -9
- package/front_end/models/logs/LogManager.ts +8 -5
- package/front_end/models/logs/NetworkLog.ts +1 -0
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +21 -3
- package/front_end/models/persistence/NetworkPersistenceManager.ts +6 -0
- package/front_end/models/project_settings/ProjectSettingsModel.ts +8 -12
- package/front_end/models/trace/Processor.ts +42 -10
- package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +12 -19
- package/front_end/models/trace/handlers/MetaHandler.ts +38 -5
- package/front_end/models/trace/insights/CLSCulprits.ts +1 -2
- package/front_end/models/trace/insights/CharacterSet.ts +1 -1
- package/front_end/models/trace/insights/Common.ts +21 -2
- package/front_end/models/trace/insights/DocumentLatency.ts +1 -1
- package/front_end/models/trace/insights/LCPBreakdown.ts +7 -6
- package/front_end/models/trace/insights/LCPDiscovery.ts +1 -1
- package/front_end/models/trace/insights/ModernHTTP.ts +7 -3
- package/front_end/models/trace/insights/NetworkDependencyTree.ts +1 -1
- package/front_end/models/trace/insights/RenderBlocking.ts +1 -1
- package/front_end/models/trace/insights/ThirdParties.ts +5 -2
- package/front_end/models/trace/insights/types.ts +11 -6
- package/front_end/models/trace/types/Configuration.ts +5 -0
- package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +3 -1
- package/front_end/models/workspace/IgnoreListManager.ts +2 -0
- package/front_end/models/workspace/UISourceCode.ts +2 -0
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +4 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +22 -22
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +0 -7
- package/front_end/panels/ai_assistance/components/ChatInput.ts +4 -0
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +79 -34
- package/front_end/panels/ai_assistance/components/WalkthroughView.ts +1 -2
- package/front_end/panels/ai_assistance/components/walkthroughView.css +1 -1
- package/front_end/panels/application/ApplicationPanelSidebar.ts +9 -106
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +1 -1
- package/front_end/panels/application/application.ts +0 -10
- package/front_end/panels/application/components/components.ts +0 -4
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +0 -5
- package/front_end/panels/browser_debugger/EventListenerBreakpointsSidebarPane.ts +6 -12
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +5 -3
- package/front_end/panels/console/ConsoleFormat.ts +2 -62
- package/front_end/panels/console/ConsoleViewMessage.ts +14 -7
- package/front_end/panels/elements/ElementsTreeElement.ts +1 -2
- package/front_end/panels/emulation/AdvancedApp.ts +1 -2
- package/front_end/panels/emulation/DeviceModeToolbar.ts +83 -69
- package/front_end/panels/emulation/DeviceModeView.ts +4 -134
- package/front_end/panels/emulation/DeviceModeWrapper.ts +52 -69
- package/front_end/panels/emulation/MediaQueryInspector.ts +2 -2
- package/front_end/panels/emulation/emulation-meta.ts +12 -12
- package/front_end/panels/issues/IssuesPane.ts +3 -1
- package/front_end/panels/lighthouse/LighthouseController.ts +6 -0
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +17 -21
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +206 -126
- package/front_end/panels/linear_memory_inspector/components/linearMemoryInspector.css +1 -1
- package/front_end/panels/mobile_throttling/CalibrationController.ts +1 -1
- package/front_end/panels/mobile_throttling/MobileThrottlingSelector.ts +3 -3
- package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +6 -6
- package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +14 -12
- package/front_end/panels/mobile_throttling/ThrottlingManager.ts +13 -13
- package/front_end/panels/mobile_throttling/ThrottlingPresets.ts +10 -10
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +28 -28
- package/front_end/panels/mobile_throttling/mobile_throttling-meta.ts +6 -6
- package/front_end/panels/network/RequestHeadersView.ts +1 -1
- package/front_end/panels/network/ResourceChunkView.ts +243 -144
- package/front_end/panels/network/ResourceDirectSocketChunkView.ts +52 -29
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +21 -35
- package/front_end/panels/network/resourceChunkView.css +41 -36
- package/front_end/panels/profiler/HeapDetachedElementsDataGrid.ts +21 -12
- package/front_end/panels/profiler/profiler.ts +4 -0
- package/front_end/panels/recorder/RecorderPanel.ts +6 -14
- package/front_end/panels/sensors/LocationsSettingsTab.ts +7 -7
- package/front_end/panels/settings/AISettingsTab.ts +75 -31
- package/front_end/panels/settings/SettingsScreen.ts +8 -13
- package/front_end/panels/settings/components/SyncSection.ts +3 -4
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +650 -18
- package/front_end/panels/settings/emulation/devicesSettingsTab.css +18 -0
- package/front_end/panels/settings/settings-meta.ts +0 -1
- package/front_end/panels/sources/CategorizedBreakpointL10n.ts +0 -2
- package/front_end/panels/sources/DebuggerPausedMessage.ts +11 -5
- package/front_end/panels/sources/DebuggerPlugin.ts +1 -1
- package/front_end/panels/sources/EditingLocationHistoryManager.ts +12 -9
- package/front_end/panels/sources/SourcesPanel.ts +19 -17
- package/front_end/panels/sources/SourcesView.ts +191 -96
- package/front_end/panels/sources/TabbedEditorContainer.ts +3 -4
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +2 -5
- package/front_end/panels/timeline/TimelinePanel.ts +2 -0
- package/front_end/panels/timeline/TimelineUIUtils.ts +15 -0
- package/front_end/panels/timeline/components/CWVMetrics.ts +16 -3
- package/front_end/panels/timeline/components/cwvMetrics.css +4 -0
- package/front_end/panels/timeline/components/liveMetricsView.css +0 -17
- package/front_end/panels/timeline/components/metricValueStyles.css +17 -0
- package/front_end/panels/timeline/timeline-meta.ts +3 -5
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/angular.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/java.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/less.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/markdown.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/python.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/sass.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/svelte.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/vue.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js.map +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +1332 -193
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/rebuild.sh +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +64 -15
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +65 -16
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts +50 -7
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js +5 -5
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js +8 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Dialog.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Dialog.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Dialog.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +16 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.js +11 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Dialog.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Dialog.js +5 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Dialog.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.js +10 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js +4 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts +27 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js +12 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.js +2 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts +2 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js +5 -4
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +64 -15
- package/front_end/third_party/puppeteer/package/package.json +2 -2
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +50 -7
- package/front_end/third_party/puppeteer/package/src/bidi/BidiOverCdp.ts +9 -7
- package/front_end/third_party/puppeteer/package/src/bidi/Connection.ts +9 -6
- package/front_end/third_party/puppeteer/package/src/bidi/Dialog.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +24 -1
- package/front_end/third_party/puppeteer/package/src/cdp/Connection.ts +11 -6
- package/front_end/third_party/puppeteer/package/src/cdp/Dialog.ts +7 -0
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +11 -0
- package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +7 -3
- package/front_end/third_party/puppeteer/package/src/common/Debug.ts +30 -5
- package/front_end/third_party/puppeteer/package/src/common/util.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/node/ScreenRecorder.ts +6 -4
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/tsconfig.compatibility.json +2 -1
- package/front_end/tsconfig.json +1 -1
- package/front_end/ui/components/icon_button/IconButton.ts +1 -1
- package/front_end/ui/components/issue_counter/IssueCounter.ts +1 -1
- package/front_end/ui/components/settings/SettingCheckbox.ts +4 -7
- package/front_end/ui/components/settings/settings.ts +1 -2
- package/front_end/ui/legacy/Treeoutline.ts +52 -30
- package/front_end/ui/legacy/components/object_ui/CSSStyleSanitizer.ts +74 -0
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +6 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +47 -54
- package/front_end/ui/legacy/components/object_ui/object_ui.ts +2 -0
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -27
- package/front_end/ui/legacy/components/settings_ui/SettingsUI.ts +10 -12
- package/front_end/ui/settings/SettingUIRegistration.ts +0 -8
- package/front_end/ui/visual_logging/KnownContextValues.ts +37 -0
- package/inspector_overlay/tsconfig.json +8 -2
- package/package.json +3 -2
- package/.agents/skills/gerrit-cli/scripts/gerrit_client_wrapper.py +0 -47
- package/front_end/core/sdk/CSSModel.test.api.ts +0 -102
- package/front_end/core/sdk/DOMModel.test.api.ts +0 -104
- package/front_end/foundation/Universe.test.api.ts +0 -73
- package/front_end/panels/application/SharedStorageEventsView.ts +0 -128
- package/front_end/panels/application/SharedStorageItemsView.ts +0 -179
- package/front_end/panels/application/SharedStorageListTreeElement.ts +0 -65
- package/front_end/panels/application/SharedStorageModel.ts +0 -249
- package/front_end/panels/application/SharedStorageTreeElement.ts +0 -40
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +0 -191
- package/front_end/panels/application/components/SharedStorageMetadataView.ts +0 -133
- package/front_end/panels/application/components/sharedStorageAccessGrid.css +0 -29
- package/front_end/panels/application/components/sharedStorageMetadataView.css +0 -29
- package/front_end/panels/application/sharedStorageEventsView.css +0 -9
- package/front_end/panels/network/OriginalResourceChunkView.ts +0 -340
- package/front_end/panels/network/originalResourceChunkView.css +0 -49
- package/front_end/ui/components/settings/SettingDeprecationWarning.ts +0 -47
- package/front_end/ui/components/settings/settingDeprecationWarning.css +0 -14
- /package/front_end/generated/{ARIAProperties.js → ARIAProperties.ts} +0 -0
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import * as Common from '../../core/common/common.js';
|
|
9
9
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
10
|
+
import type * as Platform from '../../core/platform/platform.js';
|
|
10
11
|
import * as Root from '../../core/root/root.js';
|
|
11
12
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
12
13
|
import type * as Protocol from '../../generated/protocol.js';
|
|
@@ -26,9 +27,26 @@ const UIStrings = {
|
|
|
26
27
|
* @description Title of the Laptop with MDPI screen device.
|
|
27
28
|
*/
|
|
28
29
|
laptopWithMDPIScreen: 'Laptop with MDPI screen',
|
|
30
|
+
/**
|
|
31
|
+
* @description Label for mobile category in emulation devices.
|
|
32
|
+
*/
|
|
33
|
+
mobileGroup: 'Mobile',
|
|
34
|
+
/**
|
|
35
|
+
* @description Label for foldables category in emulation devices.
|
|
36
|
+
*/
|
|
37
|
+
foldablesGroup: 'Foldables',
|
|
38
|
+
/**
|
|
39
|
+
* @description Label for tablets and desktops category in emulation devices.
|
|
40
|
+
*/
|
|
41
|
+
tabletsAndDesktopsGroup: 'Tablets & Desktops',
|
|
42
|
+
/**
|
|
43
|
+
* @description Label for smart displays category in emulation devices.
|
|
44
|
+
*/
|
|
45
|
+
smartDisplaysGroup: 'Smart Displays',
|
|
29
46
|
} as const;
|
|
30
47
|
const str_ = i18n.i18n.registerUIStrings('models/emulation/EmulatedDevices.ts', UIStrings);
|
|
31
48
|
const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
|
|
49
|
+
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
32
50
|
|
|
33
51
|
export function computeRelativeImageURL(cssURLValue: string): string {
|
|
34
52
|
return cssURLValue.replace(/@url\(([^\)]*?)\)/g, (_match: string, url: string) => {
|
|
@@ -553,16 +571,58 @@ export const Vertical = 'vertical';
|
|
|
553
571
|
export const HorizontalSpanned = 'horizontal-spanned';
|
|
554
572
|
export const VerticalSpanned = 'vertical-spanned';
|
|
555
573
|
|
|
556
|
-
enum Type {
|
|
574
|
+
export enum Type {
|
|
557
575
|
/* eslint-disable @typescript-eslint/naming-convention -- Indexed access. */
|
|
558
576
|
Phone = 'phone',
|
|
559
577
|
Tablet = 'tablet',
|
|
560
578
|
Notebook = 'notebook',
|
|
561
579
|
Desktop = 'desktop',
|
|
580
|
+
Foldable = 'foldable',
|
|
581
|
+
SmartDisplay = 'smart-display',
|
|
562
582
|
Unknown = 'unknown',
|
|
563
583
|
/* eslint-enable @typescript-eslint/naming-convention */
|
|
564
584
|
}
|
|
565
585
|
|
|
586
|
+
export const enum Category {
|
|
587
|
+
MOBILE = 'mobile',
|
|
588
|
+
FOLDABLE = 'foldable',
|
|
589
|
+
TABLET_DESKTOP = 'tablet_desktop',
|
|
590
|
+
SMART_DISPLAY = 'smart_display',
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
export function deviceCategory(device: EmulatedDevice): Category {
|
|
594
|
+
if (device.type === Type.Foldable || device.isFoldableScreen || device.isDualScreen) {
|
|
595
|
+
return Category.FOLDABLE;
|
|
596
|
+
}
|
|
597
|
+
if (device.type === Type.SmartDisplay) {
|
|
598
|
+
return Category.SMART_DISPLAY;
|
|
599
|
+
}
|
|
600
|
+
if (device.type === Type.Tablet || device.type === Type.Notebook || device.type === Type.Desktop) {
|
|
601
|
+
return Category.TABLET_DESKTOP;
|
|
602
|
+
}
|
|
603
|
+
return Category.MOBILE;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
export const CATEGORY_ORDER: readonly Category[] = [
|
|
607
|
+
Category.MOBILE,
|
|
608
|
+
Category.FOLDABLE,
|
|
609
|
+
Category.TABLET_DESKTOP,
|
|
610
|
+
Category.SMART_DISPLAY,
|
|
611
|
+
];
|
|
612
|
+
|
|
613
|
+
export function getCategoryTitle(category: Category): Platform.UIString.LocalizedString {
|
|
614
|
+
switch (category) {
|
|
615
|
+
case Category.MOBILE:
|
|
616
|
+
return i18nString(UIStrings.mobileGroup);
|
|
617
|
+
case Category.FOLDABLE:
|
|
618
|
+
return i18nString(UIStrings.foldablesGroup);
|
|
619
|
+
case Category.TABLET_DESKTOP:
|
|
620
|
+
return i18nString(UIStrings.tabletsAndDesktopsGroup);
|
|
621
|
+
case Category.SMART_DISPLAY:
|
|
622
|
+
return i18nString(UIStrings.smartDisplaysGroup);
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
|
|
566
626
|
export const enum Capability {
|
|
567
627
|
TOUCH = 'touch',
|
|
568
628
|
MOBILE = 'mobile',
|
|
@@ -599,6 +659,7 @@ export class EmulatedDevicesList extends Common.ObjectWrapper.ObjectWrapper<Even
|
|
|
599
659
|
static instance(): EmulatedDevicesList {
|
|
600
660
|
if (!Root.DevToolsContext.globalInstance().has(EmulatedDevicesList)) {
|
|
601
661
|
Root.DevToolsContext.globalInstance().set(EmulatedDevicesList,
|
|
662
|
+
// eslint-disable-next-line @devtools/no-instance-of-migrated-singletons
|
|
602
663
|
new EmulatedDevicesList(Common.Settings.Settings.instance()));
|
|
603
664
|
}
|
|
604
665
|
return Root.DevToolsContext.globalInstance().get(EmulatedDevicesList);
|
|
@@ -797,7 +858,7 @@ const emulatedDevices = [
|
|
|
797
858
|
},
|
|
798
859
|
{
|
|
799
860
|
'order': 12,
|
|
800
|
-
'show-by-default':
|
|
861
|
+
'show-by-default': false,
|
|
801
862
|
'title': 'iPhone XR',
|
|
802
863
|
'screen': {
|
|
803
864
|
'horizontal': {
|
|
@@ -835,7 +896,7 @@ const emulatedDevices = [
|
|
|
835
896
|
},
|
|
836
897
|
{
|
|
837
898
|
'order': 14,
|
|
838
|
-
'show-by-default':
|
|
899
|
+
'show-by-default': false,
|
|
839
900
|
'title': 'iPhone 12 Pro',
|
|
840
901
|
'screen': {
|
|
841
902
|
'horizontal': {
|
|
@@ -986,7 +1047,7 @@ const emulatedDevices = [
|
|
|
986
1047
|
},
|
|
987
1048
|
{
|
|
988
1049
|
'order': 18,
|
|
989
|
-
'show-by-default':
|
|
1050
|
+
'show-by-default': false,
|
|
990
1051
|
'title': 'iPhone 14 Pro Max',
|
|
991
1052
|
'screen': {
|
|
992
1053
|
'horizontal': {
|
|
@@ -1134,7 +1195,7 @@ const emulatedDevices = [
|
|
|
1134
1195
|
},
|
|
1135
1196
|
{
|
|
1136
1197
|
'order': 22,
|
|
1137
|
-
'show-by-default':
|
|
1198
|
+
'show-by-default': false,
|
|
1138
1199
|
'title': 'iPhone 15 Pro Max',
|
|
1139
1200
|
'screen': {
|
|
1140
1201
|
'horizontal': {
|
|
@@ -1209,7 +1270,7 @@ const emulatedDevices = [
|
|
|
1209
1270
|
},
|
|
1210
1271
|
{
|
|
1211
1272
|
'order': 24,
|
|
1212
|
-
'show-by-default':
|
|
1273
|
+
'show-by-default': true,
|
|
1213
1274
|
'title': 'iPhone 16',
|
|
1214
1275
|
'screen': {
|
|
1215
1276
|
'horizontal': {
|
|
@@ -1355,46 +1416,10 @@ const emulatedDevices = [
|
|
|
1355
1416
|
},
|
|
1356
1417
|
],
|
|
1357
1418
|
},
|
|
1358
|
-
|
|
1359
|
-
'order': 28,
|
|
1360
|
-
'show-by-default': false,
|
|
1361
|
-
'title': 'Pixel 3 XL',
|
|
1362
|
-
'screen': {
|
|
1363
|
-
'horizontal': {
|
|
1364
|
-
'width': 786,
|
|
1365
|
-
'height': 393,
|
|
1366
|
-
},
|
|
1367
|
-
'device-pixel-ratio': 2.75,
|
|
1368
|
-
'vertical': {
|
|
1369
|
-
'width': 393,
|
|
1370
|
-
'height': 786,
|
|
1371
|
-
},
|
|
1372
|
-
},
|
|
1373
|
-
'capabilities': ['touch', 'mobile'],
|
|
1374
|
-
'user-agent':
|
|
1375
|
-
'Mozilla/5.0 (Linux; Android 11; Pixel 3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
1376
|
-
'user-agent-metadata':
|
|
1377
|
-
{'platform': 'Android', 'platformVersion': '11', 'architecture': '', 'model': 'Pixel 3', 'mobile': true},
|
|
1378
|
-
'type': 'phone',
|
|
1379
|
-
'modes': [
|
|
1380
|
-
{
|
|
1381
|
-
'title': 'default',
|
|
1382
|
-
'orientation': 'vertical',
|
|
1383
|
-
'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0},
|
|
1384
|
-
'safe-area-insets': {'left': 0, 'top': 45, 'right': 0, 'bottom': 0},
|
|
1385
|
-
'cutout': {'shape': 'rectangle', 'x': 126, 'y': 0, 'width': 141, 'height': 45},
|
|
1386
|
-
},
|
|
1387
|
-
{
|
|
1388
|
-
'title': 'default',
|
|
1389
|
-
'orientation': 'horizontal',
|
|
1390
|
-
'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0},
|
|
1391
|
-
'safe-area-insets': {'left': 0, 'top': 0, 'right': 45, 'bottom': 0},
|
|
1392
|
-
},
|
|
1393
|
-
],
|
|
1394
|
-
},
|
|
1419
|
+
|
|
1395
1420
|
{
|
|
1396
1421
|
'order': 30,
|
|
1397
|
-
'show-by-default':
|
|
1422
|
+
'show-by-default': false,
|
|
1398
1423
|
'title': 'Pixel 7',
|
|
1399
1424
|
'screen': {
|
|
1400
1425
|
'horizontal': {
|
|
@@ -1431,7 +1456,7 @@ const emulatedDevices = [
|
|
|
1431
1456
|
},
|
|
1432
1457
|
{
|
|
1433
1458
|
'order': 31,
|
|
1434
|
-
'show-by-default':
|
|
1459
|
+
'show-by-default': false,
|
|
1435
1460
|
'title': 'Pixel 8',
|
|
1436
1461
|
'screen': {
|
|
1437
1462
|
'horizontal': {
|
|
@@ -1579,7 +1604,7 @@ const emulatedDevices = [
|
|
|
1579
1604
|
},
|
|
1580
1605
|
{
|
|
1581
1606
|
'order': 35,
|
|
1582
|
-
'show-by-default':
|
|
1607
|
+
'show-by-default': true,
|
|
1583
1608
|
'title': 'Pixel 9 Pro',
|
|
1584
1609
|
'screen': {
|
|
1585
1610
|
'horizontal': {
|
|
@@ -1690,7 +1715,7 @@ const emulatedDevices = [
|
|
|
1690
1715
|
},
|
|
1691
1716
|
{
|
|
1692
1717
|
'order': 38,
|
|
1693
|
-
'show-by-default':
|
|
1718
|
+
'show-by-default': false,
|
|
1694
1719
|
'title': 'Samsung Galaxy S8+',
|
|
1695
1720
|
'screen': {
|
|
1696
1721
|
'horizontal': {
|
|
@@ -1712,7 +1737,7 @@ const emulatedDevices = [
|
|
|
1712
1737
|
},
|
|
1713
1738
|
{
|
|
1714
1739
|
'order': 39,
|
|
1715
|
-
'show-by-default':
|
|
1740
|
+
'show-by-default': false,
|
|
1716
1741
|
'title': 'Samsung Galaxy S20 Ultra',
|
|
1717
1742
|
'screen': {
|
|
1718
1743
|
'horizontal': {
|
|
@@ -1732,46 +1757,45 @@ const emulatedDevices = [
|
|
|
1732
1757
|
{'platform': 'Android', 'platformVersion': '13', 'architecture': '', 'model': 'SM-G981B', 'mobile': true},
|
|
1733
1758
|
'type': 'phone',
|
|
1734
1759
|
},
|
|
1760
|
+
|
|
1735
1761
|
{
|
|
1736
|
-
'order':
|
|
1737
|
-
'show-by-default':
|
|
1738
|
-
'title': '
|
|
1762
|
+
'order': 43,
|
|
1763
|
+
'show-by-default': false,
|
|
1764
|
+
'title': 'Surface Pro 7',
|
|
1739
1765
|
'screen': {
|
|
1740
1766
|
'horizontal': {
|
|
1741
|
-
'width':
|
|
1742
|
-
'height':
|
|
1767
|
+
'width': 1368,
|
|
1768
|
+
'height': 912,
|
|
1743
1769
|
},
|
|
1744
1770
|
'device-pixel-ratio': 2,
|
|
1745
1771
|
'vertical': {
|
|
1746
|
-
'width':
|
|
1747
|
-
'height':
|
|
1772
|
+
'width': 912,
|
|
1773
|
+
'height': 1368,
|
|
1748
1774
|
},
|
|
1749
1775
|
},
|
|
1750
1776
|
'capabilities': ['touch', 'mobile'],
|
|
1751
1777
|
'user-agent':
|
|
1752
|
-
'Mozilla/5.0 (
|
|
1753
|
-
'user-agent-metadata':
|
|
1754
|
-
{'platform': 'iOS', 'platformVersion': '18.5', 'architecture': '', 'model': 'iPad', 'mobile': true},
|
|
1778
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36',
|
|
1755
1779
|
'type': 'tablet',
|
|
1756
1780
|
},
|
|
1757
1781
|
{
|
|
1758
|
-
'order':
|
|
1782
|
+
'order': 40,
|
|
1759
1783
|
'show-by-default': true,
|
|
1760
|
-
'title': 'iPad
|
|
1784
|
+
'title': 'iPad Mini',
|
|
1761
1785
|
'screen': {
|
|
1762
1786
|
'horizontal': {
|
|
1763
|
-
'width':
|
|
1764
|
-
'height':
|
|
1787
|
+
'width': 1024,
|
|
1788
|
+
'height': 768,
|
|
1765
1789
|
},
|
|
1766
1790
|
'device-pixel-ratio': 2,
|
|
1767
1791
|
'vertical': {
|
|
1768
|
-
'width':
|
|
1769
|
-
'height':
|
|
1792
|
+
'width': 768,
|
|
1793
|
+
'height': 1024,
|
|
1770
1794
|
},
|
|
1771
1795
|
},
|
|
1772
1796
|
'capabilities': ['touch', 'mobile'],
|
|
1773
1797
|
'user-agent':
|
|
1774
|
-
'Mozilla/5.0 (
|
|
1798
|
+
'Mozilla/5.0 (iPad; CPU OS 18_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Mobile/15E148 Safari/604.1',
|
|
1775
1799
|
'user-agent-metadata':
|
|
1776
1800
|
{'platform': 'iOS', 'platformVersion': '18.5', 'architecture': '', 'model': 'iPad', 'mobile': true},
|
|
1777
1801
|
'type': 'tablet',
|
|
@@ -1779,16 +1803,16 @@ const emulatedDevices = [
|
|
|
1779
1803
|
{
|
|
1780
1804
|
'order': 42,
|
|
1781
1805
|
'show-by-default': true,
|
|
1782
|
-
'title': 'iPad Pro',
|
|
1806
|
+
'title': 'iPad Pro 13',
|
|
1783
1807
|
'screen': {
|
|
1784
1808
|
'horizontal': {
|
|
1785
|
-
'width':
|
|
1786
|
-
'height':
|
|
1809
|
+
'width': 1376,
|
|
1810
|
+
'height': 1032,
|
|
1787
1811
|
},
|
|
1788
1812
|
'device-pixel-ratio': 2,
|
|
1789
1813
|
'vertical': {
|
|
1790
|
-
'width':
|
|
1791
|
-
'height':
|
|
1814
|
+
'width': 1032,
|
|
1815
|
+
'height': 1376,
|
|
1792
1816
|
},
|
|
1793
1817
|
},
|
|
1794
1818
|
'capabilities': ['touch', 'mobile'],
|
|
@@ -1801,16 +1825,16 @@ const emulatedDevices = [
|
|
|
1801
1825
|
{
|
|
1802
1826
|
'order': 43,
|
|
1803
1827
|
'show-by-default': true,
|
|
1804
|
-
'title': 'Surface Pro
|
|
1828
|
+
'title': 'Surface Pro 10',
|
|
1805
1829
|
'screen': {
|
|
1806
1830
|
'horizontal': {
|
|
1807
|
-
'width':
|
|
1808
|
-
'height':
|
|
1831
|
+
'width': 1440,
|
|
1832
|
+
'height': 960,
|
|
1809
1833
|
},
|
|
1810
1834
|
'device-pixel-ratio': 2,
|
|
1811
1835
|
'vertical': {
|
|
1812
|
-
'width':
|
|
1813
|
-
'height':
|
|
1836
|
+
'width': 960,
|
|
1837
|
+
'height': 1440,
|
|
1814
1838
|
},
|
|
1815
1839
|
},
|
|
1816
1840
|
'capabilities': ['touch', 'mobile'],
|
|
@@ -1820,7 +1844,7 @@ const emulatedDevices = [
|
|
|
1820
1844
|
},
|
|
1821
1845
|
{
|
|
1822
1846
|
'order': 44,
|
|
1823
|
-
'show-by-default':
|
|
1847
|
+
'show-by-default': false,
|
|
1824
1848
|
'dual-screen': true,
|
|
1825
1849
|
'title': 'Surface Duo',
|
|
1826
1850
|
'screen': {
|
|
@@ -1855,10 +1879,133 @@ const emulatedDevices = [
|
|
|
1855
1879
|
},
|
|
1856
1880
|
],
|
|
1857
1881
|
},
|
|
1882
|
+
{
|
|
1883
|
+
'order': 38,
|
|
1884
|
+
'show-by-default': true,
|
|
1885
|
+
'title': 'Samsung Galaxy A55',
|
|
1886
|
+
'screen': {
|
|
1887
|
+
'horizontal': {'width': 800, 'height': 360},
|
|
1888
|
+
'device-pixel-ratio': 2.25,
|
|
1889
|
+
'vertical': {'width': 360, 'height': 800},
|
|
1890
|
+
},
|
|
1891
|
+
'capabilities': ['touch', 'mobile'],
|
|
1892
|
+
'user-agent':
|
|
1893
|
+
'Mozilla/5.0 (Linux; Android 14; SM-A556B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
1894
|
+
'user-agent-metadata':
|
|
1895
|
+
{'platform': 'Android', 'platformVersion': '14', 'architecture': '', 'model': 'SM-A556B', 'mobile': true},
|
|
1896
|
+
'type': 'phone',
|
|
1897
|
+
},
|
|
1898
|
+
{
|
|
1899
|
+
'order': 45,
|
|
1900
|
+
'show-by-default': true,
|
|
1901
|
+
'foldable-screen': true,
|
|
1902
|
+
'title': 'Pixel 9 Pro Fold',
|
|
1903
|
+
'screen': {
|
|
1904
|
+
'horizontal': {'width': 922, 'height': 412},
|
|
1905
|
+
'device-pixel-ratio': 2.625,
|
|
1906
|
+
'vertical': {'width': 412, 'height': 922},
|
|
1907
|
+
'vertical-spanned': {
|
|
1908
|
+
'width': 836,
|
|
1909
|
+
'height': 842,
|
|
1910
|
+
'hinge': {
|
|
1911
|
+
'width': 0,
|
|
1912
|
+
'height': 842,
|
|
1913
|
+
'x': 418,
|
|
1914
|
+
'y': 0,
|
|
1915
|
+
'contentColor': {'r': 38, 'g': 38, 'b': 38, 'a': 0.2},
|
|
1916
|
+
'outlineColor': {'r': 38, 'g': 38, 'b': 38, 'a': 0.7},
|
|
1917
|
+
},
|
|
1918
|
+
},
|
|
1919
|
+
'horizontal-spanned': {
|
|
1920
|
+
'width': 842,
|
|
1921
|
+
'height': 836,
|
|
1922
|
+
'hinge': {
|
|
1923
|
+
'width': 842,
|
|
1924
|
+
'height': 0,
|
|
1925
|
+
'x': 0,
|
|
1926
|
+
'y': 418,
|
|
1927
|
+
'contentColor': {'r': 38, 'g': 38, 'b': 38, 'a': 0.2},
|
|
1928
|
+
'outlineColor': {'r': 38, 'g': 38, 'b': 38, 'a': 0.7},
|
|
1929
|
+
},
|
|
1930
|
+
},
|
|
1931
|
+
},
|
|
1932
|
+
'capabilities': ['touch', 'mobile'],
|
|
1933
|
+
'user-agent':
|
|
1934
|
+
'Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro Fold) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
1935
|
+
'user-agent-metadata': {
|
|
1936
|
+
'platform': 'Android',
|
|
1937
|
+
'platformVersion': '14',
|
|
1938
|
+
'architecture': '',
|
|
1939
|
+
'model': 'Pixel 9 Pro Fold',
|
|
1940
|
+
'mobile': true,
|
|
1941
|
+
},
|
|
1942
|
+
'type': 'phone',
|
|
1943
|
+
'modes': [
|
|
1944
|
+
{'title': 'default', 'orientation': 'vertical', 'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0}},
|
|
1945
|
+
{'title': 'default', 'orientation': 'horizontal', 'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0}},
|
|
1946
|
+
{'title': 'spanned', 'orientation': 'vertical-spanned', 'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0}},
|
|
1947
|
+
{
|
|
1948
|
+
'title': 'spanned',
|
|
1949
|
+
'orientation': 'horizontal-spanned',
|
|
1950
|
+
'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0},
|
|
1951
|
+
},
|
|
1952
|
+
],
|
|
1953
|
+
},
|
|
1858
1954
|
{
|
|
1859
1955
|
'order': 46,
|
|
1860
1956
|
'show-by-default': true,
|
|
1861
1957
|
'foldable-screen': true,
|
|
1958
|
+
'title': 'Galaxy Z Fold 6',
|
|
1959
|
+
'screen': {
|
|
1960
|
+
'horizontal': {'width': 968, 'height': 412},
|
|
1961
|
+
'device-pixel-ratio': 2.625,
|
|
1962
|
+
'vertical': {'width': 412, 'height': 968},
|
|
1963
|
+
'vertical-spanned': {
|
|
1964
|
+
'width': 744,
|
|
1965
|
+
'height': 860,
|
|
1966
|
+
'hinge': {
|
|
1967
|
+
'width': 0,
|
|
1968
|
+
'height': 860,
|
|
1969
|
+
'x': 372,
|
|
1970
|
+
'y': 0,
|
|
1971
|
+
'contentColor': {'r': 38, 'g': 38, 'b': 38, 'a': 0.2},
|
|
1972
|
+
'outlineColor': {'r': 38, 'g': 38, 'b': 38, 'a': 0.7},
|
|
1973
|
+
},
|
|
1974
|
+
},
|
|
1975
|
+
'horizontal-spanned': {
|
|
1976
|
+
'width': 860,
|
|
1977
|
+
'height': 744,
|
|
1978
|
+
'hinge': {
|
|
1979
|
+
'width': 860,
|
|
1980
|
+
'height': 0,
|
|
1981
|
+
'x': 0,
|
|
1982
|
+
'y': 372,
|
|
1983
|
+
'contentColor': {'r': 38, 'g': 38, 'b': 38, 'a': 0.2},
|
|
1984
|
+
'outlineColor': {'r': 38, 'g': 38, 'b': 38, 'a': 0.7},
|
|
1985
|
+
},
|
|
1986
|
+
},
|
|
1987
|
+
},
|
|
1988
|
+
'capabilities': ['touch', 'mobile'],
|
|
1989
|
+
'user-agent':
|
|
1990
|
+
'Mozilla/5.0 (Linux; Android 14; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
1991
|
+
'user-agent-metadata':
|
|
1992
|
+
{'platform': 'Android', 'platformVersion': '14', 'architecture': '', 'model': 'SM-F956U', 'mobile': true},
|
|
1993
|
+
'type': 'phone',
|
|
1994
|
+
'modes': [
|
|
1995
|
+
{'title': 'default', 'orientation': 'vertical', 'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0}},
|
|
1996
|
+
{'title': 'default', 'orientation': 'horizontal', 'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0}},
|
|
1997
|
+
{'title': 'spanned', 'orientation': 'vertical-spanned', 'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0}},
|
|
1998
|
+
{
|
|
1999
|
+
'title': 'spanned',
|
|
2000
|
+
'orientation': 'horizontal-spanned',
|
|
2001
|
+
'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0},
|
|
2002
|
+
},
|
|
2003
|
+
],
|
|
2004
|
+
},
|
|
2005
|
+
{
|
|
2006
|
+
'order': 46,
|
|
2007
|
+
'show-by-default': false,
|
|
2008
|
+
'foldable-screen': true,
|
|
1862
2009
|
'title': 'Galaxy Z Fold 5',
|
|
1863
2010
|
'screen': {
|
|
1864
2011
|
'horizontal': {'width': 882, 'height': 344},
|
|
@@ -1908,7 +2055,7 @@ const emulatedDevices = [
|
|
|
1908
2055
|
},
|
|
1909
2056
|
{
|
|
1910
2057
|
'order': 47,
|
|
1911
|
-
'show-by-default':
|
|
2058
|
+
'show-by-default': false,
|
|
1912
2059
|
'foldable-screen': true,
|
|
1913
2060
|
'title': 'Asus Zenbook Fold',
|
|
1914
2061
|
'screen': {
|
|
@@ -1963,7 +2110,7 @@ const emulatedDevices = [
|
|
|
1963
2110
|
},
|
|
1964
2111
|
{
|
|
1965
2112
|
'order': 48,
|
|
1966
|
-
'show-by-default':
|
|
2113
|
+
'show-by-default': false,
|
|
1967
2114
|
'title': 'Samsung Galaxy A51/71',
|
|
1968
2115
|
'screen': {
|
|
1969
2116
|
'horizontal': {
|
|
@@ -2005,741 +2152,47 @@ const emulatedDevices = [
|
|
|
2005
2152
|
'capabilities': ['touch', 'mobile'],
|
|
2006
2153
|
'user-agent':
|
|
2007
2154
|
'Mozilla/5.0 (X11; Linux aarch64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 CrKey/1.54.250320',
|
|
2008
|
-
'type': '
|
|
2009
|
-
'modes': [{'title': 'default', 'orientation': 'horizontal'}],
|
|
2010
|
-
},
|
|
2011
|
-
{
|
|
2012
|
-
'order': 50,
|
|
2013
|
-
'show-by-default': true,
|
|
2014
|
-
'title': 'Nest Hub',
|
|
2015
|
-
'screen': {
|
|
2016
|
-
'horizontal': {
|
|
2017
|
-
'outline': {
|
|
2018
|
-
'image': '@url(optimized/google-nest-hub-horizontal.avif)',
|
|
2019
|
-
'insets': {'left': 82, 'top': 74, 'right': 83, 'bottom': 222},
|
|
2020
|
-
},
|
|
2021
|
-
'width': 1024,
|
|
2022
|
-
'height': 600,
|
|
2023
|
-
},
|
|
2024
|
-
'device-pixel-ratio': 2,
|
|
2025
|
-
'vertical': {
|
|
2026
|
-
'width': 1024,
|
|
2027
|
-
'height': 600,
|
|
2028
|
-
},
|
|
2029
|
-
},
|
|
2030
|
-
'capabilities': ['touch', 'mobile'],
|
|
2031
|
-
'user-agent':
|
|
2032
|
-
'Mozilla/5.0 (Linux; Android) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 CrKey/1.54.248666',
|
|
2033
|
-
'user-agent-metadata':
|
|
2034
|
-
{'platform': 'Android', 'platformVersion': '', 'architecture': '', 'model': '', 'mobile': false},
|
|
2035
|
-
'type': 'tablet',
|
|
2155
|
+
'type': 'smart-display',
|
|
2036
2156
|
'modes': [{'title': 'default', 'orientation': 'horizontal'}],
|
|
2037
2157
|
},
|
|
2038
2158
|
|
|
2039
2159
|
{
|
|
2040
|
-
'order': 129,
|
|
2041
2160
|
'show-by-default': false,
|
|
2042
|
-
'title': '
|
|
2161
|
+
'title': 'Galaxy Tab S4',
|
|
2043
2162
|
'screen': {
|
|
2044
|
-
'horizontal': {'width':
|
|
2045
|
-
'device-pixel-ratio': 2,
|
|
2046
|
-
'vertical': {'width':
|
|
2163
|
+
'horizontal': {'width': 1138, 'height': 712},
|
|
2164
|
+
'device-pixel-ratio': 2.25,
|
|
2165
|
+
'vertical': {'width': 712, 'height': 1138},
|
|
2047
2166
|
},
|
|
2048
2167
|
'capabilities': ['touch', 'mobile'],
|
|
2049
2168
|
'user-agent':
|
|
2050
|
-
'Mozilla/5.0 (
|
|
2169
|
+
'Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36',
|
|
2051
2170
|
'user-agent-metadata':
|
|
2052
|
-
{'platform': '
|
|
2171
|
+
{'platform': 'Android', 'platformVersion': '8.1.0', 'architecture': '', 'model': 'SM-T837A', 'mobile': false},
|
|
2053
2172
|
'type': 'phone',
|
|
2054
2173
|
},
|
|
2055
2174
|
{
|
|
2056
|
-
'order':
|
|
2175
|
+
'order': 1,
|
|
2057
2176
|
'show-by-default': false,
|
|
2058
|
-
'title': '
|
|
2177
|
+
'title': 'JioPhone 2',
|
|
2059
2178
|
'screen': {
|
|
2060
|
-
'horizontal': {
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
'insets': {'left': 115, 'top': 25, 'right': 115, 'bottom': 28},
|
|
2064
|
-
},
|
|
2065
|
-
'width': 568,
|
|
2066
|
-
'height': 320,
|
|
2067
|
-
},
|
|
2068
|
-
'device-pixel-ratio': 2,
|
|
2069
|
-
'vertical': {
|
|
2070
|
-
'outline': {
|
|
2071
|
-
'image': '@url(optimized/iPhone5-portrait.avif)',
|
|
2072
|
-
'insets': {'left': 29, 'top': 105, 'right': 25, 'bottom': 111},
|
|
2073
|
-
},
|
|
2074
|
-
'width': 320,
|
|
2075
|
-
'height': 568,
|
|
2076
|
-
},
|
|
2179
|
+
'horizontal': {'width': 320, 'height': 240},
|
|
2180
|
+
'device-pixel-ratio': 1,
|
|
2181
|
+
'vertical': {'width': 240, 'height': 320},
|
|
2077
2182
|
},
|
|
2078
2183
|
'capabilities': ['touch', 'mobile'],
|
|
2079
2184
|
'user-agent':
|
|
2080
|
-
'Mozilla/5.0 (
|
|
2081
|
-
'user-agent-metadata':
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
'title': 'iPhone 6/7/8',
|
|
2089
|
-
'screen': {
|
|
2090
|
-
'horizontal': {
|
|
2091
|
-
'outline': {
|
|
2092
|
-
'image': '@url(optimized/iPhone6-landscape.avif)',
|
|
2093
|
-
'insets': {'left': 106, 'top': 28, 'right': 106, 'bottom': 28},
|
|
2094
|
-
},
|
|
2095
|
-
'width': 667,
|
|
2096
|
-
'height': 375,
|
|
2097
|
-
},
|
|
2098
|
-
'device-pixel-ratio': 2,
|
|
2099
|
-
'vertical': {
|
|
2100
|
-
'outline': {
|
|
2101
|
-
'image': '@url(optimized/iPhone6-portrait.avif)',
|
|
2102
|
-
'insets': {'left': 28, 'top': 105, 'right': 28, 'bottom': 105},
|
|
2103
|
-
},
|
|
2104
|
-
'width': 375,
|
|
2105
|
-
'height': 667,
|
|
2106
|
-
},
|
|
2107
|
-
},
|
|
2108
|
-
'capabilities': ['touch', 'mobile'],
|
|
2109
|
-
'user-agent':
|
|
2110
|
-
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
|
|
2111
|
-
'user-agent-metadata':
|
|
2112
|
-
{'platform': 'iOS', 'platformVersion': '13.2.3', 'architecture': '', 'model': 'iPhone', 'mobile': true},
|
|
2113
|
-
'type': 'phone',
|
|
2114
|
-
},
|
|
2115
|
-
{
|
|
2116
|
-
'order': 132,
|
|
2117
|
-
'show-by-default': false,
|
|
2118
|
-
'title': 'iPhone 6/7/8 Plus',
|
|
2119
|
-
'screen': {
|
|
2120
|
-
'horizontal': {
|
|
2121
|
-
'outline': {
|
|
2122
|
-
'image': '@url(optimized/iPhone6Plus-landscape.avif)',
|
|
2123
|
-
'insets': {'left': 109, 'top': 29, 'right': 109, 'bottom': 27},
|
|
2124
|
-
},
|
|
2125
|
-
'width': 736,
|
|
2126
|
-
'height': 414,
|
|
2127
|
-
},
|
|
2128
|
-
'device-pixel-ratio': 3,
|
|
2129
|
-
'vertical': {
|
|
2130
|
-
'outline': {
|
|
2131
|
-
'image': '@url(optimized/iPhone6Plus-portrait.avif)',
|
|
2132
|
-
'insets': {'left': 26, 'top': 107, 'right': 30, 'bottom': 111},
|
|
2133
|
-
},
|
|
2134
|
-
'width': 414,
|
|
2135
|
-
'height': 736,
|
|
2136
|
-
},
|
|
2137
|
-
},
|
|
2138
|
-
'capabilities': ['touch', 'mobile'],
|
|
2139
|
-
'user-agent':
|
|
2140
|
-
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
|
|
2141
|
-
'user-agent-metadata':
|
|
2142
|
-
{'platform': 'iOS', 'platformVersion': '13.2.3', 'architecture': '', 'model': 'iPhone', 'mobile': true},
|
|
2143
|
-
'type': 'phone',
|
|
2144
|
-
},
|
|
2145
|
-
{
|
|
2146
|
-
'order': 133,
|
|
2147
|
-
'show-by-default': false,
|
|
2148
|
-
'title': 'iPhone X',
|
|
2149
|
-
'screen': {
|
|
2150
|
-
'horizontal': {'width': 812, 'height': 375},
|
|
2151
|
-
'device-pixel-ratio': 3,
|
|
2152
|
-
'vertical': {'width': 375, 'height': 812},
|
|
2153
|
-
},
|
|
2154
|
-
'capabilities': ['touch', 'mobile'],
|
|
2155
|
-
'user-agent':
|
|
2156
|
-
'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
|
|
2157
|
-
'user-agent-metadata':
|
|
2158
|
-
{'platform': 'iOS', 'platformVersion': '13.2.3', 'architecture': '', 'model': 'iPhone', 'mobile': true},
|
|
2159
|
-
'type': 'phone',
|
|
2160
|
-
'modes': [
|
|
2161
|
-
{
|
|
2162
|
-
'title': 'default',
|
|
2163
|
-
'orientation': 'vertical',
|
|
2164
|
-
'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0},
|
|
2165
|
-
'safe-area-insets': {'left': 0, 'top': 44, 'right': 0, 'bottom': 34},
|
|
2166
|
-
'cutout':
|
|
2167
|
-
{'shape': 'notch', 'x': 85, 'y': 0, 'width': 204, 'height': 30, 'upper-radius': 8, 'lower-radius': 19},
|
|
2168
|
-
},
|
|
2169
|
-
{
|
|
2170
|
-
'title': 'default',
|
|
2171
|
-
'orientation': 'horizontal',
|
|
2172
|
-
'insets': {'left': 0, 'top': 0, 'right': 0, 'bottom': 0},
|
|
2173
|
-
'safe-area-insets': {'left': 44, 'top': 0, 'right': 44, 'bottom': 21},
|
|
2174
|
-
},
|
|
2175
|
-
],
|
|
2176
|
-
},
|
|
2177
|
-
{
|
|
2178
|
-
'show-by-default': false,
|
|
2179
|
-
'title': 'BlackBerry Z30',
|
|
2180
|
-
'screen': {
|
|
2181
|
-
'horizontal': {'width': 640, 'height': 360},
|
|
2182
|
-
'device-pixel-ratio': 2,
|
|
2183
|
-
'vertical': {'width': 360, 'height': 640},
|
|
2184
|
-
},
|
|
2185
|
-
'capabilities': ['touch', 'mobile'],
|
|
2186
|
-
'user-agent':
|
|
2187
|
-
'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+',
|
|
2188
|
-
'type': 'phone',
|
|
2189
|
-
},
|
|
2190
|
-
{
|
|
2191
|
-
'show-by-default': false,
|
|
2192
|
-
'title': 'Nexus 4',
|
|
2193
|
-
'screen': {
|
|
2194
|
-
'horizontal': {'width': 640, 'height': 384},
|
|
2195
|
-
'device-pixel-ratio': 2,
|
|
2196
|
-
'vertical': {'width': 384, 'height': 640},
|
|
2197
|
-
},
|
|
2198
|
-
'capabilities': ['touch', 'mobile'],
|
|
2199
|
-
'user-agent':
|
|
2200
|
-
'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2201
|
-
'user-agent-metadata':
|
|
2202
|
-
{'platform': 'Android', 'platformVersion': '4.4.2', 'architecture': '', 'model': 'Nexus 4', 'mobile': true},
|
|
2203
|
-
'type': 'phone',
|
|
2204
|
-
},
|
|
2205
|
-
{
|
|
2206
|
-
'title': 'Nexus 5',
|
|
2207
|
-
'type': 'phone',
|
|
2208
|
-
'user-agent':
|
|
2209
|
-
'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2210
|
-
'user-agent-metadata':
|
|
2211
|
-
{'platform': 'Android', 'platformVersion': '6.0', 'architecture': '', 'model': 'Nexus 5', 'mobile': true},
|
|
2212
|
-
'capabilities': ['touch', 'mobile'],
|
|
2213
|
-
'show-by-default': false,
|
|
2214
|
-
'screen': {
|
|
2215
|
-
'device-pixel-ratio': 3,
|
|
2216
|
-
'vertical': {'width': 360, 'height': 640},
|
|
2217
|
-
'horizontal': {'width': 640, 'height': 360},
|
|
2218
|
-
},
|
|
2219
|
-
'modes': [
|
|
2220
|
-
{
|
|
2221
|
-
'title': 'default',
|
|
2222
|
-
'orientation': 'vertical',
|
|
2223
|
-
'insets': {'left': 0, 'top': 25, 'right': 0, 'bottom': 48},
|
|
2224
|
-
'image':
|
|
2225
|
-
'@url(optimized/google-nexus-5-vertical-default-1x.avif) 1x, @url(optimized/google-nexus-5-vertical-default-2x.avif) 2x',
|
|
2226
|
-
},
|
|
2227
|
-
{
|
|
2228
|
-
'title': 'navigation bar',
|
|
2229
|
-
'orientation': 'vertical',
|
|
2230
|
-
'insets': {'left': 0, 'top': 80, 'right': 0, 'bottom': 48},
|
|
2231
|
-
'image':
|
|
2232
|
-
'@url(optimized/google-nexus-5-vertical-navigation-1x.avif) 1x, @url(optimized/google-nexus-5-vertical-navigation-2x.avif) 2x',
|
|
2233
|
-
},
|
|
2234
|
-
{
|
|
2235
|
-
'title': 'keyboard',
|
|
2236
|
-
'orientation': 'vertical',
|
|
2237
|
-
'insets': {'left': 0, 'top': 80, 'right': 0, 'bottom': 312},
|
|
2238
|
-
'image':
|
|
2239
|
-
'@url(optimized/google-nexus-5-vertical-keyboard-1x.avif) 1x, @url(optimized/google-nexus-5-vertical-keyboard-2x.avif) 2x',
|
|
2240
|
-
},
|
|
2241
|
-
{
|
|
2242
|
-
'title': 'default',
|
|
2243
|
-
'orientation': 'horizontal',
|
|
2244
|
-
'insets': {'left': 0, 'top': 25, 'right': 42, 'bottom': 0},
|
|
2245
|
-
'image':
|
|
2246
|
-
'@url(optimized/google-nexus-5-horizontal-default-1x.avif) 1x, @url(optimized/google-nexus-5-horizontal-default-2x.avif) 2x',
|
|
2247
|
-
},
|
|
2248
|
-
{
|
|
2249
|
-
'title': 'navigation bar',
|
|
2250
|
-
'orientation': 'horizontal',
|
|
2251
|
-
'insets': {'left': 0, 'top': 80, 'right': 42, 'bottom': 0},
|
|
2252
|
-
'image':
|
|
2253
|
-
'@url(optimized/google-nexus-5-horizontal-navigation-1x.avif) 1x, @url(optimized/google-nexus-5-horizontal-navigation-2x.avif) 2x',
|
|
2254
|
-
},
|
|
2255
|
-
{
|
|
2256
|
-
'title': 'keyboard',
|
|
2257
|
-
'orientation': 'horizontal',
|
|
2258
|
-
'insets': {'left': 0, 'top': 80, 'right': 42, 'bottom': 202},
|
|
2259
|
-
'image':
|
|
2260
|
-
'@url(optimized/google-nexus-5-horizontal-keyboard-1x.avif) 1x, @url(optimized/google-nexus-5-horizontal-keyboard-2x.avif) 2x',
|
|
2261
|
-
},
|
|
2262
|
-
],
|
|
2263
|
-
},
|
|
2264
|
-
{
|
|
2265
|
-
'title': 'Nexus 5X',
|
|
2266
|
-
'type': 'phone',
|
|
2267
|
-
'user-agent':
|
|
2268
|
-
'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2269
|
-
'user-agent-metadata':
|
|
2270
|
-
{'platform': 'Android', 'platformVersion': '8.0.0', 'architecture': '', 'model': 'Nexus 5X', 'mobile': true},
|
|
2271
|
-
'capabilities': ['touch', 'mobile'],
|
|
2272
|
-
'show-by-default': false,
|
|
2273
|
-
'screen': {
|
|
2274
|
-
'device-pixel-ratio': 2.625,
|
|
2275
|
-
'vertical': {
|
|
2276
|
-
'outline': {
|
|
2277
|
-
'image': '@url(optimized/Nexus5X-portrait.avif)',
|
|
2278
|
-
'insets': {'left': 18, 'top': 88, 'right': 22, 'bottom': 98},
|
|
2279
|
-
},
|
|
2280
|
-
'width': 412,
|
|
2281
|
-
'height': 732,
|
|
2282
|
-
},
|
|
2283
|
-
'horizontal': {
|
|
2284
|
-
'outline': {
|
|
2285
|
-
'image': '@url(optimized/Nexus5X-landscape.avif)',
|
|
2286
|
-
'insets': {'left': 88, 'top': 21, 'right': 98, 'bottom': 19},
|
|
2287
|
-
},
|
|
2288
|
-
'width': 732,
|
|
2289
|
-
'height': 412,
|
|
2290
|
-
},
|
|
2291
|
-
},
|
|
2292
|
-
'modes': [
|
|
2293
|
-
{
|
|
2294
|
-
'title': 'default',
|
|
2295
|
-
'orientation': 'vertical',
|
|
2296
|
-
'insets': {'left': 0, 'top': 24, 'right': 0, 'bottom': 48},
|
|
2297
|
-
'image':
|
|
2298
|
-
'@url(optimized/google-nexus-5x-vertical-default-1x.avif) 1x, @url(optimized/google-nexus-5x-vertical-default-2x.avif) 2x',
|
|
2299
|
-
},
|
|
2300
|
-
{
|
|
2301
|
-
'title': 'navigation bar',
|
|
2302
|
-
'orientation': 'vertical',
|
|
2303
|
-
'insets': {'left': 0, 'top': 80, 'right': 0, 'bottom': 48},
|
|
2304
|
-
'image':
|
|
2305
|
-
'@url(optimized/google-nexus-5x-vertical-navigation-1x.avif) 1x, @url(optimized/google-nexus-5x-vertical-navigation-2x.avif) 2x',
|
|
2306
|
-
},
|
|
2307
|
-
{
|
|
2308
|
-
'title': 'keyboard',
|
|
2309
|
-
'orientation': 'vertical',
|
|
2310
|
-
'insets': {'left': 0, 'top': 80, 'right': 0, 'bottom': 342},
|
|
2311
|
-
'image':
|
|
2312
|
-
'@url(optimized/google-nexus-5x-vertical-keyboard-1x.avif) 1x, @url(optimized/google-nexus-5x-vertical-keyboard-2x.avif) 2x',
|
|
2313
|
-
},
|
|
2314
|
-
{
|
|
2315
|
-
'title': 'default',
|
|
2316
|
-
'orientation': 'horizontal',
|
|
2317
|
-
'insets': {'left': 0, 'top': 24, 'right': 48, 'bottom': 0},
|
|
2318
|
-
'image':
|
|
2319
|
-
'@url(optimized/google-nexus-5x-horizontal-default-1x.avif) 1x, @url(optimized/google-nexus-5x-horizontal-default-2x.avif) 2x',
|
|
2320
|
-
},
|
|
2321
|
-
{
|
|
2322
|
-
'title': 'navigation bar',
|
|
2323
|
-
'orientation': 'horizontal',
|
|
2324
|
-
'insets': {'left': 0, 'top': 80, 'right': 48, 'bottom': 0},
|
|
2325
|
-
'image':
|
|
2326
|
-
'@url(optimized/google-nexus-5x-horizontal-navigation-1x.avif) 1x, @url(optimized/google-nexus-5x-horizontal-navigation-2x.avif) 2x',
|
|
2327
|
-
},
|
|
2328
|
-
{
|
|
2329
|
-
'title': 'keyboard',
|
|
2330
|
-
'orientation': 'horizontal',
|
|
2331
|
-
'insets': {'left': 0, 'top': 80, 'right': 48, 'bottom': 222},
|
|
2332
|
-
'image':
|
|
2333
|
-
'@url(optimized/google-nexus-5x-horizontal-keyboard-1x.avif) 1x, @url(optimized/google-nexus-5x-horizontal-keyboard-2x.avif) 2x',
|
|
2334
|
-
},
|
|
2335
|
-
],
|
|
2336
|
-
},
|
|
2337
|
-
{
|
|
2338
|
-
'show-by-default': false,
|
|
2339
|
-
'title': 'Nexus 6',
|
|
2340
|
-
'screen': {
|
|
2341
|
-
'horizontal': {'width': 732, 'height': 412},
|
|
2342
|
-
'device-pixel-ratio': 3.5,
|
|
2343
|
-
'vertical': {'width': 412, 'height': 732},
|
|
2344
|
-
},
|
|
2345
|
-
'capabilities': ['touch', 'mobile'],
|
|
2346
|
-
'user-agent':
|
|
2347
|
-
'Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2348
|
-
'user-agent-metadata':
|
|
2349
|
-
{'platform': 'Android', 'platformVersion': '7.1.1', 'architecture': '', 'model': 'Nexus 6', 'mobile': true},
|
|
2350
|
-
'type': 'phone',
|
|
2351
|
-
},
|
|
2352
|
-
{
|
|
2353
|
-
'show-by-default': false,
|
|
2354
|
-
'title': 'Nexus 6P',
|
|
2355
|
-
'screen': {
|
|
2356
|
-
'horizontal': {
|
|
2357
|
-
'outline': {
|
|
2358
|
-
'image': '@url(optimized/Nexus6P-landscape.avif)',
|
|
2359
|
-
'insets': {'left': 94, 'top': 17, 'right': 88, 'bottom': 17},
|
|
2360
|
-
},
|
|
2361
|
-
'width': 732,
|
|
2362
|
-
'height': 412,
|
|
2363
|
-
},
|
|
2364
|
-
'device-pixel-ratio': 3.5,
|
|
2365
|
-
'vertical': {
|
|
2366
|
-
'outline': {
|
|
2367
|
-
'image': '@url(optimized/Nexus6P-portrait.avif)',
|
|
2368
|
-
'insets': {'left': 16, 'top': 94, 'right': 16, 'bottom': 88},
|
|
2369
|
-
},
|
|
2370
|
-
'width': 412,
|
|
2371
|
-
'height': 732,
|
|
2372
|
-
},
|
|
2373
|
-
},
|
|
2374
|
-
'capabilities': ['touch', 'mobile'],
|
|
2375
|
-
'user-agent':
|
|
2376
|
-
'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2377
|
-
'user-agent-metadata':
|
|
2378
|
-
{'platform': 'Android', 'platformVersion': '8.0.0', 'architecture': '', 'model': 'Nexus 6P', 'mobile': true},
|
|
2379
|
-
'type': 'phone',
|
|
2380
|
-
},
|
|
2381
|
-
{
|
|
2382
|
-
'order': 120,
|
|
2383
|
-
'show-by-default': false,
|
|
2384
|
-
'title': 'Pixel 2',
|
|
2385
|
-
'screen': {
|
|
2386
|
-
'horizontal': {'width': 731, 'height': 411},
|
|
2387
|
-
'device-pixel-ratio': 2.625,
|
|
2388
|
-
'vertical': {'width': 411, 'height': 731},
|
|
2389
|
-
},
|
|
2390
|
-
'capabilities': ['touch', 'mobile'],
|
|
2391
|
-
'user-agent':
|
|
2392
|
-
'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2393
|
-
'user-agent-metadata':
|
|
2394
|
-
{'platform': 'Android', 'platformVersion': '8.0', 'architecture': '', 'model': 'Pixel 2', 'mobile': true},
|
|
2395
|
-
'type': 'phone',
|
|
2396
|
-
},
|
|
2397
|
-
{
|
|
2398
|
-
'order': 121,
|
|
2399
|
-
'show-by-default': false,
|
|
2400
|
-
'title': 'Pixel 2 XL',
|
|
2401
|
-
'screen': {
|
|
2402
|
-
'horizontal': {'width': 823, 'height': 411},
|
|
2403
|
-
'device-pixel-ratio': 3.5,
|
|
2404
|
-
'vertical': {'width': 411, 'height': 823},
|
|
2405
|
-
},
|
|
2406
|
-
'capabilities': ['touch', 'mobile'],
|
|
2407
|
-
'user-agent':
|
|
2408
|
-
'Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2409
|
-
'user-agent-metadata':
|
|
2410
|
-
{'platform': 'Android', 'platformVersion': '8.0.0', 'architecture': '', 'model': 'Pixel 2 XL', 'mobile': true},
|
|
2411
|
-
'type': 'phone',
|
|
2412
|
-
},
|
|
2413
|
-
{
|
|
2414
|
-
'show-by-default': false,
|
|
2415
|
-
'title': 'Pixel 3',
|
|
2416
|
-
'screen': {
|
|
2417
|
-
'horizontal': {'width': 786, 'height': 393},
|
|
2418
|
-
'device-pixel-ratio': 2.75,
|
|
2419
|
-
'vertical': {'width': 393, 'height': 786},
|
|
2420
|
-
},
|
|
2421
|
-
'capabilities': ['touch', 'mobile'],
|
|
2422
|
-
'user-agent':
|
|
2423
|
-
'Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2424
|
-
'user-agent-metadata':
|
|
2425
|
-
{'platform': 'Android', 'platformVersion': '9', 'architecture': '', 'model': 'Pixel 3', 'mobile': true},
|
|
2426
|
-
'type': 'phone',
|
|
2427
|
-
},
|
|
2428
|
-
{
|
|
2429
|
-
'show-by-default': false,
|
|
2430
|
-
'title': 'Pixel 4',
|
|
2431
|
-
'screen': {
|
|
2432
|
-
'horizontal': {'width': 745, 'height': 353},
|
|
2433
|
-
'device-pixel-ratio': 3,
|
|
2434
|
-
'vertical': {'width': 353, 'height': 745},
|
|
2435
|
-
},
|
|
2436
|
-
'capabilities': ['touch', 'mobile'],
|
|
2437
|
-
'user-agent':
|
|
2438
|
-
'Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2439
|
-
'user-agent-metadata':
|
|
2440
|
-
{'platform': 'Android', 'platformVersion': '10', 'architecture': '', 'model': 'Pixel 4', 'mobile': true},
|
|
2441
|
-
'type': 'phone',
|
|
2442
|
-
},
|
|
2443
|
-
{
|
|
2444
|
-
'show-by-default': false,
|
|
2445
|
-
'title': 'LG Optimus L70',
|
|
2446
|
-
'screen': {
|
|
2447
|
-
'horizontal': {'width': 640, 'height': 384},
|
|
2448
|
-
'device-pixel-ratio': 1.25,
|
|
2449
|
-
'vertical': {'width': 384, 'height': 640},
|
|
2450
|
-
},
|
|
2451
|
-
'capabilities': ['touch', 'mobile'],
|
|
2452
|
-
'user-agent':
|
|
2453
|
-
'Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/%s Mobile Safari/537.36',
|
|
2454
|
-
'user-agent-metadata':
|
|
2455
|
-
{'platform': 'Android', 'platformVersion': '4.4.2', 'architecture': '', 'model': 'LGMS323', 'mobile': true},
|
|
2456
|
-
'type': 'phone',
|
|
2457
|
-
},
|
|
2458
|
-
{
|
|
2459
|
-
'show-by-default': false,
|
|
2460
|
-
'title': 'Nokia N9',
|
|
2461
|
-
'screen': {
|
|
2462
|
-
'horizontal': {'width': 854, 'height': 480},
|
|
2463
|
-
'device-pixel-ratio': 1,
|
|
2464
|
-
'vertical': {'width': 480, 'height': 854},
|
|
2465
|
-
},
|
|
2466
|
-
'capabilities': ['touch', 'mobile'],
|
|
2467
|
-
'user-agent':
|
|
2468
|
-
'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13',
|
|
2469
|
-
'type': 'phone',
|
|
2470
|
-
},
|
|
2471
|
-
{
|
|
2472
|
-
'show-by-default': false,
|
|
2473
|
-
'title': 'Nokia Lumia 520',
|
|
2474
|
-
'screen': {
|
|
2475
|
-
'horizontal': {'width': 533, 'height': 320},
|
|
2476
|
-
'device-pixel-ratio': 1.5,
|
|
2477
|
-
'vertical': {'width': 320, 'height': 533},
|
|
2478
|
-
},
|
|
2479
|
-
'capabilities': ['touch', 'mobile'],
|
|
2480
|
-
'user-agent':
|
|
2481
|
-
'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)',
|
|
2482
|
-
'type': 'phone',
|
|
2483
|
-
},
|
|
2484
|
-
{
|
|
2485
|
-
'show-by-default': false,
|
|
2486
|
-
'title': 'Microsoft Lumia 550',
|
|
2487
|
-
'screen': {
|
|
2488
|
-
'horizontal': {'width': 640, 'height': 360},
|
|
2489
|
-
'device-pixel-ratio': 2,
|
|
2490
|
-
'vertical': {'width': 640, 'height': 360},
|
|
2491
|
-
},
|
|
2492
|
-
'capabilities': ['touch', 'mobile'],
|
|
2493
|
-
'user-agent':
|
|
2494
|
-
'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36 Edge/14.14263',
|
|
2495
|
-
'user-agent-metadata':
|
|
2496
|
-
{'platform': 'Android', 'platformVersion': '4.2.1', 'architecture': '', 'model': 'Lumia 550', 'mobile': true},
|
|
2497
|
-
'type': 'phone',
|
|
2498
|
-
},
|
|
2499
|
-
{
|
|
2500
|
-
'show-by-default': false,
|
|
2501
|
-
'title': 'Microsoft Lumia 950',
|
|
2502
|
-
'screen': {
|
|
2503
|
-
'horizontal': {'width': 640, 'height': 360},
|
|
2504
|
-
'device-pixel-ratio': 4,
|
|
2505
|
-
'vertical': {'width': 360, 'height': 640},
|
|
2506
|
-
},
|
|
2507
|
-
'capabilities': ['touch', 'mobile'],
|
|
2508
|
-
'user-agent':
|
|
2509
|
-
'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36 Edge/14.14263',
|
|
2510
|
-
'user-agent-metadata':
|
|
2511
|
-
{'platform': 'Android', 'platformVersion': '4.2.1', 'architecture': '', 'model': 'Lumia 950', 'mobile': true},
|
|
2512
|
-
'type': 'phone',
|
|
2513
|
-
},
|
|
2514
|
-
{
|
|
2515
|
-
'show-by-default': false,
|
|
2516
|
-
'title': 'Galaxy S III',
|
|
2517
|
-
'screen': {
|
|
2518
|
-
'horizontal': {'width': 640, 'height': 360},
|
|
2519
|
-
'device-pixel-ratio': 2,
|
|
2520
|
-
'vertical': {'width': 360, 'height': 640},
|
|
2521
|
-
},
|
|
2522
|
-
'capabilities': ['touch', 'mobile'],
|
|
2523
|
-
'user-agent':
|
|
2524
|
-
'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
|
|
2525
|
-
'user-agent-metadata':
|
|
2526
|
-
{'platform': 'Android', 'platformVersion': '4.0', 'architecture': '', 'model': 'GT-I9300', 'mobile': true},
|
|
2527
|
-
'type': 'phone',
|
|
2528
|
-
},
|
|
2529
|
-
{
|
|
2530
|
-
'order': 110,
|
|
2531
|
-
'show-by-default': false,
|
|
2532
|
-
'title': 'Galaxy S5',
|
|
2533
|
-
'screen': {
|
|
2534
|
-
'horizontal': {'width': 640, 'height': 360},
|
|
2535
|
-
'device-pixel-ratio': 3,
|
|
2536
|
-
'vertical': {'width': 360, 'height': 640},
|
|
2537
|
-
},
|
|
2538
|
-
'capabilities': ['touch', 'mobile'],
|
|
2539
|
-
'user-agent':
|
|
2540
|
-
'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2541
|
-
'user-agent-metadata':
|
|
2542
|
-
{'platform': 'Android', 'platformVersion': '5.0', 'architecture': '', 'model': 'SM-G900P', 'mobile': true},
|
|
2543
|
-
'type': 'phone',
|
|
2544
|
-
},
|
|
2545
|
-
{
|
|
2546
|
-
'show-by-default': false,
|
|
2547
|
-
'title': 'Galaxy S8',
|
|
2548
|
-
'screen': {
|
|
2549
|
-
'horizontal': {'width': 740, 'height': 360},
|
|
2550
|
-
'device-pixel-ratio': 3,
|
|
2551
|
-
'vertical': {'width': 360, 'height': 740},
|
|
2552
|
-
},
|
|
2553
|
-
'capabilities': ['touch', 'mobile'],
|
|
2554
|
-
'user-agent':
|
|
2555
|
-
'Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2556
|
-
'user-agent-metadata':
|
|
2557
|
-
{'platform': 'Android', 'platformVersion': '7.0', 'architecture': '', 'model': 'SM-G950U', 'mobile': true},
|
|
2558
|
-
'type': 'phone',
|
|
2559
|
-
},
|
|
2560
|
-
{
|
|
2561
|
-
'show-by-default': false,
|
|
2562
|
-
'title': 'Galaxy S9+',
|
|
2563
|
-
'screen': {
|
|
2564
|
-
'horizontal': {'width': 658, 'height': 320},
|
|
2565
|
-
'device-pixel-ratio': 4.5,
|
|
2566
|
-
'vertical': {'width': 320, 'height': 658},
|
|
2567
|
-
},
|
|
2568
|
-
'capabilities': ['touch', 'mobile'],
|
|
2569
|
-
'user-agent':
|
|
2570
|
-
'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36',
|
|
2571
|
-
'user-agent-metadata':
|
|
2572
|
-
{'platform': 'Android', 'platformVersion': '8.0.0', 'architecture': '', 'model': 'SM-G965U', 'mobile': true},
|
|
2573
|
-
'type': 'phone',
|
|
2574
|
-
},
|
|
2575
|
-
{
|
|
2576
|
-
'show-by-default': false,
|
|
2577
|
-
'title': 'Galaxy Tab S4',
|
|
2578
|
-
'screen': {
|
|
2579
|
-
'horizontal': {'width': 1138, 'height': 712},
|
|
2580
|
-
'device-pixel-ratio': 2.25,
|
|
2581
|
-
'vertical': {'width': 712, 'height': 1138},
|
|
2582
|
-
},
|
|
2583
|
-
'capabilities': ['touch', 'mobile'],
|
|
2584
|
-
'user-agent':
|
|
2585
|
-
'Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36',
|
|
2586
|
-
'user-agent-metadata':
|
|
2587
|
-
{'platform': 'Android', 'platformVersion': '8.1.0', 'architecture': '', 'model': 'SM-T837A', 'mobile': false},
|
|
2588
|
-
'type': 'phone',
|
|
2589
|
-
},
|
|
2590
|
-
{
|
|
2591
|
-
'order': 1,
|
|
2592
|
-
'show-by-default': false,
|
|
2593
|
-
'title': 'JioPhone 2',
|
|
2594
|
-
'screen': {
|
|
2595
|
-
'horizontal': {'width': 320, 'height': 240},
|
|
2596
|
-
'device-pixel-ratio': 1,
|
|
2597
|
-
'vertical': {'width': 240, 'height': 320},
|
|
2598
|
-
},
|
|
2599
|
-
'capabilities': ['touch', 'mobile'],
|
|
2600
|
-
'user-agent':
|
|
2601
|
-
'Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5',
|
|
2602
|
-
'user-agent-metadata': {
|
|
2603
|
-
'platform': 'Android',
|
|
2604
|
-
'platformVersion': '',
|
|
2605
|
-
'architecture': '',
|
|
2606
|
-
'model': 'LYF/F300B/LYF-F300B-001-01-15-130718-i',
|
|
2607
|
-
'mobile': true,
|
|
2608
|
-
},
|
|
2609
|
-
'type': 'phone',
|
|
2610
|
-
},
|
|
2611
|
-
{
|
|
2612
|
-
'show-by-default': false,
|
|
2613
|
-
'title': 'Kindle Fire HDX',
|
|
2614
|
-
'screen': {
|
|
2615
|
-
'horizontal': {'width': 1280, 'height': 800},
|
|
2616
|
-
'device-pixel-ratio': 2,
|
|
2617
|
-
'vertical': {'width': 800, 'height': 1280},
|
|
2618
|
-
},
|
|
2619
|
-
'capabilities': ['touch', 'mobile'],
|
|
2620
|
-
'user-agent':
|
|
2621
|
-
'Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true',
|
|
2622
|
-
'type': 'tablet',
|
|
2623
|
-
},
|
|
2624
|
-
{
|
|
2625
|
-
'order': 140,
|
|
2626
|
-
'show-by-default': false,
|
|
2627
|
-
'title': 'iPad',
|
|
2628
|
-
'screen': {
|
|
2629
|
-
'horizontal': {
|
|
2630
|
-
'outline': {
|
|
2631
|
-
'image': '@url(optimized/iPad-landscape.avif)',
|
|
2632
|
-
'insets': {'left': 112, 'top': 56, 'right': 116, 'bottom': 52},
|
|
2633
|
-
},
|
|
2634
|
-
'width': 1024,
|
|
2635
|
-
'height': 768,
|
|
2636
|
-
},
|
|
2637
|
-
'device-pixel-ratio': 2,
|
|
2638
|
-
'vertical': {
|
|
2639
|
-
'outline': {
|
|
2640
|
-
'image': '@url(optimized/iPad-portrait.avif)',
|
|
2641
|
-
'insets': {'left': 52, 'top': 114, 'right': 55, 'bottom': 114},
|
|
2642
|
-
},
|
|
2643
|
-
'width': 768,
|
|
2644
|
-
'height': 1024,
|
|
2645
|
-
},
|
|
2646
|
-
},
|
|
2647
|
-
'capabilities': ['touch', 'mobile'],
|
|
2648
|
-
'user-agent':
|
|
2649
|
-
'Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1',
|
|
2650
|
-
'user-agent-metadata':
|
|
2651
|
-
{'platform': 'iOS', 'platformVersion': '11.0', 'architecture': '', 'model': 'iPad', 'mobile': true},
|
|
2652
|
-
'type': 'tablet',
|
|
2653
|
-
},
|
|
2654
|
-
{
|
|
2655
|
-
'order': 141,
|
|
2656
|
-
'show-by-default': false,
|
|
2657
|
-
'title': 'iPad Pro',
|
|
2658
|
-
'screen': {
|
|
2659
|
-
'horizontal': {'width': 1366, 'height': 1024},
|
|
2660
|
-
'device-pixel-ratio': 2,
|
|
2661
|
-
'vertical': {'width': 1024, 'height': 1366},
|
|
2662
|
-
},
|
|
2663
|
-
'capabilities': ['touch', 'mobile'],
|
|
2664
|
-
'user-agent':
|
|
2665
|
-
'Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1',
|
|
2666
|
-
'user-agent-metadata':
|
|
2667
|
-
{'platform': 'iOS', 'platformVersion': '11.0', 'architecture': '', 'model': 'iPad', 'mobile': true},
|
|
2668
|
-
'type': 'tablet',
|
|
2669
|
-
},
|
|
2670
|
-
{
|
|
2671
|
-
'show-by-default': false,
|
|
2672
|
-
'title': 'Blackberry PlayBook',
|
|
2673
|
-
'screen': {
|
|
2674
|
-
'horizontal': {'width': 1024, 'height': 600},
|
|
2675
|
-
'device-pixel-ratio': 1,
|
|
2676
|
-
'vertical': {'width': 600, 'height': 1024},
|
|
2677
|
-
},
|
|
2678
|
-
'capabilities': ['touch', 'mobile'],
|
|
2679
|
-
'user-agent':
|
|
2680
|
-
'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+',
|
|
2681
|
-
'type': 'tablet',
|
|
2682
|
-
},
|
|
2683
|
-
{
|
|
2684
|
-
'show-by-default': false,
|
|
2685
|
-
'title': 'Nexus 10',
|
|
2686
|
-
'screen': {
|
|
2687
|
-
'horizontal': {'width': 1280, 'height': 800},
|
|
2688
|
-
'device-pixel-ratio': 2,
|
|
2689
|
-
'vertical': {'width': 800, 'height': 1280},
|
|
2690
|
-
},
|
|
2691
|
-
'capabilities': ['touch', 'mobile'],
|
|
2692
|
-
'user-agent':
|
|
2693
|
-
'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36',
|
|
2694
|
-
'user-agent-metadata':
|
|
2695
|
-
{'platform': 'Android', 'platformVersion': '6.0.1', 'architecture': '', 'model': 'Nexus 10', 'mobile': false},
|
|
2696
|
-
'type': 'tablet',
|
|
2697
|
-
},
|
|
2698
|
-
{
|
|
2699
|
-
'show-by-default': false,
|
|
2700
|
-
'title': 'Nexus 7',
|
|
2701
|
-
'screen': {
|
|
2702
|
-
'horizontal': {'width': 960, 'height': 600},
|
|
2703
|
-
'device-pixel-ratio': 2,
|
|
2704
|
-
'vertical': {'width': 600, 'height': 960},
|
|
2705
|
-
},
|
|
2706
|
-
'capabilities': ['touch', 'mobile'],
|
|
2707
|
-
'user-agent':
|
|
2708
|
-
'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36',
|
|
2709
|
-
'user-agent-metadata':
|
|
2710
|
-
{'platform': 'Android', 'platformVersion': '6.0.1', 'architecture': '', 'model': 'Nexus 7', 'mobile': false},
|
|
2711
|
-
'type': 'tablet',
|
|
2712
|
-
},
|
|
2713
|
-
{
|
|
2714
|
-
'show-by-default': false,
|
|
2715
|
-
'title': 'Galaxy Note 3',
|
|
2716
|
-
'screen': {
|
|
2717
|
-
'horizontal': {'width': 640, 'height': 360},
|
|
2718
|
-
'device-pixel-ratio': 3,
|
|
2719
|
-
'vertical': {'width': 360, 'height': 640},
|
|
2720
|
-
},
|
|
2721
|
-
'capabilities': ['touch', 'mobile'],
|
|
2722
|
-
'user-agent':
|
|
2723
|
-
'Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
|
|
2724
|
-
'user-agent-metadata':
|
|
2725
|
-
{'platform': 'Android', 'platformVersion': '4.3', 'architecture': '', 'model': 'SM-N900T', 'mobile': true},
|
|
2726
|
-
'type': 'phone',
|
|
2727
|
-
},
|
|
2728
|
-
{
|
|
2729
|
-
'show-by-default': false,
|
|
2730
|
-
'title': 'Galaxy Note II',
|
|
2731
|
-
'screen': {
|
|
2732
|
-
'horizontal': {'width': 640, 'height': 360},
|
|
2733
|
-
'device-pixel-ratio': 2,
|
|
2734
|
-
'vertical': {'width': 360, 'height': 640},
|
|
2735
|
-
},
|
|
2736
|
-
'capabilities': ['touch', 'mobile'],
|
|
2737
|
-
'user-agent':
|
|
2738
|
-
'Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30',
|
|
2739
|
-
'user-agent-metadata':
|
|
2740
|
-
{'platform': 'Android', 'platformVersion': '4.1', 'architecture': '', 'model': 'GT-N7100', 'mobile': true},
|
|
2185
|
+
'Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5',
|
|
2186
|
+
'user-agent-metadata': {
|
|
2187
|
+
'platform': 'Android',
|
|
2188
|
+
'platformVersion': '',
|
|
2189
|
+
'architecture': '',
|
|
2190
|
+
'model': 'LYF/F300B/LYF-F300B-001-01-15-130718-i',
|
|
2191
|
+
'mobile': true,
|
|
2192
|
+
},
|
|
2741
2193
|
'type': 'phone',
|
|
2742
2194
|
},
|
|
2195
|
+
|
|
2743
2196
|
{
|
|
2744
2197
|
'show-by-default': false,
|
|
2745
2198
|
/* DEVICE-LIST-IF-JS */
|