chrome-devtools-frontend 1.0.1657855 → 1.0.1661063
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/evaluate-ai-css-completion/SKILL.md +133 -0
- package/.agents/skills/evaluate-ai-css-completion/scripts/evaluate.js +76 -0
- package/.agents/skills/migrate-chromium-test/SKILL.md +15 -70
- package/.agents/skills/ui-eng-vision-orchestrator/SKILL.md +37 -18
- package/.agents/skills/version-control/SKILL.md +8 -1
- package/AUTHORS +1 -0
- package/SECURITY.md +3 -0
- package/docs/get_the_code.md +6 -0
- package/eslint.config.mjs +7 -0
- package/extension-api/ExtensionAPI.d.ts +88 -0
- package/front_end/Tests.js +6 -6
- package/front_end/core/common/Gzip.ts +12 -5
- package/front_end/core/host/AidaClient.ts +35 -9
- package/front_end/core/host/GdpClient.ts +10 -7
- package/front_end/core/host/InspectorFrontendHost.ts +1 -0
- package/front_end/core/host/InspectorFrontendHostStub.ts +2 -0
- package/front_end/core/platform/StringUtilities.ts +55 -4
- package/front_end/core/sdk/AccessibilityModel.snapshot.txt +17 -0
- package/front_end/core/sdk/AccessibilityModel.ts +132 -2
- package/front_end/core/sdk/CPUThrottlingManager.ts +10 -5
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +2 -5
- package/front_end/core/sdk/ConsoleModel.ts +5 -5
- package/front_end/core/sdk/DOMDebuggerModel.ts +7 -1
- package/front_end/core/sdk/DOMModel.ts +33 -18
- package/front_end/core/sdk/DebuggerModel.ts +4 -4
- package/front_end/core/sdk/EventBreakpointsModel.ts +2 -0
- package/front_end/core/sdk/FrameManager.ts +1 -0
- package/front_end/core/sdk/IsolateManager.ts +1 -0
- package/front_end/core/sdk/NetworkManager.ts +59 -11
- package/front_end/core/sdk/NetworkRequest.ts +38 -1
- package/front_end/core/sdk/OverlayModel.ts +45 -6
- package/front_end/core/sdk/PageResourceLoader.ts +2 -0
- package/front_end/core/sdk/ResourceTreeModel.ts +6 -7
- package/front_end/core/sdk/ScreenCaptureModel.ts +2 -2
- package/front_end/core/sdk/ServerTiming.ts +17 -13
- package/front_end/core/sdk/ServiceWorkerCacheModel.ts +4 -2
- package/front_end/core/sdk/ServiceWorkerManager.ts +19 -5
- package/front_end/core/sdk/SourceMap.ts +5 -5
- package/front_end/core/sdk/SourceMapManager.ts +3 -2
- package/front_end/core/sdk/TargetManager.ts +14 -1
- package/front_end/core/sdk/TraceObject.ts +4 -2
- package/front_end/core/sdk/sdk-meta.ts +170 -0
- package/front_end/design_system_tokens.css +0 -5
- package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +5 -2
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +26 -4
- package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +8 -3
- package/front_end/entrypoints/inspector_main/InspectorMain.ts +4 -4
- package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +2 -2
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +36 -37
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +15 -33
- package/front_end/entrypoints/js_app/js_app.ts +6 -5
- package/front_end/entrypoints/main/GlobalAiButton.ts +4 -4
- package/front_end/entrypoints/main/MainImpl.ts +20 -22
- package/front_end/entrypoints/main/main-meta.ts +42 -42
- package/front_end/entrypoints/node_app/node_app.ts +3 -2
- package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
- package/front_end/foundation/Universe.ts +44 -1
- package/front_end/generated/InspectorBackendCommands.ts +2 -2
- package/front_end/generated/SupportedCSSProperties.js +19 -12
- package/front_end/generated/protocol.ts +3 -1
- package/front_end/models/ai_assistance/AiConversation.ts +19 -17
- package/front_end/models/ai_assistance/AiHistoryStorage.ts +37 -14
- package/front_end/models/ai_assistance/AiUtils.ts +38 -42
- package/front_end/models/ai_assistance/agents/AiAgent.ts +5 -1
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +3 -2
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +2 -1
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +7 -5
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +270 -286
- package/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts +20 -0
- package/front_end/models/ai_assistance/performance/AICallTree.ts +3 -1
- package/front_end/models/ai_assistance/tools/ListNetworkRequests.ts +3 -2
- package/front_end/models/autofill_manager/AutofillManager.ts +3 -1
- package/front_end/models/bindings/CompilerScriptMapping.ts +7 -7
- package/front_end/models/bindings/ContentProviderBasedProject.ts +4 -4
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +5 -5
- package/front_end/models/bindings/DefaultScriptMapping.ts +3 -3
- package/front_end/models/bindings/NetworkProject.ts +5 -10
- package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +2 -1
- package/front_end/models/bindings/ResourceMapping.ts +3 -4
- package/front_end/models/bindings/ResourceScriptMapping.ts +2 -3
- package/front_end/models/bindings/ResourceUtils.ts +1 -1
- package/front_end/models/bindings/SASSSourceMapping.ts +11 -9
- package/front_end/models/bindings/StylesSourceMapping.ts +3 -3
- package/front_end/models/bindings/TempFile.ts +8 -3
- package/front_end/models/emulation/EmulatedDevices.ts +389 -8
- package/front_end/models/extensions/ExtensionAPI.ts +116 -52
- package/front_end/models/extensions/LanguageExtensionEndpoint.ts +13 -12
- package/front_end/models/formatter/ScriptFormatter.ts +8 -11
- package/front_end/models/issues_manager/BounceTrackingIssue.ts +1 -1
- package/front_end/models/issues_manager/ClientHintIssue.ts +1 -1
- package/front_end/models/issues_manager/ConnectionAllowlistIssue.ts +1 -1
- package/front_end/models/issues_manager/ContentSecurityPolicyIssue.ts +7 -7
- package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +2 -2
- package/front_end/models/issues_manager/CookieIssue.ts +27 -16
- package/front_end/models/issues_manager/CorsIssue.ts +3 -3
- package/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.ts +2 -2
- package/front_end/models/issues_manager/DeprecationIssue.ts +3 -3
- package/front_end/models/issues_manager/EmailVerificationRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/FederatedAuthRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.ts +1 -1
- package/front_end/models/issues_manager/GenericIssue.ts +7 -7
- package/front_end/models/issues_manager/HeavyAdIssue.ts +3 -3
- package/front_end/models/issues_manager/Issue.ts +11 -12
- package/front_end/models/issues_manager/IssueAggregator.ts +0 -9
- package/front_end/models/issues_manager/IssueResolver.ts +2 -2
- package/front_end/models/issues_manager/IssuesManager.ts +136 -137
- package/front_end/models/issues_manager/MixedContentIssue.ts +1 -1
- package/front_end/models/issues_manager/PartitioningBlobURLIssue.ts +3 -3
- package/front_end/models/issues_manager/QuirksModeIssue.ts +1 -1
- package/front_end/models/issues_manager/SRIMessageSignatureIssue.ts +2 -2
- package/front_end/models/issues_manager/SelectivePermissionsInterventionIssue.ts +2 -2
- package/front_end/models/issues_manager/SharedArrayBufferIssue.ts +2 -2
- package/front_end/models/issues_manager/SharedDictionaryIssue.ts +1 -1
- package/front_end/models/issues_manager/UnencodedDigestIssue.ts +3 -3
- package/front_end/models/issues_manager/issues_manager.ts +0 -2
- package/front_end/models/javascript_metadata/NativeFunctions.js +5 -1
- package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +5 -0
- package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +13 -10
- package/front_end/models/stack_trace/StackTraceModel.ts +3 -3
- package/front_end/models/text_utils/ContentData.ts +27 -0
- package/front_end/models/trace/helpers/SamplesIntegrator.ts +21 -5
- package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +29 -14
- package/front_end/models/web_mcp/WebMCPModel.ts +24 -6
- package/front_end/models/workspace/IgnoreListManager.ts +6 -6
- package/front_end/models/workspace/UISourceCode.ts +3 -3
- package/front_end/models/workspace/WorkspaceImpl.ts +10 -1
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +10 -4
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +25 -22
- package/front_end/panels/ai_assistance/ExportConversation.ts +3 -4
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +3 -3
- package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +9 -1
- package/front_end/panels/ai_assistance/components/DisabledWidget.ts +2 -2
- package/front_end/panels/animation/AnimationTimeline.ts +17 -19
- package/front_end/panels/animation/AnimationUI.ts +5 -5
- package/front_end/panels/animation/animation-meta.ts +2 -2
- package/front_end/panels/application/ApplicationPanelSidebar.ts +4 -3
- package/front_end/panels/application/DeviceBoundSessionsView.ts +2 -6
- package/front_end/panels/application/FrameDetailsView.ts +1 -1
- package/front_end/panels/application/IndexedDBViews.ts +220 -266
- package/front_end/panels/application/OpenedWindowDetailsView.ts +1 -1
- package/front_end/panels/application/ResourcesPanel.ts +9 -2
- package/front_end/panels/application/ServiceWorkersView.ts +252 -211
- package/front_end/panels/application/StorageView.ts +97 -33
- package/front_end/panels/application/WebMCPView.ts +53 -44
- package/front_end/panels/application/components/AdsView.ts +201 -30
- package/front_end/panels/application/components/adsView.css +25 -0
- package/front_end/panels/application/indexedDBViews.css +38 -9
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +2 -2
- package/front_end/panels/application/preloading/helper/PreloadingForward.ts +2 -1
- package/front_end/panels/application/storageView.css +26 -9
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +5 -1
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +8 -6
- package/front_end/panels/common/DOMLinkifier.ts +1 -1
- package/front_end/panels/common/ExtensionServer.ts +119 -14
- package/front_end/panels/console/ConsoleContextSelector.ts +1 -1
- package/front_end/panels/console/ConsolePinPane.ts +2 -2
- package/front_end/panels/console/ConsolePrompt.ts +2 -2
- package/front_end/panels/console/ConsoleView.ts +3 -2
- package/front_end/panels/console/PromptBuilder.ts +2 -1
- package/front_end/panels/console/SymbolizedErrorWidget.ts +2 -1
- package/front_end/panels/console_counters/WarningErrorCounter.ts +2 -2
- package/front_end/panels/coverage/CoverageListView.ts +28 -28
- package/front_end/panels/coverage/CoverageModel.ts +2 -1
- package/front_end/panels/coverage/CoverageView.ts +22 -22
- package/front_end/panels/coverage/coverage-meta.ts +5 -5
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +36 -36
- package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +1 -1
- package/front_end/panels/css_overview/CSSOverviewSidebarPanel.ts +2 -2
- package/front_end/panels/css_overview/CSSOverviewStartView.ts +6 -6
- package/front_end/panels/css_overview/CSSOverviewUnusedDeclarations.ts +6 -6
- package/front_end/panels/css_overview/css_overview-meta.ts +2 -2
- package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
- package/front_end/panels/elements/AccessibilityTreeUtils.ts +8 -102
- package/front_end/panels/elements/AccessibilityTreeView.ts +163 -70
- package/front_end/panels/elements/ElementsPanel.ts +17 -11
- package/front_end/panels/elements/ElementsTreeElement.ts +4 -1
- package/front_end/panels/elements/ElementsTreeOutline.ts +4 -4
- package/front_end/panels/elements/LayoutPane.ts +1 -1
- package/front_end/panels/elements/MetricsSidebarPane.ts +100 -34
- package/front_end/panels/elements/StylePropertiesSection.ts +2 -2
- package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -2
- package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
- package/front_end/panels/elements/components/AccessibilityTreeNode.ts +7 -18
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +2 -2
- package/front_end/panels/elements/components/QueryContainer.ts +1 -1
- package/front_end/panels/emulation/DeviceModeView.ts +52 -70
- package/front_end/panels/issues/AffectedDirectivesView.ts +1 -1
- package/front_end/panels/issues/AffectedResourcesView.ts +2 -1
- package/front_end/panels/issues/IssueView.ts +0 -2
- package/front_end/panels/issues/IssuesPane.ts +1 -8
- package/front_end/panels/js_timeline/js_timeline-meta.ts +3 -2
- package/front_end/panels/layer_viewer/LayerViewHost.ts +1 -1
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +3 -3
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +5 -5
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +4 -4
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +6 -6
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +3 -3
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +8 -9
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
- package/front_end/panels/linear_memory_inspector/linear_memory_inspector-meta.ts +2 -2
- package/front_end/panels/network/NetworkDataGridNode.ts +124 -36
- package/front_end/panels/network/NetworkLogView.ts +9 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +18 -0
- package/front_end/panels/network/NetworkPanel.ts +2 -1
- package/front_end/panels/network/RequestPayloadView.ts +68 -20
- package/front_end/panels/network/RequestPreviewView.ts +7 -1
- package/front_end/panels/network/RequestTimingView.ts +95 -127
- package/front_end/panels/network/components/ResponseHeaderSection.ts +1 -1
- package/front_end/panels/network/forward/UIFilter.ts +1 -0
- package/front_end/panels/network/requestPayloadView.css +10 -0
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +12 -12
- package/front_end/panels/performance_monitor/performance_monitor-meta.ts +7 -7
- package/front_end/panels/profiler/HeapDetachedElementsView.ts +2 -2
- package/front_end/panels/profiler/HeapProfileView.ts +563 -51
- package/front_end/panels/profiler/HeapSnapshotView.ts +14 -9
- package/front_end/panels/profiler/ProfilesPanel.ts +13 -7
- package/front_end/panels/profiler/WritableProfileHeader.ts +152 -0
- package/front_end/panels/profiler/profiler.ts +2 -2
- package/front_end/panels/recorder/{components/ControlButton.ts → ControlButton.ts} +9 -10
- package/front_end/panels/recorder/{components/CreateRecordingView.ts → CreateRecordingView.ts} +59 -58
- package/front_end/panels/recorder/ExtensionView.ts +123 -0
- package/front_end/panels/recorder/RecorderController.ts +102 -92
- package/front_end/panels/recorder/{components/RecordingListView.ts → RecordingListView.ts} +22 -23
- package/front_end/panels/recorder/{components/RecordingView.ts → RecordingView.ts} +99 -96
- package/front_end/panels/recorder/{components/ReplaySection.ts → ReplaySection.ts} +20 -20
- package/front_end/panels/recorder/{components/SelectorPicker.ts → SelectorPicker.ts} +13 -13
- package/front_end/panels/recorder/{components/StepEditor.ts → StepEditor.ts} +367 -336
- package/front_end/panels/recorder/{components/StepView.ts → StepView.ts} +48 -49
- package/front_end/panels/recorder/{components/TimelineSection.ts → TimelineSection.ts} +2 -2
- package/front_end/panels/recorder/models/RecorderSettings.ts +2 -2
- package/front_end/panels/recorder/recorder-meta.ts +7 -7
- package/front_end/panels/recorder/recorder.ts +23 -1
- package/front_end/panels/recorder/{components/recordingView.css → recordingView.css} +1 -1
- package/front_end/panels/recorder/util/util.ts +113 -0
- package/front_end/panels/screencast/ScreencastApp.ts +1 -1
- package/front_end/panels/screencast/ScreencastView.ts +12 -12
- package/front_end/panels/search/SearchResultsPane.ts +4 -4
- package/front_end/panels/search/SearchView.ts +20 -20
- package/front_end/panels/security/SecurityModel.ts +7 -7
- package/front_end/panels/security/SecurityPanel.ts +99 -107
- package/front_end/panels/security/SecurityPanelSidebar.ts +7 -7
- package/front_end/panels/security/security-meta.ts +2 -2
- package/front_end/panels/sensors/LocationsSettingsTab.ts +19 -19
- package/front_end/panels/sensors/SensorsView.ts +27 -27
- package/front_end/panels/sensors/sensors-meta.ts +13 -167
- package/front_end/panels/settings/AISettingsTab.ts +98 -56
- package/front_end/panels/settings/EditFileSystemView.ts +2 -2
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +20 -20
- package/front_end/panels/settings/KeybindsSettingsTab.ts +20 -21
- package/front_end/panels/settings/SettingsScreen.ts +11 -11
- package/front_end/panels/settings/WorkspaceSettingsTab.ts +5 -5
- package/front_end/panels/settings/components/SyncSection.ts +12 -12
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +13 -13
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +31 -31
- package/front_end/panels/settings/emulation/emulation-meta.ts +1 -1
- package/front_end/panels/settings/settings-meta.ts +14 -14
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +2 -2
- package/front_end/panels/sources/NavigatorView.ts +7 -6
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +83 -37
- package/front_end/panels/sources/SourcesNavigator.ts +22 -21
- package/front_end/panels/sources/SourcesView.ts +10 -1
- package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
- package/front_end/panels/sources/scopeChainSidebarPane.css +12 -4
- package/front_end/panels/sources/sources-meta.ts +4 -4
- package/front_end/panels/timeline/CompatibilityTracksAppender.ts +5 -2
- package/front_end/panels/timeline/IsolateSelector.ts +10 -8
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +2 -1
- package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +2 -1
- package/front_end/panels/timeline/TimelineFlameChartView.ts +1 -1
- package/front_end/panels/timeline/TimelinePanel.ts +20 -8
- package/front_end/panels/timeline/TimelineUIUtils.ts +149 -131
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +4 -2
- package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +4 -2
- package/front_end/panels/timeline/components/insights/ImageRef.ts +2 -1
- package/front_end/panels/timeline/timeline-meta.ts +3 -2
- package/front_end/panels/utils/utils.ts +7 -3
- package/front_end/panels/web_audio/WebAudioView.ts +17 -18
- package/front_end/panels/web_audio/web_audio-meta.ts +3 -3
- package/front_end/panels/whats_new/ReleaseNoteView.ts +1 -1
- package/front_end/panels/whats_new/whats_new-meta.ts +11 -11
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/lit/lib/async-directive.d.ts +2 -1
- package/front_end/third_party/lit/lib/async-directive.js +1 -1
- package/front_end/third_party/lit/lib/async-directive.js.map +1 -1
- package/front_end/third_party/lit/lib/decorators.d.ts +2 -1
- package/front_end/third_party/lit/lib/decorators.js.map +1 -1
- package/front_end/third_party/lit/lib/directive.d.ts +2 -1
- package/front_end/third_party/lit/lib/directive.js.map +1 -1
- package/front_end/third_party/lit/lib/directives.d.ts +2 -1
- package/front_end/third_party/lit/lib/directives.js +8 -8
- package/front_end/third_party/lit/lib/directives.js.map +1 -1
- package/front_end/third_party/lit/lib/lit.d.ts +2 -1
- package/front_end/third_party/lit/lib/lit.js +1 -1
- package/front_end/third_party/lit/lib/lit.js.map +1 -1
- package/front_end/third_party/lit/lib/static-html.d.ts +2 -1
- package/front_end/third_party/lit/lib/static-html.js +1 -1
- package/front_end/third_party/lit/lib/static-html.js.map +1 -1
- package/front_end/third_party/lit/package.json +2 -2
- package/front_end/third_party/lit/rebuild.sh +1 -1
- package/front_end/third_party/lit/src/async-directive.ts +5 -0
- package/front_end/ui/components/dialogs/Dialog.ts +1 -1
- package/front_end/ui/components/dialogs/ShortcutDialog.ts +1 -1
- package/front_end/ui/components/diff_view/DiffView.ts +2 -2
- package/front_end/ui/components/issue_counter/IssueCounter.ts +3 -3
- package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +5 -5
- package/front_end/ui/components/lists/List.ts +2 -2
- package/front_end/ui/components/panel_feedback/PreviewToggle.ts +1 -1
- package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +5 -5
- package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
- package/front_end/ui/components/snackbars/Snackbar.ts +1 -1
- package/front_end/ui/components/survey_link/SurveyLink.ts +3 -3
- package/front_end/ui/components/text_editor/config.ts +2 -2
- package/front_end/ui/components/tree_outline/TreeOutline.ts +34 -1
- package/front_end/ui/legacy/ReportView.ts +5 -0
- package/front_end/ui/legacy/Treeoutline.ts +6 -0
- package/front_end/ui/legacy/View.ts +1 -1
- package/front_end/ui/legacy/Widget.ts +14 -15
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -0
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +8 -3
- package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -0
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +106 -38
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +7 -1
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +2 -1
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +4 -2
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +10 -1
- package/front_end/ui/legacy/inspectorCommon.css +5 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +3 -0
- package/mcp/mcp.ts +2 -0
- package/package.json +4 -4
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +0 -247
- package/front_end/models/issues_manager/descriptions/arInsecureContext.md +0 -7
- package/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +0 -4
- package/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +0 -18
- package/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +0 -19
- package/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +0 -8
- package/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +0 -9
- package/front_end/models/issues_manager/descriptions/arSourceIgnored.md +0 -13
- package/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +0 -12
- package/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +0 -10
- package/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +0 -11
- package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -182
- package/front_end/panels/profiler/ProfileView.ts +0 -611
- package/front_end/panels/recorder/components/ExtensionView.ts +0 -132
- package/front_end/panels/recorder/components/components.ts +0 -25
- package/front_end/panels/recorder/components/util.ts +0 -116
- /package/front_end/panels/recorder/{components/controlButton.css → controlButton.css} +0 -0
- /package/front_end/panels/recorder/{components/createRecordingView.css → createRecordingView.css} +0 -0
- /package/front_end/panels/recorder/{components/extensionView.css → extensionView.css} +0 -0
- /package/front_end/panels/recorder/{components/recordingListView.css → recordingListView.css} +0 -0
- /package/front_end/panels/recorder/{components/replaySection.css → replaySection.css} +0 -0
- /package/front_end/panels/recorder/{components/selectorPicker.css → selectorPicker.css} +0 -0
- /package/front_end/panels/recorder/{components/startView.css → startView.css} +0 -0
- /package/front_end/panels/recorder/{components/stepEditor.css → stepEditor.css} +0 -0
- /package/front_end/panels/recorder/{components/stepView.css → stepView.css} +0 -0
- /package/front_end/panels/recorder/{components/timelineSection.css → timelineSection.css} +0 -0
|
@@ -15,17 +15,17 @@ import {type LazyUint8Array, LinearMemoryInspectorController} from './LinearMemo
|
|
|
15
15
|
|
|
16
16
|
const UIStrings = {
|
|
17
17
|
/**
|
|
18
|
-
* @description Label in the
|
|
19
|
-
* Inspection
|
|
18
|
+
* @description Label in the Memory inspector panel that serves as a placeholder if no inspections are open (i.e., nothing to see here).
|
|
19
|
+
* Inspection here refers to viewing, navigating, and understanding the memory through this panel.
|
|
20
20
|
*/
|
|
21
21
|
noOpenInspections: 'No open inspections',
|
|
22
22
|
/**
|
|
23
|
-
* @description Label in the
|
|
24
|
-
* Inspection
|
|
23
|
+
* @description Label in the Memory inspector panel that serves as a placeholder if no inspections are open (i.e., nothing to see here).
|
|
24
|
+
* Inspection here refers to viewing, navigating, and understanding the memory through this panel.
|
|
25
25
|
*/
|
|
26
26
|
memoryInspectorExplanation: 'On this page you can inspect binary data.',
|
|
27
27
|
/**
|
|
28
|
-
* @description Label in the
|
|
28
|
+
* @description Label in the Memory inspector panel for a link.
|
|
29
29
|
*/
|
|
30
30
|
learnMore: 'Learn more',
|
|
31
31
|
} as const;
|
package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts
CHANGED
|
@@ -14,13 +14,13 @@ import type {HighlightInfo} from './LinearMemoryViewerUtils.js';
|
|
|
14
14
|
|
|
15
15
|
const UIStrings = {
|
|
16
16
|
/**
|
|
17
|
-
* @description Tooltip text that appears when hovering over an inspected variable's button in the
|
|
18
|
-
* Clicking the button changes the displayed slice of computer memory in the
|
|
17
|
+
* @description Tooltip text that appears when hovering over an inspected variable's button in the highlight chip list in the Memory inspector panel.
|
|
18
|
+
* Clicking the button changes the displayed slice of computer memory in the Memory inspector panel to contain the inspected variable's bytes.
|
|
19
19
|
*/
|
|
20
20
|
jumpToAddress: 'Jump to this memory',
|
|
21
21
|
/**
|
|
22
|
-
* @description Tooltip text that appears when hovering over an inspected variable's delete button in the
|
|
23
|
-
* Clicking the delete button stops highlighting the variable's memory in the
|
|
22
|
+
* @description Tooltip text that appears when hovering over an inspected variable's delete button in the highlight chip list in the Memory inspector panel.
|
|
23
|
+
* Clicking the delete button stops highlighting the variable's memory in the Memory inspector panel.
|
|
24
24
|
* 'Memory' is a slice of bytes in the computer memory.
|
|
25
25
|
*/
|
|
26
26
|
deleteHighlight: 'Stop highlighting this memory',
|
|
@@ -32,11 +32,11 @@ import {
|
|
|
32
32
|
|
|
33
33
|
const UIStrings = {
|
|
34
34
|
/**
|
|
35
|
-
* @description Tooltip text that appears when hovering over an invalid address in the address line in the
|
|
35
|
+
* @description Tooltip text that appears when hovering over an invalid address in the address line in the Memory inspector panel.
|
|
36
36
|
* @example {0x00000000} PH1
|
|
37
37
|
* @example {0x00400000} PH2
|
|
38
38
|
*/
|
|
39
|
-
addressHasToBeANumberBetweenSAnd: 'Address
|
|
39
|
+
addressHasToBeANumberBetweenSAnd: 'Address must be a number between {PH1} and {PH2}',
|
|
40
40
|
} as const;
|
|
41
41
|
const str_ =
|
|
42
42
|
i18n.i18n.registerUIStrings('panels/linear_memory_inspector/components/LinearMemoryInspector.ts', UIStrings);
|
|
@@ -14,27 +14,27 @@ import linearMemoryNavigatorStyles from './linearMemoryNavigator.css.js';
|
|
|
14
14
|
|
|
15
15
|
const UIStrings = {
|
|
16
16
|
/**
|
|
17
|
-
* @description Tooltip text that appears when hovering over a valid memory address (
|
|
17
|
+
* @description Tooltip text that appears when hovering over a valid memory address (for example, 0x0) in the address line in the Memory inspector panel.
|
|
18
18
|
*/
|
|
19
19
|
enterAddress: 'Enter address',
|
|
20
20
|
/**
|
|
21
|
-
* @description Tooltip text that appears when hovering over the button to go back in history in the
|
|
21
|
+
* @description Tooltip text that appears when hovering over the button to go back in history in the Memory inspector panel.
|
|
22
22
|
*/
|
|
23
23
|
goBackInAddressHistory: 'Go back in address history',
|
|
24
24
|
/**
|
|
25
|
-
* @description Tooltip text that appears when hovering over the button to go forward in history in the
|
|
25
|
+
* @description Tooltip text that appears when hovering over the button to go forward in history in the Memory inspector panel.
|
|
26
26
|
*/
|
|
27
27
|
goForwardInAddressHistory: 'Go forward in address history',
|
|
28
28
|
/**
|
|
29
|
-
* @description Tooltip text that appears when hovering over the page back icon in the
|
|
29
|
+
* @description Tooltip text that appears when hovering over the page back icon in the Memory inspector panel.
|
|
30
30
|
*/
|
|
31
31
|
previousPage: 'Previous page',
|
|
32
32
|
/**
|
|
33
|
-
* @description Tooltip text that appears when hovering over the next page icon in the
|
|
33
|
+
* @description Tooltip text that appears when hovering over the next page icon in the Memory inspector panel.
|
|
34
34
|
*/
|
|
35
35
|
nextPage: 'Next page',
|
|
36
36
|
/**
|
|
37
|
-
* @description
|
|
37
|
+
* @description Tooltip text that appears when hovering over the refresh button in the Memory inspector panel.
|
|
38
38
|
*/
|
|
39
39
|
refresh: 'Refresh',
|
|
40
40
|
} as const;
|
|
@@ -18,14 +18,14 @@ import {ValueInterpreterSettings} from './ValueInterpreterSettings.js';
|
|
|
18
18
|
|
|
19
19
|
const UIStrings = {
|
|
20
20
|
/**
|
|
21
|
-
* @description Tooltip text that appears when hovering over the gear button to open and close settings in the
|
|
21
|
+
* @description Tooltip text that appears when hovering over the gear button to open and close settings in the Memory inspector panel. These settings
|
|
22
22
|
* allow the user to change the value type to view, such as 32-bit Integer, or 32-bit Float.
|
|
23
23
|
*/
|
|
24
24
|
toggleValueTypeSettings: 'Toggle value type settings',
|
|
25
25
|
/**
|
|
26
|
-
* @description Tooltip text that appears when hovering over the
|
|
26
|
+
* @description Tooltip text that appears when hovering over the Little Endian or Big Endian setting in the Memory inspector panel.
|
|
27
27
|
*/
|
|
28
|
-
changeEndianness: 'Change
|
|
28
|
+
changeEndianness: 'Change endianness',
|
|
29
29
|
} as const;
|
|
30
30
|
const str_ =
|
|
31
31
|
i18n.i18n.registerUIStrings('panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts', UIStrings);
|
|
@@ -26,27 +26,26 @@ import {
|
|
|
26
26
|
|
|
27
27
|
const UIStrings = {
|
|
28
28
|
/**
|
|
29
|
-
* @description Tooltip text that appears when hovering over an unsigned interpretation of the memory
|
|
29
|
+
* @description Tooltip text that appears when hovering over an unsigned interpretation of the memory in the value interpreter in the Memory inspector panel.
|
|
30
30
|
*/
|
|
31
|
-
unsignedValue: '
|
|
31
|
+
unsignedValue: 'Unsigned value',
|
|
32
32
|
/**
|
|
33
|
-
* @description Tooltip text that appears when hovering over the element to change value type modes
|
|
34
|
-
* are different ways of viewing a certain value,
|
|
33
|
+
* @description Tooltip text that appears when hovering over the element to change value type modes in the value interpreter in the Memory inspector panel. Value type modes
|
|
34
|
+
* are different ways of viewing a certain value, for example: 10 (decimal) can be 0xa in hexadecimal mode, or 12 in octal mode.
|
|
35
35
|
*/
|
|
36
36
|
changeValueTypeMode: 'Change mode',
|
|
37
37
|
/**
|
|
38
|
-
* @description Tooltip text that appears when hovering over a signed interpretation of the memory
|
|
38
|
+
* @description Tooltip text that appears when hovering over a signed interpretation of the memory in the value interpreter in the Memory inspector panel.
|
|
39
39
|
*/
|
|
40
|
-
signedValue: '
|
|
40
|
+
signedValue: 'Signed value',
|
|
41
41
|
/**
|
|
42
|
-
* @description Tooltip text that appears when hovering over a
|
|
42
|
+
* @description Tooltip text that appears when hovering over a jump-to-address button that is next to a pointer (32-bit or 64-bit) in the value interpreter in the Memory inspector panel.
|
|
43
43
|
*/
|
|
44
44
|
jumpToPointer: 'Jump to address',
|
|
45
45
|
/**
|
|
46
|
-
* @description Tooltip text that appears when hovering over a
|
|
46
|
+
* @description Tooltip text that appears when hovering over a jump-to-address button that is next to a pointer (32-bit or 64-bit) with an invalid address in the value interpreter in the Memory inspector panel.
|
|
47
47
|
*/
|
|
48
48
|
addressOutOfRange: 'Address out of memory range',
|
|
49
|
-
|
|
50
49
|
} as const;
|
|
51
50
|
const str_ =
|
|
52
51
|
i18n.i18n.registerUIStrings('panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts', UIStrings);
|
|
@@ -7,8 +7,8 @@ import * as Platform from '../../../core/platform/platform.js';
|
|
|
7
7
|
|
|
8
8
|
const UIStrings = {
|
|
9
9
|
/**
|
|
10
|
-
* @description Text that is shown in the
|
|
11
|
-
* for the requested mode (
|
|
10
|
+
* @description Text that is shown in the Memory inspector panel if a value cannot be correctly formatted
|
|
11
|
+
* for the requested mode (for example, when a float cannot be represented as a hexadecimal number).
|
|
12
12
|
* Abbreviation stands for 'not applicable'.
|
|
13
13
|
*/
|
|
14
14
|
notApplicable: 'N/A',
|
|
@@ -15,7 +15,7 @@ const {render, html} = Lit;
|
|
|
15
15
|
|
|
16
16
|
const UIStrings = {
|
|
17
17
|
/**
|
|
18
|
-
* @description Name of a group of selectable value types that do not fall under integer and floating point value types,
|
|
18
|
+
* @description Name of a group of selectable value types that do not fall under integer and floating point value types (for example, Pointer32). The group name appears in the value interpreter settings in the Memory inspector panel.
|
|
19
19
|
*/
|
|
20
20
|
otherGroup: 'Other',
|
|
21
21
|
} as const;
|
|
@@ -12,11 +12,11 @@ import type * as LinearMemoryInspector from './linear_memory_inspector.js';
|
|
|
12
12
|
|
|
13
13
|
const UIStrings = {
|
|
14
14
|
/**
|
|
15
|
-
* @description Title of the
|
|
15
|
+
* @description Title of the Memory inspector panel.
|
|
16
16
|
*/
|
|
17
17
|
memoryInspector: 'Memory inspector',
|
|
18
18
|
/**
|
|
19
|
-
* @description Command for showing the
|
|
19
|
+
* @description Command for showing the Memory inspector panel.
|
|
20
20
|
*/
|
|
21
21
|
showMemoryInspector: 'Show Memory inspector',
|
|
22
22
|
} as const;
|
|
@@ -184,7 +184,7 @@ const UIStrings = {
|
|
|
184
184
|
/**
|
|
185
185
|
* @description Cell title in Network Data Grid Node of the Network panel
|
|
186
186
|
*/
|
|
187
|
-
earlyHints: '
|
|
187
|
+
earlyHints: 'Early-hints',
|
|
188
188
|
/**
|
|
189
189
|
* @description Text in Network Data Grid Node of the Network panel
|
|
190
190
|
*/
|
|
@@ -654,7 +654,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
654
654
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
655
655
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
656
656
|
if (!aRequest || !bRequest) {
|
|
657
|
-
return !aRequest ? -1 : 1;
|
|
657
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
658
658
|
}
|
|
659
659
|
const aRemoteAddress = aRequest.remoteAddress();
|
|
660
660
|
const bRemoteAddress = bRequest.remoteAddress();
|
|
@@ -672,7 +672,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
672
672
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
673
673
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
674
674
|
if (!aRequest || !bRequest) {
|
|
675
|
-
return !aRequest ? -1 : 1;
|
|
675
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
676
676
|
}
|
|
677
677
|
if (bRequest.cached() && !aRequest.cached()) {
|
|
678
678
|
return 1;
|
|
@@ -688,7 +688,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
688
688
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
689
689
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
690
690
|
if (!aRequest || !bRequest) {
|
|
691
|
-
return !aRequest ? -1 : 1;
|
|
691
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
692
692
|
}
|
|
693
693
|
|
|
694
694
|
const aRequestNumber = NetworkRequestNode.requestNumber(aRequest);
|
|
@@ -701,7 +701,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
701
701
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
702
702
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
703
703
|
if (!aRequest || !bRequest) {
|
|
704
|
-
return !aRequest ? -1 : 1;
|
|
704
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
705
705
|
}
|
|
706
706
|
const aSimpleType = a.displayType();
|
|
707
707
|
const bSimpleType = b.displayType();
|
|
@@ -720,7 +720,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
720
720
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
721
721
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
722
722
|
if (!aRequest || !bRequest) {
|
|
723
|
-
return !aRequest ? -1 : 1;
|
|
723
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
724
724
|
}
|
|
725
725
|
const aHasInitiatorCell = a instanceof NetworkRequestNode && a.initiatorCell;
|
|
726
726
|
const bHasInitiatorCell = b instanceof NetworkRequestNode && b.initiatorCell;
|
|
@@ -744,7 +744,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
744
744
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
745
745
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
746
746
|
if (!aRequest || !bRequest) {
|
|
747
|
-
return !aRequest ? -1 : 1;
|
|
747
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
748
748
|
}
|
|
749
749
|
const aClientSecurityState = aRequest.clientSecurityState();
|
|
750
750
|
const bClientSecurityState = bRequest.clientSecurityState();
|
|
@@ -758,7 +758,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
758
758
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
759
759
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
760
760
|
if (!aRequest || !bRequest) {
|
|
761
|
-
return !aRequest ? -1 : 1;
|
|
761
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
762
762
|
}
|
|
763
763
|
return aRequest.remoteAddressSpace().localeCompare(bRequest.remoteAddressSpace());
|
|
764
764
|
}
|
|
@@ -768,7 +768,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
768
768
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
769
769
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
770
770
|
if (!aRequest || !bRequest) {
|
|
771
|
-
return !aRequest ? -1 : 1;
|
|
771
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
772
772
|
}
|
|
773
773
|
const aScore = aRequest.includedRequestCookies().length;
|
|
774
774
|
const bScore = bRequest.includedRequestCookies().length;
|
|
@@ -781,7 +781,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
781
781
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
782
782
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
783
783
|
if (!aRequest || !bRequest) {
|
|
784
|
-
return !aRequest ? -1 : 1;
|
|
784
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
785
785
|
}
|
|
786
786
|
const aScore = aRequest.responseCookies ? aRequest.responseCookies.length : 0;
|
|
787
787
|
const bScore = bRequest.responseCookies ? bRequest.responseCookies.length : 0;
|
|
@@ -793,7 +793,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
793
793
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
794
794
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
795
795
|
if (!aRequest || !bRequest) {
|
|
796
|
-
return !aRequest ? -1 : 1;
|
|
796
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
797
797
|
}
|
|
798
798
|
const aPriority = aRequest.priority();
|
|
799
799
|
let aScore: number = aPriority ? PerfUI.NetworkPriorities.networkPriorityWeight(aPriority) : 0;
|
|
@@ -810,7 +810,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
810
810
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
811
811
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
812
812
|
if (!aRequest || !bRequest) {
|
|
813
|
-
return !aRequest ? -1 : 1;
|
|
813
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
814
814
|
}
|
|
815
815
|
const aIsAdRelated = aRequest.isAdRelated();
|
|
816
816
|
const bIsAdRelated = bRequest.isAdRelated();
|
|
@@ -823,12 +823,29 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
823
823
|
return aRequest.identityCompare(bRequest);
|
|
824
824
|
}
|
|
825
825
|
|
|
826
|
-
static
|
|
826
|
+
static IsPreloadedComparator(a: NetworkNode, b: NetworkNode): number {
|
|
827
827
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
828
828
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
829
|
+
if (!aRequest && !bRequest) {
|
|
830
|
+
return 0;
|
|
831
|
+
}
|
|
829
832
|
if (!aRequest || !bRequest) {
|
|
830
833
|
return !aRequest ? -1 : 1;
|
|
831
834
|
}
|
|
835
|
+
const aIsPreloaded = aRequest.isLinkPreload();
|
|
836
|
+
const bIsPreloaded = bRequest.isLinkPreload();
|
|
837
|
+
if (aIsPreloaded === bIsPreloaded) {
|
|
838
|
+
return aRequest.identityCompare(bRequest);
|
|
839
|
+
}
|
|
840
|
+
return aIsPreloaded ? 1 : -1;
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
static RenderBlockingComparator(a: NetworkNode, b: NetworkNode): number {
|
|
844
|
+
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
845
|
+
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
846
|
+
if (!aRequest || !bRequest) {
|
|
847
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
848
|
+
}
|
|
832
849
|
const order = [
|
|
833
850
|
Protocol.Network.RenderBlockingBehavior.InBodyParserBlocking,
|
|
834
851
|
Protocol.Network.RenderBlockingBehavior.Blocking,
|
|
@@ -842,6 +859,55 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
842
859
|
return aOrder - bOrder;
|
|
843
860
|
}
|
|
844
861
|
|
|
862
|
+
static ExecutionContextComparator(a: NetworkNode, b: NetworkNode): number {
|
|
863
|
+
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
864
|
+
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
865
|
+
if (!aRequest || !bRequest) {
|
|
866
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
867
|
+
}
|
|
868
|
+
const aContext = NetworkRequestNode.getExecutionContextDescription(aRequest);
|
|
869
|
+
const bContext = NetworkRequestNode.getExecutionContextDescription(bRequest);
|
|
870
|
+
return aContext.localeCompare(bContext);
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
static getExecutionContextDescription(request: SDK.NetworkRequest.NetworkRequest): string {
|
|
874
|
+
const requestTarget = SDK.NetworkManager.NetworkManager.forRequest(request)?.target();
|
|
875
|
+
|
|
876
|
+
if (requestTarget) {
|
|
877
|
+
const targetType = requestTarget.type();
|
|
878
|
+
if (targetType === SDK.Target.Type.ServiceWorker || targetType === SDK.Target.Type.Worker ||
|
|
879
|
+
targetType === SDK.Target.Type.SHARED_WORKER) {
|
|
880
|
+
const runtimeModel = requestTarget.model(SDK.RuntimeModel.RuntimeModel);
|
|
881
|
+
if (runtimeModel) {
|
|
882
|
+
const defaultContextLabel = runtimeModel.executionContexts().find(c => c.isDefault)?.label();
|
|
883
|
+
if (defaultContextLabel) {
|
|
884
|
+
return defaultContextLabel;
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
return requestTarget.name() || '';
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
const frame = SDK.ResourceTreeModel.ResourceTreeModel.frameForRequest(request);
|
|
892
|
+
if (!frame) {
|
|
893
|
+
return '';
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
if (requestTarget) {
|
|
897
|
+
const runtimeModel = requestTarget.model(SDK.RuntimeModel.RuntimeModel);
|
|
898
|
+
if (runtimeModel) {
|
|
899
|
+
const frameContextLabel = runtimeModel.executionContexts()
|
|
900
|
+
.find(context => context.frameId === request.frameId && context.isDefault)
|
|
901
|
+
?.label();
|
|
902
|
+
if (frameContextLabel) {
|
|
903
|
+
return frameContextLabel;
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
return frame.displayName();
|
|
909
|
+
}
|
|
910
|
+
|
|
845
911
|
static RequestPropertyComparator(propertyName: string, a: NetworkNode, b: NetworkNode): number {
|
|
846
912
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
|
|
847
913
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -850,7 +916,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
850
916
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
851
917
|
const bRequest = (b.requestOrFirstKnownChildRequest() as any);
|
|
852
918
|
if (!aRequest || !bRequest) {
|
|
853
|
-
return !aRequest ? -1 : 1;
|
|
919
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
854
920
|
}
|
|
855
921
|
const aValue = aRequest[propertyName];
|
|
856
922
|
const bValue = bRequest[propertyName];
|
|
@@ -864,7 +930,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
864
930
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
865
931
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
866
932
|
if (!aRequest || !bRequest) {
|
|
867
|
-
return !aRequest ? -1 : 1;
|
|
933
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
868
934
|
}
|
|
869
935
|
const aURL = aRequest.url();
|
|
870
936
|
const bURL = bRequest.url();
|
|
@@ -880,7 +946,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
880
946
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
881
947
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
882
948
|
if (!aRequest || !bRequest) {
|
|
883
|
-
return !aRequest ? -1 : 1;
|
|
949
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
884
950
|
}
|
|
885
951
|
// Use the provided callback to get the header value
|
|
886
952
|
const aValue = String(getHeaderValue(aRequest, propertyName) || '');
|
|
@@ -903,7 +969,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
903
969
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
904
970
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
905
971
|
if (!aRequest || !bRequest) {
|
|
906
|
-
return !aRequest ? -1 : 1;
|
|
972
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
907
973
|
}
|
|
908
974
|
const aRawValue = aRequest.responseHeaderValue(propertyName);
|
|
909
975
|
const aValue = (aRawValue !== undefined) ? parseFloat(aRawValue) : -Infinity;
|
|
@@ -920,7 +986,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
920
986
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
921
987
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
922
988
|
if (!aRequest || !bRequest) {
|
|
923
|
-
return !aRequest ? -1 : 1;
|
|
989
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
924
990
|
}
|
|
925
991
|
const aHeader = aRequest.responseHeaderValue(propertyName);
|
|
926
992
|
const bHeader = bRequest.responseHeaderValue(propertyName);
|
|
@@ -936,10 +1002,7 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
936
1002
|
const aRequest = a.requestOrFirstKnownChildRequest();
|
|
937
1003
|
const bRequest = b.requestOrFirstKnownChildRequest();
|
|
938
1004
|
if (!aRequest || !bRequest) {
|
|
939
|
-
|
|
940
|
-
return 0;
|
|
941
|
-
}
|
|
942
|
-
return !aRequest ? -1 : 1;
|
|
1005
|
+
return !aRequest ? !bRequest ? 0 : -1 : 1;
|
|
943
1006
|
}
|
|
944
1007
|
const aValue = aRequest.overrideTypes.join(', ');
|
|
945
1008
|
const bValue = bRequest.overrideTypes.join(', ');
|
|
@@ -1001,10 +1064,6 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1001
1064
|
const resourceType = this.requestInternal.resourceType();
|
|
1002
1065
|
let simpleType = resourceType.name();
|
|
1003
1066
|
|
|
1004
|
-
if (this.requestInternal.fromEarlyHints()) {
|
|
1005
|
-
return i18nString(UIStrings.earlyHints);
|
|
1006
|
-
}
|
|
1007
|
-
|
|
1008
1067
|
if (resourceType === Common.ResourceType.resourceTypes.Other ||
|
|
1009
1068
|
resourceType === Common.ResourceType.resourceTypes.Image) {
|
|
1010
1069
|
simpleType = mimeType.replace(/^(application|image)\//, '');
|
|
@@ -1038,16 +1097,20 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1038
1097
|
return this.requestInternal.resourceType() === Common.ResourceType.resourceTypes.Prefetch;
|
|
1039
1098
|
}
|
|
1040
1099
|
|
|
1100
|
+
private isPreload(): boolean {
|
|
1101
|
+
return this.requestInternal.isPreloadRequest();
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1041
1104
|
throttlingConditions(): SDK.NetworkManager.AppliedNetworkConditions|undefined {
|
|
1042
1105
|
return SDK.NetworkManager.MultitargetNetworkManager.instance().appliedRequestConditions(this.requestInternal);
|
|
1043
1106
|
}
|
|
1044
1107
|
|
|
1045
1108
|
override isWarning(): boolean {
|
|
1046
|
-
return this.isFailed() && this.isPrefetch();
|
|
1109
|
+
return this.isFailed() && (this.isPrefetch() || this.isPreload());
|
|
1047
1110
|
}
|
|
1048
1111
|
|
|
1049
1112
|
override isError(): boolean {
|
|
1050
|
-
return this.isFailed() && !this.isPrefetch();
|
|
1113
|
+
return this.isFailed() && !this.isPrefetch() && !this.isPreload();
|
|
1051
1114
|
}
|
|
1052
1115
|
|
|
1053
1116
|
override createCells(trElement: HTMLElement): void {
|
|
@@ -1137,6 +1200,10 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1137
1200
|
this.setTextAndTitle(cell, this.requestInternal.isAdRelated().toLocaleString());
|
|
1138
1201
|
break;
|
|
1139
1202
|
}
|
|
1203
|
+
case 'is-preloaded': {
|
|
1204
|
+
this.setTextAndTitle(cell, this.requestInternal.isLinkPreload().toLocaleString());
|
|
1205
|
+
break;
|
|
1206
|
+
}
|
|
1140
1207
|
case 'render-blocking': {
|
|
1141
1208
|
this.renderRenderBlockingCell(cell);
|
|
1142
1209
|
break;
|
|
@@ -1207,6 +1274,10 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1207
1274
|
this.setTextAndTitle(cell, this.requestInternal.overrideTypes.join(', '));
|
|
1208
1275
|
break;
|
|
1209
1276
|
}
|
|
1277
|
+
case 'execution-context': {
|
|
1278
|
+
this.renderExecutionContextCell(cell);
|
|
1279
|
+
break;
|
|
1280
|
+
}
|
|
1210
1281
|
default: {
|
|
1211
1282
|
const columnConfig = this.dataGrid?.columns[columnId];
|
|
1212
1283
|
if (columnConfig) {
|
|
@@ -1551,9 +1622,17 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1551
1622
|
}
|
|
1552
1623
|
|
|
1553
1624
|
default: {
|
|
1554
|
-
|
|
1625
|
+
// Early hints are not technically an InitiatorType in Chromium but
|
|
1626
|
+
// probably should be (it is in Resource Timing). See:
|
|
1627
|
+
// https://chromium-review.googlesource.com/c/chromium/src/+/5348938/comments/7cf39a37_dae12d06
|
|
1628
|
+
// But to developers it IS the initiator and more useful to know than
|
|
1629
|
+
// the default "other" that otherwise shows for early-hint requests.
|
|
1630
|
+
const initiatorText =
|
|
1631
|
+
request.fromEarlyHints() ? i18nString(UIStrings.earlyHints) : i18nString(UIStrings.otherC);
|
|
1632
|
+
|
|
1633
|
+
UI.Tooltip.Tooltip.install(cell, initiatorText);
|
|
1555
1634
|
cell.classList.add('network-dim-cell');
|
|
1556
|
-
cell.appendChild(document.createTextNode(
|
|
1635
|
+
cell.appendChild(document.createTextNode(initiatorText));
|
|
1557
1636
|
}
|
|
1558
1637
|
}
|
|
1559
1638
|
}
|
|
@@ -1587,18 +1666,22 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1587
1666
|
}
|
|
1588
1667
|
UI.Tooltip.Tooltip.install(cell, tooltipText);
|
|
1589
1668
|
cell.classList.add('network-dim-cell');
|
|
1669
|
+
} else if (this.requestInternal.fetchedViaServiceWorker) {
|
|
1670
|
+
// Checked before the no-matching-route fallback below: a request that
|
|
1671
|
+
// matches no router rule falls back to the fetch handler, so it can
|
|
1672
|
+
// still be fulfilled by the ServiceWorker.
|
|
1673
|
+
UI.UIUtils.createTextChild(cell, i18nString(UIStrings.serviceWorker));
|
|
1674
|
+
UI.Tooltip.Tooltip.install(cell, i18nString(UIStrings.servedFromServiceWorkerResource, {PH1: resourceSize}));
|
|
1675
|
+
cell.classList.add('network-dim-cell');
|
|
1590
1676
|
} else if (this.requestInternal.serviceWorkerRouterInfo) {
|
|
1591
|
-
// ServiceWorker routers are registered, but the request
|
|
1592
|
-
// because no matching router
|
|
1677
|
+
// ServiceWorker routers are registered, but the request fell back to the
|
|
1678
|
+
// network because no matching router rule was found and the fetch
|
|
1679
|
+
// handler did not provide the response.
|
|
1593
1680
|
const transferSize = i18n.ByteUtilities.formatBytesToKb(this.requestInternal.transferSize);
|
|
1594
1681
|
UI.UIUtils.createTextChild(cell, transferSize);
|
|
1595
1682
|
UI.Tooltip.Tooltip.install(
|
|
1596
1683
|
cell,
|
|
1597
1684
|
i18nString(UIStrings.servedFromNetworkMissingServiceWorkerRoute, {PH1: transferSize, PH2: resourceSize}));
|
|
1598
|
-
} else if (this.requestInternal.fetchedViaServiceWorker) {
|
|
1599
|
-
UI.UIUtils.createTextChild(cell, i18nString(UIStrings.serviceWorker));
|
|
1600
|
-
UI.Tooltip.Tooltip.install(cell, i18nString(UIStrings.servedFromServiceWorkerResource, {PH1: resourceSize}));
|
|
1601
|
-
cell.classList.add('network-dim-cell');
|
|
1602
1685
|
} else if (this.requestInternal.redirectSourceSignedExchangeInfoHasNoErrors()) {
|
|
1603
1686
|
UI.UIUtils.createTextChild(cell, i18n.i18n.lockedString('(signed-exchange)'));
|
|
1604
1687
|
UI.Tooltip.Tooltip.install(cell, i18nString(UIStrings.servedFromSignedHttpExchange, {PH1: resourceSize}));
|
|
@@ -1643,6 +1726,11 @@ export class NetworkRequestNode extends NetworkNode {
|
|
|
1643
1726
|
}
|
|
1644
1727
|
}
|
|
1645
1728
|
|
|
1729
|
+
private renderExecutionContextCell(cell: HTMLElement): void {
|
|
1730
|
+
const contextDescription = NetworkRequestNode.getExecutionContextDescription(this.requestInternal);
|
|
1731
|
+
this.setTextAndTitle(cell, contextDescription);
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1646
1734
|
private appendSubtitle(cellElement: Element, subtitleText: string, alwaysVisible = false, tooltipText = ''): void {
|
|
1647
1735
|
const subtitleElement = document.createElement('div');
|
|
1648
1736
|
subtitleElement.classList.add('network-cell-subtitle');
|
|
@@ -777,6 +777,10 @@ export class NetworkLogView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
777
777
|
return request.initiatedByServiceWorker();
|
|
778
778
|
}
|
|
779
779
|
|
|
780
|
+
private static linkPreloadRequestFilter(request: SDK.NetworkRequest.NetworkRequest): boolean {
|
|
781
|
+
return request.isLinkPreload();
|
|
782
|
+
}
|
|
783
|
+
|
|
780
784
|
private static requestResponseHeaderFilter(value: string, request: SDK.NetworkRequest.NetworkRequest): boolean {
|
|
781
785
|
return request.responseHeaderValue(value) !== undefined;
|
|
782
786
|
}
|
|
@@ -1062,6 +1066,7 @@ export class NetworkLogView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
1062
1066
|
NetworkForward.UIFilter.FilterType.Is, NetworkForward.UIFilter.IsFilterType.SERVICE_WORKER_INTERCEPTED);
|
|
1063
1067
|
this.suggestionBuilder.addItem(
|
|
1064
1068
|
NetworkForward.UIFilter.FilterType.Is, NetworkForward.UIFilter.IsFilterType.SERVICE_WORKER_INITIATED);
|
|
1069
|
+
this.suggestionBuilder.addItem(NetworkForward.UIFilter.FilterType.Is, NetworkForward.UIFilter.IsFilterType.PRELOAD);
|
|
1065
1070
|
this.suggestionBuilder.addItem(NetworkForward.UIFilter.FilterType.LargerThan, '100');
|
|
1066
1071
|
this.suggestionBuilder.addItem(NetworkForward.UIFilter.FilterType.LargerThan, '10k');
|
|
1067
1072
|
this.suggestionBuilder.addItem(NetworkForward.UIFilter.FilterType.LargerThan, '1M');
|
|
@@ -2083,7 +2088,7 @@ export class NetworkLogView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
2083
2088
|
await Common.Revealer.reveal(requestLocation);
|
|
2084
2089
|
} else { // If folder for local overrides has not been provided yet
|
|
2085
2090
|
UI.InspectorView.InspectorView.instance().displaySelectOverrideFolderInfobar(async () => {
|
|
2086
|
-
await Sources.SourcesNavigator.OverridesNavigatorView.
|
|
2091
|
+
await Sources.SourcesNavigator.OverridesNavigatorView.setupNewWorkspace();
|
|
2087
2092
|
await networkPersistenceManager.getOrCreateHeadersUISourceCodeFromUrl(request.url());
|
|
2088
2093
|
await Common.Revealer.reveal(requestLocation);
|
|
2089
2094
|
});
|
|
@@ -2207,6 +2212,9 @@ export class NetworkLogView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
2207
2212
|
if (value.toLowerCase() === NetworkForward.UIFilter.IsFilterType.SERVICE_WORKER_INITIATED) {
|
|
2208
2213
|
return NetworkLogView.initiatedByServiceWorkerFilter;
|
|
2209
2214
|
}
|
|
2215
|
+
if (value.toLowerCase() === NetworkForward.UIFilter.IsFilterType.PRELOAD) {
|
|
2216
|
+
return NetworkLogView.linkPreloadRequestFilter;
|
|
2217
|
+
}
|
|
2210
2218
|
break;
|
|
2211
2219
|
|
|
2212
2220
|
case NetworkForward.UIFilter.FilterType.LargerThan:
|
|
@@ -161,6 +161,14 @@ const UIStrings = {
|
|
|
161
161
|
* @description Text in Network Log View Columns of the Network panel
|
|
162
162
|
*/
|
|
163
163
|
renderBlocking: 'Render-blocking',
|
|
164
|
+
/**
|
|
165
|
+
* @description Text to show whether a request is preloaded
|
|
166
|
+
*/
|
|
167
|
+
isPreloaded: 'Preloaded',
|
|
168
|
+
/**
|
|
169
|
+
* @description Column header in the Network log view of the Network panel
|
|
170
|
+
*/
|
|
171
|
+
executionContext: 'Execution context',
|
|
164
172
|
} as const;
|
|
165
173
|
const str_ = i18n.i18n.registerUIStrings('panels/network/NetworkLogViewColumns.ts', UIStrings);
|
|
166
174
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -1221,6 +1229,16 @@ const DEFAULT_COLUMNS = [
|
|
|
1221
1229
|
title: i18nLazyString(UIStrings.renderBlocking),
|
|
1222
1230
|
sortingFunction: NetworkRequestNode.RenderBlockingComparator,
|
|
1223
1231
|
},
|
|
1232
|
+
{
|
|
1233
|
+
id: 'is-preloaded',
|
|
1234
|
+
title: i18nLazyString(UIStrings.isPreloaded),
|
|
1235
|
+
sortingFunction: NetworkRequestNode.IsPreloadedComparator,
|
|
1236
|
+
},
|
|
1237
|
+
{
|
|
1238
|
+
id: 'execution-context',
|
|
1239
|
+
title: i18nLazyString(UIStrings.executionContext),
|
|
1240
|
+
sortingFunction: NetworkRequestNode.ExecutionContextComparator,
|
|
1241
|
+
},
|
|
1224
1242
|
// This header is a placeholder to let datagrid know that it can be sorted by this column, but never shown.
|
|
1225
1243
|
{
|
|
1226
1244
|
id: 'waterfall',
|
|
@@ -805,7 +805,8 @@ export class NetworkPanel extends UI.Panel.Panel implements
|
|
|
805
805
|
return;
|
|
806
806
|
}
|
|
807
807
|
if (target instanceof Workspace.UISourceCode.UISourceCode) {
|
|
808
|
-
const resource = SDK.ResourceTreeModel.ResourceTreeModel.resourceForURL(
|
|
808
|
+
const resource = SDK.ResourceTreeModel.ResourceTreeModel.resourceForURL(
|
|
809
|
+
SDK.TargetManager.TargetManager.instance(), target.url());
|
|
809
810
|
if (resource?.request) {
|
|
810
811
|
appendRevealItem(resource.request);
|
|
811
812
|
} else {
|