chrome-devtools-frontend 1.0.1657110 → 1.0.1660788
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/devtools-ux-writing-refactor/SKILL.md +125 -0
- package/.agents/skills/migrate-chromium-test/SKILL.md +15 -70
- package/.agents/skills/repro-flaky-tests/SKILL.md +53 -0
- 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/front_end/Images/src/ads.svg +1 -0
- package/front_end/Tests.js +6 -6
- package/front_end/core/common/Gzip.ts +12 -5
- package/front_end/core/common/ResourceType.ts +19 -19
- package/front_end/core/common/Revealer.ts +15 -15
- package/front_end/core/common/SettingRegistration.ts +19 -19
- package/front_end/core/host/AidaClient.ts +35 -9
- package/front_end/core/host/GdpClient.ts +10 -7
- package/front_end/core/platform/StringUtilities.ts +35 -0
- 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 +8 -5
- package/front_end/core/sdk/CSSMetadata.ts +110 -16
- 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 +5 -1
- package/front_end/core/sdk/DOMModel.ts +32 -18
- package/front_end/core/sdk/NetworkManager.ts +58 -14
- package/front_end/core/sdk/NetworkRequest.ts +37 -1
- package/front_end/core/sdk/OverlayModel.ts +45 -6
- 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/TargetManager.ts +10 -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/devtools_app/devtools_app.ts +1 -1
- package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +13 -4
- package/front_end/entrypoints/formatter_worker/FormattedContentBuilder.ts +5 -2
- package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +23 -4
- package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +33 -10
- 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 +25 -55
- package/front_end/entrypoints/main/main-meta.ts +50 -50
- package/front_end/entrypoints/node_app/app/NodeConnectionsPanel.ts +5 -5
- package/front_end/entrypoints/node_app/app/NodeMain.ts +3 -3
- package/front_end/entrypoints/node_app/node_app.ts +10 -9
- package/front_end/entrypoints/worker_app/WorkerMain.ts +1 -1
- package/front_end/foundation/Universe.ts +76 -6
- package/front_end/generated/InspectorBackendCommands.ts +3 -3
- package/front_end/generated/SupportedCSSProperties.js +19 -12
- package/front_end/generated/protocol.ts +7 -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/CSSWorkspaceBinding.ts +8 -5
- package/front_end/models/bindings/CompilerScriptMapping.ts +2 -1
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +15 -16
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +6 -4
- package/front_end/models/bindings/FileUtils.ts +11 -12
- package/front_end/models/bindings/NetworkProject.ts +4 -0
- package/front_end/models/bindings/PresentationConsoleMessageHelper.ts +2 -1
- package/front_end/models/bindings/ResourceUtils.ts +1 -1
- package/front_end/models/bindings/SASSSourceMapping.ts +8 -5
- package/front_end/models/emulation/DeviceModeModel.ts +14 -14
- package/front_end/models/emulation/EmulatedDevices.ts +392 -11
- package/front_end/models/extensions/ExtensionAPI.ts +6 -6
- package/front_end/models/extensions/LanguageExtensionEndpoint.ts +13 -12
- 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 +6 -7
- 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 +8 -8
- 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/javascript_metadata/NativeFunctions.js +5 -1
- 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_diff/WorkspaceDiff.ts +23 -12
- 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 +7 -0
- 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 +13 -4
- package/front_end/panels/application/BackgroundServiceView.ts +2 -1
- package/front_end/panels/application/DeviceBoundSessionsView.ts +2 -6
- package/front_end/panels/application/IndexedDBViews.ts +245 -262
- 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 +15 -1
- package/front_end/panels/application/components/AdsView.ts +1 -1
- package/front_end/panels/application/indexedDBViews.css +38 -9
- package/front_end/panels/application/preloading/helper/PreloadingForward.ts +2 -1
- package/front_end/panels/application/resourcesSidebar.css +5 -0
- 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 +4 -4
- package/front_end/panels/console/ConsolePinPane.ts +12 -12
- package/front_end/panels/console/ConsolePrompt.ts +6 -6
- package/front_end/panels/console/ConsoleSidebar.ts +7 -7
- package/front_end/panels/console/ConsoleView.ts +45 -44
- package/front_end/panels/console/ConsoleViewMessage.ts +40 -40
- package/front_end/panels/console/SymbolizedErrorWidget.ts +2 -1
- package/front_end/panels/console/console-meta.ts +34 -34
- 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 +23 -23
- 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 +20 -21
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +6 -8
- package/front_end/panels/developer_resources/developer_resources-meta.ts +2 -2
- 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 +49 -2
- 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/issues/AffectedDirectivesView.ts +1 -1
- package/front_end/panels/issues/AffectedResourcesView.ts +2 -1
- package/front_end/panels/layer_viewer/LayerViewHost.ts +1 -1
- package/front_end/panels/media/EventDisplayTable.ts +2 -2
- package/front_end/panels/media/EventTimelineView.ts +4 -4
- package/front_end/panels/media/MainView.ts +4 -4
- package/front_end/panels/media/PlayerDetailView.ts +5 -5
- package/front_end/panels/media/PlayerListView.ts +1 -1
- package/front_end/panels/media/PlayerMessagesView.ts +12 -12
- package/front_end/panels/media/PlayerPropertiesView.ts +17 -17
- package/front_end/panels/network/NetworkDataGridNode.ts +124 -36
- package/front_end/panels/network/NetworkLogView.ts +11 -2
- package/front_end/panels/network/NetworkLogViewColumns.ts +18 -0
- package/front_end/panels/network/NetworkPanel.ts +2 -1
- package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -3
- package/front_end/panels/network/RequestConditionsDrawer.ts +2 -2
- package/front_end/panels/network/RequestPayloadView.ts +53 -7
- package/front_end/panels/network/RequestPreviewView.ts +7 -1
- 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/networkPanel.css +1 -0
- package/front_end/panels/network/networkTimingTable.css +1 -1
- 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 +15 -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/protocol_monitor/JSONEditor.ts +10 -10
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +28 -32
- package/front_end/panels/protocol_monitor/protocol_monitor-meta.ts +1 -1
- package/front_end/panels/recorder/RecorderController.ts +15 -15
- package/front_end/panels/recorder/RecorderEvents.ts +8 -0
- package/front_end/panels/recorder/components/CreateRecordingView.ts +11 -11
- package/front_end/panels/recorder/components/ExtensionView.ts +74 -83
- package/front_end/panels/recorder/components/RecordingListView.ts +3 -3
- package/front_end/panels/recorder/components/RecordingView.ts +13 -10
- package/front_end/panels/recorder/components/ReplaySection.ts +9 -9
- package/front_end/panels/recorder/components/StepEditor.ts +352 -321
- package/front_end/panels/recorder/components/StepView.ts +36 -37
- package/front_end/panels/recorder/components/recordingView.css +1 -1
- package/front_end/panels/recorder/models/RecorderSettings.ts +2 -2
- package/front_end/panels/recorder/recorder-meta.ts +7 -7
- 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/NavigatorView.ts +7 -6
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +83 -37
- package/front_end/panels/sources/SourcesNavigator.ts +20 -18
- package/front_end/panels/sources/SourcesView.ts +10 -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/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 +2 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +5 -2
- 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/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/webauthn/WebauthnPane.ts +10 -10
- 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/dialogs/shortcutDialog.css +15 -12
- 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 +18 -0
- package/front_end/ui/legacy/View.ts +1 -1
- 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 +100 -36
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +7 -1
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +5 -0
- package/front_end/ui/legacy/components/utils/ImagePreview.ts +4 -2
- package/front_end/ui/legacy/inspectorCommon.css +5 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +4 -0
- package/mcp/mcp.ts +2 -0
- package/package.json +4 -4
- package/front_end/panels/profiler/ProfileView.ts +0 -610
|
@@ -53,6 +53,18 @@ const byteFormatters = {
|
|
|
53
53
|
...defaultByteFormatterOptions,
|
|
54
54
|
unit: 'kilobyte',
|
|
55
55
|
}),
|
|
56
|
+
kilobytesDecimal: new Intl.NumberFormat('en-US', {
|
|
57
|
+
...defaultByteFormatterOptions,
|
|
58
|
+
minimumFractionDigits: 1,
|
|
59
|
+
maximumFractionDigits: 1,
|
|
60
|
+
unit: 'kilobyte',
|
|
61
|
+
}),
|
|
62
|
+
kilobytesInteger: new Intl.NumberFormat('en-US', {
|
|
63
|
+
...defaultByteFormatterOptions,
|
|
64
|
+
minimumFractionDigits: 0,
|
|
65
|
+
maximumFractionDigits: 0,
|
|
66
|
+
unit: 'kilobyte',
|
|
67
|
+
}),
|
|
56
68
|
megabytes: new Intl.NumberFormat('en-US', {
|
|
57
69
|
...defaultByteFormatterOptions,
|
|
58
70
|
unit: 'megabyte',
|
|
@@ -119,6 +131,14 @@ export function bytes(x: number): string {
|
|
|
119
131
|
return formatAndEnsureSpace(byteFormatters.megabytes, megabytes);
|
|
120
132
|
}
|
|
121
133
|
|
|
134
|
+
export function formatBytesToKb(x: number): string {
|
|
135
|
+
const kilobytes = x / 1_000;
|
|
136
|
+
if (kilobytes < 100) {
|
|
137
|
+
return formatAndEnsureSpace(byteFormatters.kilobytesDecimal, kilobytes);
|
|
138
|
+
}
|
|
139
|
+
return formatAndEnsureSpace(byteFormatters.kilobytesInteger, kilobytes);
|
|
140
|
+
}
|
|
141
|
+
|
|
122
142
|
/**
|
|
123
143
|
* When using 'narrow' unitDisplay, many locales exclude the space between the literal and the unit.
|
|
124
144
|
* We don't like that, so when there is no space literal we inject the provided separator manually.
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import type * as Protocol from '../../../generated/protocol.js';
|
|
6
6
|
import * as Trace from '../../../models/trace/trace.js';
|
|
7
7
|
import * as SourceMapsResolver from '../../../models/trace_source_maps_resolver/trace_source_maps_resolver.js';
|
|
8
|
+
import * as Workspace from '../../../models/workspace/workspace.js';
|
|
8
9
|
|
|
9
10
|
/** Iterates from a node down through its descendents. If the callback returns true, the loop stops. */
|
|
10
11
|
function depthFirstWalk(
|
|
@@ -335,7 +336,8 @@ export class AICallTree {
|
|
|
335
336
|
const selfTimeStr = roundToTenths(node.selfTime);
|
|
336
337
|
|
|
337
338
|
// 6. URL Index
|
|
338
|
-
const location = SourceMapsResolver.SourceMapsResolver.codeLocationForEntry(
|
|
339
|
+
const location = SourceMapsResolver.SourceMapsResolver.codeLocationForEntry(
|
|
340
|
+
parsedTrace, event, Workspace.Workspace.WorkspaceImpl.instance());
|
|
339
341
|
const url = location?.url;
|
|
340
342
|
let urlIndexStr = '';
|
|
341
343
|
if (url) {
|
|
@@ -9,6 +9,7 @@ import * as Logs from '../../logs/logs.js';
|
|
|
9
9
|
import type {FunctionCallHandlerResult} from '../agents/AiAgent.js';
|
|
10
10
|
import {isOpaqueOrigin} from '../AiOrigins.js';
|
|
11
11
|
import {getRequestContextOrigin} from '../contexts/RequestContext.js';
|
|
12
|
+
import {formatBytesToKb, seconds} from '../data_formatters/UnitFormatters.js';
|
|
12
13
|
|
|
13
14
|
import {
|
|
14
15
|
type BaseToolCapability,
|
|
@@ -96,8 +97,8 @@ export class ListNetworkRequestsTool implements
|
|
|
96
97
|
id: request.requestId(),
|
|
97
98
|
url: request.url(),
|
|
98
99
|
statusCode: request.statusCode,
|
|
99
|
-
duration:
|
|
100
|
-
transferSize:
|
|
100
|
+
duration: seconds(request.duration),
|
|
101
|
+
transferSize: formatBytesToKb(request.transferSize),
|
|
101
102
|
});
|
|
102
103
|
requestsToShow.push(request);
|
|
103
104
|
}
|
|
@@ -8,6 +8,7 @@ import * as SDK from '../../core/sdk/sdk.js';
|
|
|
8
8
|
import type * as Protocol from '../../generated/protocol.js';
|
|
9
9
|
|
|
10
10
|
export class AutofillManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
|
|
11
|
+
#targetManager: SDK.TargetManager.TargetManager;
|
|
11
12
|
#address = '';
|
|
12
13
|
#filledFields: Protocol.Autofill.FilledField[] = [];
|
|
13
14
|
#matches: Match[] = [];
|
|
@@ -16,6 +17,7 @@ export class AutofillManager extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
16
17
|
|
|
17
18
|
constructor(targetManager: SDK.TargetManager.TargetManager, frameManager: SDK.FrameManager.FrameManager) {
|
|
18
19
|
super();
|
|
20
|
+
this.#targetManager = targetManager;
|
|
19
21
|
this.#frameManager = frameManager;
|
|
20
22
|
targetManager.addModelListener(SDK.AutofillModel.AutofillModel, SDK.AutofillModel.Events.ADDRESS_FORM_FILLED,
|
|
21
23
|
this.#addressFormFilled, this, {scoped: true});
|
|
@@ -58,7 +60,7 @@ export class AutofillManager extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
clearHighlightedFilledFields(): void {
|
|
61
|
-
SDK.OverlayModel.OverlayModel.hideDOMNodeHighlight();
|
|
63
|
+
SDK.OverlayModel.OverlayModel.hideDOMNodeHighlight(this.#targetManager);
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
#processAddressFormFilledData({addressUi, filledFields}: Protocol.Autofill.AddressFormFilledEvent): void {
|
|
@@ -152,6 +152,7 @@ export interface SourceMapping {
|
|
|
152
152
|
|
|
153
153
|
export class ModelInfo {
|
|
154
154
|
readonly #eventListeners: Common.EventTarget.EventDescriptor[];
|
|
155
|
+
readonly #cssWorkspaceBinding: CSSWorkspaceBinding;
|
|
155
156
|
readonly #resourceMapping: ResourceMapping;
|
|
156
157
|
#stylesSourceMapping: StylesSourceMapping;
|
|
157
158
|
#sassSourceMapping: SASSSourceMapping;
|
|
@@ -159,6 +160,7 @@ export class ModelInfo {
|
|
|
159
160
|
readonly #unboundLocations: Platform.MapUtilities.Multimap<Platform.DevToolsPath.UrlString, LiveLocation>;
|
|
160
161
|
constructor(
|
|
161
162
|
cssModel: SDK.CSSModel.CSSModel, resourceMapping: ResourceMapping, cssWorkspaceBinding: CSSWorkspaceBinding) {
|
|
163
|
+
this.#cssWorkspaceBinding = cssWorkspaceBinding;
|
|
162
164
|
this.#eventListeners = [
|
|
163
165
|
cssModel.addEventListener(
|
|
164
166
|
SDK.CSSModel.Events.StyleSheetAdded,
|
|
@@ -191,7 +193,7 @@ export class ModelInfo {
|
|
|
191
193
|
async createLiveLocation(
|
|
192
194
|
rawLocation: SDK.CSSModel.CSSLocation, updateDelegate: (arg0: LiveLocationInterface) => Promise<void>,
|
|
193
195
|
locationPool: LiveLocationPool): Promise<LiveLocation> {
|
|
194
|
-
const location = new LiveLocation(rawLocation, this, updateDelegate, locationPool);
|
|
196
|
+
const location = new LiveLocation(rawLocation, this, this.#cssWorkspaceBinding, updateDelegate, locationPool);
|
|
195
197
|
const header = rawLocation.header();
|
|
196
198
|
if (header) {
|
|
197
199
|
location.setHeader(header);
|
|
@@ -286,15 +288,16 @@ export class LiveLocation extends LiveLocationWithPool {
|
|
|
286
288
|
readonly #lineNumber: number;
|
|
287
289
|
readonly #columnNumber: number;
|
|
288
290
|
readonly #info: ModelInfo;
|
|
291
|
+
readonly #cssWorkspaceBinding: CSSWorkspaceBinding;
|
|
289
292
|
#header: SDK.CSSStyleSheetHeader.CSSStyleSheetHeader|null;
|
|
290
|
-
constructor(
|
|
291
|
-
|
|
292
|
-
updateDelegate: (arg0: LiveLocationInterface) => Promise<void>, locationPool: LiveLocationPool) {
|
|
293
|
+
constructor(rawLocation: SDK.CSSModel.CSSLocation, info: ModelInfo, cssWorkspaceBinding: CSSWorkspaceBinding,
|
|
294
|
+
updateDelegate: (arg0: LiveLocationInterface) => Promise<void>, locationPool: LiveLocationPool) {
|
|
293
295
|
super(updateDelegate, locationPool);
|
|
294
296
|
this.url = rawLocation.url;
|
|
295
297
|
this.#lineNumber = rawLocation.lineNumber;
|
|
296
298
|
this.#columnNumber = rawLocation.columnNumber;
|
|
297
299
|
this.#info = info;
|
|
300
|
+
this.#cssWorkspaceBinding = cssWorkspaceBinding;
|
|
298
301
|
this.#header = null;
|
|
299
302
|
}
|
|
300
303
|
|
|
@@ -311,7 +314,7 @@ export class LiveLocation extends LiveLocationWithPool {
|
|
|
311
314
|
return null;
|
|
312
315
|
}
|
|
313
316
|
const rawLocation = new SDK.CSSModel.CSSLocation(this.#header, this.#lineNumber, this.#columnNumber);
|
|
314
|
-
return
|
|
317
|
+
return this.#cssWorkspaceBinding.rawLocationToUILocation(rawLocation);
|
|
315
318
|
}
|
|
316
319
|
|
|
317
320
|
override dispose(): void {
|
|
@@ -480,7 +480,8 @@ export class CompilerScriptMapping implements DebuggerSourceMapping {
|
|
|
480
480
|
const contentProvider = content !== null ?
|
|
481
481
|
TextUtils.StaticContentProvider.StaticContentProvider.fromString(url, contentType, content) :
|
|
482
482
|
new SDK.CompilerSourceMappingContentProvider.CompilerSourceMappingContentProvider(
|
|
483
|
-
url, contentType, script.createPageResourceLoadInitiator()
|
|
483
|
+
url, contentType, script.createPageResourceLoadInitiator(),
|
|
484
|
+
target.targetManager().getPageResourceLoader());
|
|
484
485
|
let metadata: Workspace.UISourceCode.UISourceCodeMetadata|null = null;
|
|
485
486
|
if (content !== null) {
|
|
486
487
|
const encoder = new TextEncoder();
|
|
@@ -404,6 +404,7 @@ export class DebuggerLanguagePluginManager implements
|
|
|
404
404
|
SDK.TargetManager.SDKModelObserver<SDK.DebuggerModel.DebuggerModel> {
|
|
405
405
|
readonly #workspace: Workspace.Workspace.WorkspaceImpl;
|
|
406
406
|
readonly #debuggerWorkspaceBinding: DebuggerWorkspaceBinding;
|
|
407
|
+
readonly #console: Common.Console.Console;
|
|
407
408
|
#plugins: DebuggerLanguagePlugin[];
|
|
408
409
|
readonly #debuggerModelToData: Map<SDK.DebuggerModel.DebuggerModel, ModelData>;
|
|
409
410
|
readonly #rawModuleHandles: Map<string, {
|
|
@@ -417,11 +418,11 @@ export class DebuggerLanguagePluginManager implements
|
|
|
417
418
|
private readonly stopIdByCallFrame = new Map<SDK.DebuggerModel.CallFrame, StopId>();
|
|
418
419
|
private nextStopId: StopId = 0n;
|
|
419
420
|
|
|
420
|
-
constructor(
|
|
421
|
-
|
|
422
|
-
debuggerWorkspaceBinding: DebuggerWorkspaceBinding) {
|
|
421
|
+
constructor(targetManager: SDK.TargetManager.TargetManager, workspace: Workspace.Workspace.WorkspaceImpl,
|
|
422
|
+
debuggerWorkspaceBinding: DebuggerWorkspaceBinding, console: Common.Console.Console) {
|
|
423
423
|
this.#workspace = workspace;
|
|
424
424
|
this.#debuggerWorkspaceBinding = debuggerWorkspaceBinding;
|
|
425
|
+
this.#console = console;
|
|
425
426
|
|
|
426
427
|
this.#plugins = [];
|
|
427
428
|
|
|
@@ -511,8 +512,8 @@ export class DebuggerLanguagePluginManager implements
|
|
|
511
512
|
const scripts = rawModuleHandle.scripts.filter(script => script.debuggerModel !== debuggerModel);
|
|
512
513
|
if (scripts.length === 0) {
|
|
513
514
|
rawModuleHandle.plugin.removeRawModule(rawModuleId).catch(error => {
|
|
514
|
-
|
|
515
|
-
|
|
515
|
+
this.#console.error(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}),
|
|
516
|
+
/* show=*/ false);
|
|
516
517
|
});
|
|
517
518
|
this.#rawModuleHandles.delete(rawModuleId);
|
|
518
519
|
} else {
|
|
@@ -633,8 +634,7 @@ export class DebuggerLanguagePluginManager implements
|
|
|
633
634
|
sourceLocation.lineNumber, sourceLocation.columnNumber >= 0 ? sourceLocation.columnNumber : undefined);
|
|
634
635
|
}
|
|
635
636
|
} catch (error) {
|
|
636
|
-
|
|
637
|
-
i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
|
|
637
|
+
this.#console.error(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
|
|
638
638
|
}
|
|
639
639
|
return null;
|
|
640
640
|
}
|
|
@@ -663,8 +663,7 @@ export class DebuggerLanguagePluginManager implements
|
|
|
663
663
|
}
|
|
664
664
|
|
|
665
665
|
return Promise.all(locationPromises).then(locations => locations.flat()).catch(error => {
|
|
666
|
-
|
|
667
|
-
i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
|
|
666
|
+
this.#console.error(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
|
|
668
667
|
return null;
|
|
669
668
|
});
|
|
670
669
|
|
|
@@ -841,7 +840,7 @@ export class DebuggerLanguagePluginManager implements
|
|
|
841
840
|
let rawModuleHandle = this.#rawModuleHandles.get(rawModuleId);
|
|
842
841
|
if (!rawModuleHandle) {
|
|
843
842
|
const sourceFileURLsPromise = (async () => {
|
|
844
|
-
const console =
|
|
843
|
+
const console = this.#console;
|
|
845
844
|
const url = script.sourceURL;
|
|
846
845
|
const symbolsUrl = (script.debugSymbols?.externalURL) || '';
|
|
847
846
|
if (symbolsUrl) {
|
|
@@ -962,8 +961,7 @@ export class DebuggerLanguagePluginManager implements
|
|
|
962
961
|
}
|
|
963
962
|
return Array.from(scopes.values());
|
|
964
963
|
} catch (error) {
|
|
965
|
-
|
|
966
|
-
i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
|
|
964
|
+
this.#console.error(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}), /* show=*/ false);
|
|
967
965
|
return null;
|
|
968
966
|
}
|
|
969
967
|
}
|
|
@@ -995,7 +993,7 @@ export class DebuggerLanguagePluginManager implements
|
|
|
995
993
|
}
|
|
996
994
|
return functionInfo;
|
|
997
995
|
} catch (error) {
|
|
998
|
-
|
|
996
|
+
this.#console.warn(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}));
|
|
999
997
|
return {frames: []};
|
|
1000
998
|
}
|
|
1001
999
|
}
|
|
@@ -1032,7 +1030,7 @@ export class DebuggerLanguagePluginManager implements
|
|
|
1032
1030
|
script.debuggerModel, script.scriptId, 0, Number(m.endOffset) + (script.codeOffset() || 0)),
|
|
1033
1031
|
}));
|
|
1034
1032
|
} catch (error) {
|
|
1035
|
-
|
|
1033
|
+
this.#console.warn(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}));
|
|
1036
1034
|
return [];
|
|
1037
1035
|
}
|
|
1038
1036
|
}
|
|
@@ -1069,7 +1067,7 @@ export class DebuggerLanguagePluginManager implements
|
|
|
1069
1067
|
script.debuggerModel, script.scriptId, 0, Number(m.endOffset) + (script.codeOffset() || 0)),
|
|
1070
1068
|
}));
|
|
1071
1069
|
} catch (error) {
|
|
1072
|
-
|
|
1070
|
+
this.#console.warn(i18nString(UIStrings.errorInDebuggerLanguagePlugin, {PH1: error.message}));
|
|
1073
1071
|
return [];
|
|
1074
1072
|
}
|
|
1075
1073
|
}
|
|
@@ -1128,7 +1126,8 @@ class ModelData {
|
|
|
1128
1126
|
this.uiSourceCodeToScripts.set(uiSourceCode, [script]);
|
|
1129
1127
|
|
|
1130
1128
|
const contentProvider = new SDK.CompilerSourceMappingContentProvider.CompilerSourceMappingContentProvider(
|
|
1131
|
-
url, Common.ResourceType.resourceTypes.SourceMapScript, initiator
|
|
1129
|
+
url, Common.ResourceType.resourceTypes.SourceMapScript, initiator,
|
|
1130
|
+
script.target().targetManager().getPageResourceLoader());
|
|
1132
1131
|
const mimeType = Common.ResourceType.ResourceType.mimeFromURL(url) || 'text/javascript';
|
|
1133
1132
|
this.project.addUISourceCodeWithProvider(uiSourceCode, contentProvider, null, mimeType);
|
|
1134
1133
|
} else {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
-
import * as Common from '../../core/common/common.js';
|
|
5
|
+
import type * as Common from '../../core/common/common.js';
|
|
6
6
|
import * as Platform from '../../core/platform/platform.js';
|
|
7
7
|
import * as Root from '../../core/root/root.js';
|
|
8
8
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
@@ -34,6 +34,7 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
34
34
|
readonly pluginManager: DebuggerLanguagePluginManager;
|
|
35
35
|
readonly ignoreListManager: Workspace.IgnoreListManager.IgnoreListManager;
|
|
36
36
|
readonly workspace: Workspace.Workspace.WorkspaceImpl;
|
|
37
|
+
readonly #settings: Common.Settings.Settings;
|
|
37
38
|
|
|
38
39
|
constructor(
|
|
39
40
|
resourceMapping: ResourceMapping, targetManager: SDK.TargetManager.TargetManager,
|
|
@@ -42,6 +43,7 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
42
43
|
this.resourceMapping.debuggerWorkspaceBinding = this;
|
|
43
44
|
this.ignoreListManager = ignoreListManager;
|
|
44
45
|
this.workspace = workspace;
|
|
46
|
+
this.#settings = targetManager.settings;
|
|
45
47
|
|
|
46
48
|
this.#debuggerModelToData = new Map();
|
|
47
49
|
targetManager.observeModels(SDK.DebuggerModel.DebuggerModel, this);
|
|
@@ -50,7 +52,8 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
50
52
|
|
|
51
53
|
this.#liveLocationPromises = new Set();
|
|
52
54
|
|
|
53
|
-
this.pluginManager =
|
|
55
|
+
this.pluginManager =
|
|
56
|
+
new DebuggerLanguagePluginManager(targetManager, resourceMapping.workspace, this, targetManager.getConsole());
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
setFunctionRanges(
|
|
@@ -489,8 +492,7 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
489
492
|
}
|
|
490
493
|
const functionLocation = frame.functionLocation();
|
|
491
494
|
if (!autoSteppingContext || debuggerPausedDetails.reason !== Protocol.Debugger.PausedEventReason.Step ||
|
|
492
|
-
!functionLocation || !frame.script.isWasm() ||
|
|
493
|
-
!Common.Settings.Settings.instance().moduleSetting('wasm-auto-stepping').get() ||
|
|
495
|
+
!functionLocation || !frame.script.isWasm() || !this.#settings.moduleSetting('wasm-auto-stepping').get() ||
|
|
494
496
|
!this.pluginManager.hasPluginForScript(frame.script)) {
|
|
495
497
|
return true;
|
|
496
498
|
}
|
|
@@ -170,10 +170,12 @@ export class ChunkedFileReader implements ChunkedReader {
|
|
|
170
170
|
}
|
|
171
171
|
|
|
172
172
|
export class FileOutputStream implements Common.StringOutputStream.OutputStream {
|
|
173
|
+
readonly #fileManager: Workspace.FileManager.FileManager;
|
|
173
174
|
#writeCallbacks: Array<() => void>;
|
|
174
175
|
#fileName!: Platform.DevToolsPath.RawPathString|Platform.DevToolsPath.UrlString;
|
|
175
176
|
#closed?: boolean;
|
|
176
|
-
constructor() {
|
|
177
|
+
constructor(fileManager: Workspace.FileManager.FileManager) {
|
|
178
|
+
this.#fileManager = fileManager;
|
|
177
179
|
this.#writeCallbacks = [];
|
|
178
180
|
}
|
|
179
181
|
|
|
@@ -181,11 +183,10 @@ export class FileOutputStream implements Common.StringOutputStream.OutputStream
|
|
|
181
183
|
this.#closed = false;
|
|
182
184
|
this.#writeCallbacks = [];
|
|
183
185
|
this.#fileName = fileName;
|
|
184
|
-
const saveResponse = await
|
|
185
|
-
|
|
186
|
+
const saveResponse = await this.#fileManager.save(this.#fileName, TextUtils.ContentData.EMPTY_TEXT_CONTENT_DATA,
|
|
187
|
+
/* forceSaveAs=*/ true);
|
|
186
188
|
if (saveResponse) {
|
|
187
|
-
Workspace.FileManager.
|
|
188
|
-
Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
|
|
189
|
+
this.#fileManager.addEventListener(Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
|
|
189
190
|
}
|
|
190
191
|
return Boolean(saveResponse);
|
|
191
192
|
}
|
|
@@ -193,7 +194,7 @@ export class FileOutputStream implements Common.StringOutputStream.OutputStream
|
|
|
193
194
|
write(data: string): Promise<void> {
|
|
194
195
|
return new Promise(resolve => {
|
|
195
196
|
this.#writeCallbacks.push(resolve);
|
|
196
|
-
|
|
197
|
+
this.#fileManager.append(this.#fileName, data);
|
|
197
198
|
});
|
|
198
199
|
}
|
|
199
200
|
|
|
@@ -202,9 +203,8 @@ export class FileOutputStream implements Common.StringOutputStream.OutputStream
|
|
|
202
203
|
if (this.#writeCallbacks.length) {
|
|
203
204
|
return;
|
|
204
205
|
}
|
|
205
|
-
Workspace.FileManager.
|
|
206
|
-
|
|
207
|
-
Workspace.FileManager.FileManager.instance().close(this.#fileName);
|
|
206
|
+
this.#fileManager.removeEventListener(Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
|
|
207
|
+
this.#fileManager.close(this.#fileName);
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
private onAppendDone(event: Common.EventTarget.EventTargetEvent<string>): void {
|
|
@@ -221,8 +221,7 @@ export class FileOutputStream implements Common.StringOutputStream.OutputStream
|
|
|
221
221
|
if (!this.#closed) {
|
|
222
222
|
return;
|
|
223
223
|
}
|
|
224
|
-
Workspace.FileManager.
|
|
225
|
-
|
|
226
|
-
Workspace.FileManager.FileManager.instance().close(this.#fileName);
|
|
224
|
+
this.#fileManager.removeEventListener(Workspace.FileManager.Events.APPENDED_TO_URL, this.onAppendDone, this);
|
|
225
|
+
this.#fileManager.close(this.#fileName);
|
|
227
226
|
}
|
|
228
227
|
}
|
|
@@ -25,6 +25,10 @@ export class NetworkProjectManager extends Common.ObjectWrapper.ObjectWrapper<Ev
|
|
|
25
25
|
|
|
26
26
|
return Root.DevToolsContext.globalInstance().get(NetworkProjectManager);
|
|
27
27
|
}
|
|
28
|
+
|
|
29
|
+
static removeInstance(): void {
|
|
30
|
+
Root.DevToolsContext.globalInstance().delete(NetworkProjectManager);
|
|
31
|
+
}
|
|
28
32
|
}
|
|
29
33
|
|
|
30
34
|
export const enum Events {
|
|
@@ -67,7 +67,8 @@ export class PresentationConsoleMessageManager {
|
|
|
67
67
|
SDK.TargetManager.TargetManager.instance().addModelListener(
|
|
68
68
|
SDK.ConsoleModel.ConsoleModel, SDK.ConsoleModel.Events.MessageAdded,
|
|
69
69
|
event => this.consoleMessageAdded(event.data));
|
|
70
|
-
SDK.ConsoleModel.ConsoleModel.allMessagesUnordered(
|
|
70
|
+
SDK.ConsoleModel.ConsoleModel.allMessagesUnordered(SDK.TargetManager.TargetManager.instance())
|
|
71
|
+
.forEach(this.consoleMessageAdded, this);
|
|
71
72
|
SDK.TargetManager.TargetManager.instance().addModelListener(
|
|
72
73
|
SDK.ConsoleModel.ConsoleModel, SDK.ConsoleModel.Events.ConsoleCleared,
|
|
73
74
|
() => this.#sourceFrameMessageManager.clear());
|
|
@@ -39,7 +39,7 @@ import type * as Protocol from '../../generated/protocol.js';
|
|
|
39
39
|
import * as Workspace from '../workspace/workspace.js';
|
|
40
40
|
|
|
41
41
|
export function resourceForURL(url: Platform.DevToolsPath.UrlString): SDK.Resource.Resource|null {
|
|
42
|
-
return SDK.ResourceTreeModel.ResourceTreeModel.resourceForURL(url);
|
|
42
|
+
return SDK.ResourceTreeModel.ResourceTreeModel.resourceForURL(SDK.TargetManager.TargetManager.instance(), url);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export function displayNameForURL(url: Platform.DevToolsPath.UrlString): string {
|
|
@@ -55,7 +55,8 @@ export class SASSSourceMapping implements SourceMapping {
|
|
|
55
55
|
for (const sourceURL of sourceMap.sourceURLs()) {
|
|
56
56
|
let binding = bindings.get(sourceURL);
|
|
57
57
|
if (!binding) {
|
|
58
|
-
binding = new Binding(project, sourceURL, header.createPageResourceLoadInitiator()
|
|
58
|
+
binding = new Binding(project, sourceURL, header.createPageResourceLoadInitiator(),
|
|
59
|
+
header.cssModel().target().targetManager().getPageResourceLoader());
|
|
59
60
|
bindings.set(sourceURL, binding);
|
|
60
61
|
}
|
|
61
62
|
binding.addSourceMap(sourceMap, header.frameId);
|
|
@@ -151,15 +152,17 @@ class Binding {
|
|
|
151
152
|
readonly #project: ContentProviderBasedProject;
|
|
152
153
|
readonly #url: Platform.DevToolsPath.UrlString;
|
|
153
154
|
readonly #initiator: SDK.PageResourceLoader.PageResourceLoadInitiator;
|
|
155
|
+
readonly #pageResourceLoader: SDK.PageResourceLoader.PageResourceLoader;
|
|
154
156
|
referringSourceMaps: SDK.SourceMap.SourceMap[];
|
|
155
157
|
uiSourceCode: Workspace.UISourceCode.UISourceCode|null;
|
|
156
158
|
|
|
157
|
-
constructor(
|
|
158
|
-
|
|
159
|
-
|
|
159
|
+
constructor(project: ContentProviderBasedProject, url: Platform.DevToolsPath.UrlString,
|
|
160
|
+
initiator: SDK.PageResourceLoader.PageResourceLoadInitiator,
|
|
161
|
+
pageResourceLoader: SDK.PageResourceLoader.PageResourceLoader) {
|
|
160
162
|
this.#project = project;
|
|
161
163
|
this.#url = url;
|
|
162
164
|
this.#initiator = initiator;
|
|
165
|
+
this.#pageResourceLoader = pageResourceLoader;
|
|
163
166
|
|
|
164
167
|
this.referringSourceMaps = [];
|
|
165
168
|
this.uiSourceCode = null;
|
|
@@ -173,7 +176,7 @@ class Binding {
|
|
|
173
176
|
const contentProvider = embeddedContent !== null ?
|
|
174
177
|
TextUtils.StaticContentProvider.StaticContentProvider.fromString(this.#url, contentType, embeddedContent) :
|
|
175
178
|
new SDK.CompilerSourceMappingContentProvider.CompilerSourceMappingContentProvider(
|
|
176
|
-
this.#url, contentType, this.#initiator);
|
|
179
|
+
this.#url, contentType, this.#initiator, this.#pageResourceLoader);
|
|
177
180
|
const newUISourceCode = this.#project.createUISourceCode(this.#url, contentType);
|
|
178
181
|
uiSourceCodeToBinding.set(newUISourceCode, this);
|
|
179
182
|
const mimeType = Common.ResourceType.ResourceType.mimeFromURL(this.#url) || contentType.canonicalMimeType();
|
|
@@ -21,62 +21,62 @@ import {
|
|
|
21
21
|
|
|
22
22
|
const UIStrings = {
|
|
23
23
|
/**
|
|
24
|
-
* @description Error message shown
|
|
24
|
+
* @description Error message shown on the Devices settings tab when the user enters an empty
|
|
25
25
|
* width for a custom device.
|
|
26
26
|
*/
|
|
27
|
-
widthCannotBeEmpty: 'Width
|
|
27
|
+
widthCannotBeEmpty: 'Width can’t be empty.',
|
|
28
28
|
/**
|
|
29
|
-
* @description Error message shown
|
|
29
|
+
* @description Error message shown on the Devices settings tab when the user enters an invalid
|
|
30
30
|
* width for a custom device.
|
|
31
31
|
*/
|
|
32
32
|
widthMustBeANumber: 'Width must be a number.',
|
|
33
33
|
/**
|
|
34
|
-
* @description Error message shown
|
|
34
|
+
* @description Error message shown on the Devices settings tab when the user has entered a width
|
|
35
35
|
* for a custom device that is too large.
|
|
36
36
|
* @example {9999} PH1
|
|
37
37
|
*/
|
|
38
38
|
widthMustBeLessThanOrEqualToS: 'Width must be less than or equal to {PH1}.',
|
|
39
39
|
/**
|
|
40
|
-
* @description Error message shown
|
|
40
|
+
* @description Error message shown on the Devices settings tab when the user has entered a width
|
|
41
41
|
* for a custom device that is too small.
|
|
42
42
|
* @example {50} PH1
|
|
43
43
|
*/
|
|
44
44
|
widthMustBeGreaterThanOrEqualToS: 'Width must be greater than or equal to {PH1}.',
|
|
45
45
|
/**
|
|
46
|
-
* @description Error message shown
|
|
46
|
+
* @description Error message shown on the Devices settings tab when the user enters an empty
|
|
47
47
|
* height for a custom device.
|
|
48
48
|
*/
|
|
49
|
-
heightCannotBeEmpty: 'Height
|
|
49
|
+
heightCannotBeEmpty: 'Height can’t be empty.',
|
|
50
50
|
/**
|
|
51
|
-
* @description Error message shown
|
|
51
|
+
* @description Error message shown on the Devices settings tab when the user enters an invalid
|
|
52
52
|
* height for a custom device.
|
|
53
53
|
*/
|
|
54
54
|
heightMustBeANumber: 'Height must be a number.',
|
|
55
55
|
/**
|
|
56
|
-
* @description Error message shown
|
|
56
|
+
* @description Error message shown on the Devices settings tab when the user has entered a height
|
|
57
57
|
* for a custom device that is too large.
|
|
58
58
|
* @example {9999} PH1
|
|
59
59
|
*/
|
|
60
60
|
heightMustBeLessThanOrEqualToS: 'Height must be less than or equal to {PH1}.',
|
|
61
61
|
/**
|
|
62
|
-
* @description Error message shown
|
|
62
|
+
* @description Error message shown on the Devices settings tab when the user has entered a height
|
|
63
63
|
* for a custom device that is too small.
|
|
64
64
|
* @example {50} PH1
|
|
65
65
|
*/
|
|
66
66
|
heightMustBeGreaterThanOrEqualTo: 'Height must be greater than or equal to {PH1}.',
|
|
67
67
|
/**
|
|
68
|
-
* @description Error message shown
|
|
68
|
+
* @description Error message shown on the Devices settings tab when the user enters an invalid
|
|
69
69
|
* device pixel ratio for a custom device.
|
|
70
70
|
*/
|
|
71
71
|
devicePixelRatioMustBeANumberOr: 'Device pixel ratio must be a number or blank.',
|
|
72
72
|
/**
|
|
73
|
-
* @description Error message shown
|
|
73
|
+
* @description Error message shown on the Devices settings tab when the user enters a device
|
|
74
74
|
* pixel ratio for a custom device that is too large.
|
|
75
75
|
* @example {10} PH1
|
|
76
76
|
*/
|
|
77
77
|
devicePixelRatioMustBeLessThanOr: 'Device pixel ratio must be less than or equal to {PH1}.',
|
|
78
78
|
/**
|
|
79
|
-
* @description Error message shown
|
|
79
|
+
* @description Error message shown on the Devices settings tab when the user enters a device
|
|
80
80
|
* pixel ratio for a custom device that is too small.
|
|
81
81
|
* @example {0} PH1
|
|
82
82
|
*/
|
|
@@ -166,7 +166,7 @@ export class DeviceModeModel extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
166
166
|
this.#deviceScaleFactorSetting = this.#settings.createSetting('emulation.device-scale-factor', 0);
|
|
167
167
|
this.#deviceScaleFactorSetting.addChangeListener(this.deviceScaleFactorSettingChanged, this);
|
|
168
168
|
|
|
169
|
-
this.#deviceOutlineSetting = this.#settings.
|
|
169
|
+
this.#deviceOutlineSetting = this.#settings.moduleSetting('emulation.show-device-outline');
|
|
170
170
|
this.#deviceOutlineSetting.addChangeListener(this.deviceOutlineSettingChanged, this);
|
|
171
171
|
|
|
172
172
|
this.#toolbarControlsEnabledSetting = this.#settings.createSetting('emulation.toolbar-controls-enabled', true,
|