chrome-devtools-frontend 1.0.1544076 → 1.0.1547147
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/config/typescript/tsconfig.eslint.json +1 -0
- package/docs/styleguide/ux/styles.md +1 -1
- package/eslint.config.mjs +1 -1
- package/front_end/Images/src/arrow-down.svg +8 -1
- package/front_end/Images/src/arrow-up.svg +8 -1
- package/front_end/core/common/ParsedURL.ts +1 -1
- package/front_end/core/common/common.ts +0 -2
- package/front_end/core/host/AidaClient.ts +1 -1
- package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
- package/front_end/core/host/UserMetrics.ts +0 -5
- package/front_end/core/platform/HostRuntime.ts +18 -0
- package/front_end/core/platform/KeyboardUtilities.ts +2 -2
- package/front_end/core/platform/StringUtilities.ts +1 -1
- package/front_end/core/platform/api/HostRuntime.ts +20 -0
- package/front_end/core/platform/api/api.ts +7 -0
- package/front_end/core/platform/browser/HostRuntime.ts +14 -0
- package/front_end/core/platform/browser/browser.ts +7 -0
- package/front_end/core/platform/node/HostRuntime.ts +13 -0
- package/front_end/core/platform/node/node.ts +7 -0
- package/front_end/core/platform/platform.ts +2 -2
- package/front_end/core/protocol_client/CDPConnection.ts +3 -3
- package/front_end/core/protocol_client/DevToolsCDPConnection.ts +2 -1
- package/front_end/core/sdk/CSSMetadata.ts +17 -5
- package/front_end/core/sdk/NetworkManager.ts +6 -8
- package/front_end/core/sdk/NetworkRequest.ts +4 -0
- package/front_end/core/sdk/SDKModel.ts +4 -2
- package/front_end/core/sdk/SourceMapScopesInfo.ts +141 -23
- package/front_end/core/sdk/Target.ts +5 -14
- package/front_end/core/sdk/TargetManager.ts +39 -18
- package/front_end/core/sdk/sdk-meta.ts +62 -0
- package/front_end/devtools_compatibility.js +0 -1
- package/front_end/entrypoints/main/MainImpl.ts +2 -2
- package/front_end/foundation/Universe.ts +2 -2
- package/front_end/generated/Deprecation.ts +11 -0
- package/front_end/generated/InspectorBackendCommands.ts +3 -6
- package/front_end/generated/SupportedCSSProperties.js +4 -25
- package/front_end/generated/protocol-mapping.d.ts +0 -15
- package/front_end/generated/protocol-proxy-api.d.ts +0 -11
- package/front_end/generated/protocol.ts +5 -36
- package/front_end/models/ai_assistance/AiConversation.ts +188 -0
- package/front_end/models/ai_assistance/AiHistoryStorage.ts +1 -172
- package/front_end/models/ai_assistance/ConversationHandler.ts +5 -5
- package/front_end/models/ai_assistance/agents/AiAgent.ts +1 -3
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +6 -2
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +1 -1
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +3 -9
- package/front_end/models/ai_assistance/ai_assistance.ts +2 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +313 -313
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +8 -6
- package/front_end/models/ai_assistance/performance/AICallTree.snapshot.txt +33 -33
- package/front_end/models/ai_assistance/performance/AICallTree.ts +9 -3
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +5 -3
- package/front_end/models/bindings/SASSSourceMapping.ts +6 -4
- package/front_end/models/cpu_profile/CPUProfileDataModel.ts +10 -7
- package/front_end/models/crux-manager/CrUXManager.ts +7 -4
- package/front_end/models/issues_manager/GenericIssue.ts +12 -9
- package/front_end/models/javascript_metadata/NativeFunctions.js +4 -0
- package/front_end/models/trace/handlers/SamplesHandler.ts +3 -0
- package/front_end/models/trace/helpers/Trace.ts +13 -0
- package/front_end/models/trace/types/TraceEvents.ts +2 -1
- package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +29 -0
- package/front_end/models/workspace/IgnoreListManager.ts +1 -2
- package/front_end/models/workspace/UISourceCode.ts +50 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +11 -10
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +8 -0
- package/front_end/panels/ai_assistance/components/ChatView.ts +2 -2
- package/front_end/panels/ai_assistance/components/UserActionRow.ts +2 -1
- package/front_end/panels/animation/AnimationTimeline.ts +0 -8
- package/front_end/panels/application/ApplicationPanelSidebar.ts +6 -7
- package/front_end/panels/application/{components/FrameDetailsView.ts → FrameDetailsView.ts} +140 -171
- package/front_end/panels/application/{components/OriginTrialTreeView.ts → OriginTrialTreeView.ts} +9 -9
- package/front_end/panels/application/application.ts +4 -0
- package/front_end/panels/application/components/StackTrace.ts +89 -88
- package/front_end/panels/application/components/components.ts +2 -4
- package/front_end/panels/application/{components/frameDetailsReportView.css → frameDetailsReportView.css} +5 -1
- package/front_end/panels/common/AiCodeGenerationTeaser.ts +80 -0
- package/front_end/panels/common/BadgeNotification.ts +2 -1
- package/front_end/panels/common/DOMLinkifier.ts +7 -2
- package/front_end/panels/common/GdpSignUpDialog.ts +2 -1
- package/front_end/panels/common/common.ts +2 -1
- package/front_end/panels/console/ConsolePrompt.ts +3 -1
- package/front_end/panels/console/ConsoleViewport.ts +1 -2
- package/front_end/panels/elements/ElementIssueUtils.ts +2 -2
- package/front_end/panels/elements/ElementStatePaneWidget.ts +2 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +1 -1
- package/front_end/panels/elements/StylePropertyTreeElement.ts +23 -19
- package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
- package/front_end/panels/elements/cssValueTraceView.css +1 -1
- package/front_end/panels/elements/elements-meta.ts +1 -22
- package/front_end/panels/explain/components/ConsoleInsight.ts +44 -57
- package/front_end/panels/explain/components/consoleInsight.css +46 -1
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +1 -2
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +3 -6
- package/front_end/panels/mobile_throttling/NetworkThrottlingSelector.ts +19 -0
- package/front_end/panels/network/RequestConditionsDrawer.ts +54 -24
- package/front_end/panels/network/networkLogView.css +11 -0
- package/front_end/panels/network/networkTimingTable.css +8 -6
- package/front_end/panels/network/requestConditionsDrawer.css +10 -1
- package/front_end/panels/profiler/ProfilesPanel.ts +1 -2
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +2 -1
- package/front_end/panels/settings/KeybindsSettingsTab.ts +20 -21
- package/front_end/panels/settings/SettingsScreen.ts +3 -2
- package/front_end/panels/sources/CoveragePlugin.ts +5 -5
- package/front_end/panels/sources/Plugin.ts +1 -1
- package/front_end/panels/sources/ProfilePlugin.ts +22 -14
- package/front_end/panels/sources/UISourceCodeFrame.ts +2 -1
- package/front_end/panels/sources/sources-meta.ts +0 -62
- package/front_end/panels/timeline/README.md +1 -9
- package/front_end/panels/timeline/ThreadAppender.ts +0 -7
- package/front_end/panels/timeline/TimelinePanel.ts +1 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +2 -0
- package/front_end/panels/timeline/components/ExportTraceOptions.ts +15 -1
- package/front_end/panels/timeline/components/LiveMetricsView.ts +51 -6
- package/front_end/panels/timeline/components/MetricCard.ts +2 -2
- package/front_end/panels/timeline/components/exportTraceOptions.css +11 -2
- package/front_end/panels/timeline/components/insights/NodeLink.ts +2 -3
- package/front_end/panels/timeline/overlays/components/EntryLabelOverlay.ts +2 -1
- package/front_end/panels/timeline/timeline-meta.ts +0 -10
- package/front_end/panels/timeline/timeline.ts +0 -2
- package/front_end/panels/whats_new/ReleaseNoteView.ts +2 -1
- package/front_end/panels/whats_new/WhatsNewImpl.ts +3 -2
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/tsconfig.json +1 -0
- package/front_end/ui/components/buttons/Button.docs.ts +6 -5
- package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +1 -0
- package/front_end/ui/components/snackbars/Snackbars.docs.ts +1 -1
- package/front_end/ui/components/spinners/Spinners.docs.ts +1 -1
- package/front_end/ui/components/survey_link/SurveyLink.docs.ts +2 -1
- package/front_end/ui/components/switch/Switch.docs.ts +1 -1
- package/front_end/ui/components/tooltips/Tooltip.docs.ts +3 -3
- package/front_end/ui/helpers/OpenInNewTab.ts +87 -0
- package/front_end/ui/helpers/helpers.ts +5 -0
- package/front_end/ui/legacy/ARIAUtils.ts +2 -2
- package/front_end/ui/legacy/ActionRegistration.ts +11 -0
- package/front_end/ui/legacy/ContextMenu.docs.ts +12 -11
- package/front_end/ui/legacy/RadioButton.docs.ts +1 -1
- package/front_end/ui/legacy/SelectMenu.docs.ts +1 -1
- package/front_end/ui/legacy/Slider.docs.ts +1 -1
- package/front_end/ui/legacy/SoftDropDown.ts +2 -2
- package/front_end/ui/legacy/TextPrompt.ts +3 -2
- package/front_end/ui/legacy/Treeoutline.ts +2 -1
- package/front_end/ui/legacy/UIUtils.ts +11 -43
- package/front_end/ui/legacy/Widget.ts +3 -2
- package/front_end/ui/legacy/XLink.ts +4 -4
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +2 -1
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +144 -143
- package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +62 -39
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +1 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +2 -2
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +2 -7
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +1 -2
- package/front_end/ui/legacy/components/utils/Linkifier.ts +2 -1
- package/front_end/ui/legacy/inspectorCommon.css +2 -2
- package/front_end/ui/legacy/legacy.ts +2 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
- package/mcp/tsconfig.json +16 -0
- package/package.json +2 -2
- package/front_end/core/common/Linkifier.ts +0 -55
- package/front_end/panels/explain/components/consoleInsightSourcesList.css +0 -51
- package/front_end/panels/timeline/CLSLinkifier.ts +0 -58
- package/front_end/ui/components/docs/README.md +0 -6
- package/front_end/ui/components/docs/building-ui-documentation/ComponentEvents.md +0 -54
- package/front_end/ui/components/docs/building-ui-documentation/ComponentPerformance.md +0 -136
- package/front_end/ui/components/docs/building-ui-documentation/CreatingComponents.md +0 -242
- package/front_end/ui/components/docs/building-ui-documentation/README.md +0 -23
- package/front_end/ui/components/docs/building-ui-documentation/StylingComponents.md +0 -66
- package/front_end/ui/components/docs/building-ui-documentation/TestingComponents.md +0 -111
- package/front_end/ui/components/docs/component_docs.ts +0 -24
- package/front_end/ui/components/docs/component_docs_styles.css +0 -53
- package/front_end/ui/components/docs/create_breadcrumbs.ts +0 -44
- package/front_end/ui/components/docs/slider/basic.html +0 -20
- package/front_end/ui/components/docs/switch/basic.html +0 -20
- /package/front_end/models/issues_manager/descriptions/{genericFormAriaLabelledByToNonExistingId.md → genericFormAriaLabelledByToNonExistingIdError.md} +0 -0
- /package/front_end/models/issues_manager/descriptions/{genericFormLabelHasNeitherForNorNestedInput.md → genericFormLabelHasNeitherForNorNestedInputError.md} +0 -0
- /package/front_end/panels/application/{components/originTrialTokenRows.css → originTrialTokenRows.css} +0 -0
- /package/front_end/panels/application/{components/originTrialTreeView.css → originTrialTreeView.css} +0 -0
- /package/front_end/{core/platform → ui/legacy}/DOMUtilities.ts +0 -0
|
@@ -9,13 +9,14 @@ import * as i18n from '../../../core/i18n/i18n.js';
|
|
|
9
9
|
import type * as SDK from '../../../core/sdk/sdk.js';
|
|
10
10
|
import type * as Protocol from '../../../generated/protocol.js';
|
|
11
11
|
import * as Components from '../../../ui/legacy/components/utils/utils.js';
|
|
12
|
-
import * as
|
|
12
|
+
import * as UI from '../../../ui/legacy/legacy.js';
|
|
13
|
+
import {html, nothing, render, type TemplateResult} from '../../../ui/lit/lit.js';
|
|
13
14
|
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
14
15
|
|
|
15
16
|
import stackTraceLinkButtonStyles from './stackTraceLinkButton.css.js';
|
|
16
17
|
import stackTraceRowStyles from './stackTraceRow.css.js';
|
|
17
18
|
|
|
18
|
-
const {
|
|
19
|
+
const {widgetConfig} = UI.Widget;
|
|
19
20
|
|
|
20
21
|
const UIStrings = {
|
|
21
22
|
/**
|
|
@@ -40,7 +41,10 @@ const str_ = i18n.i18n.registerUIStrings('panels/application/components/StackTra
|
|
|
40
41
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
41
42
|
|
|
42
43
|
export interface StackTraceData {
|
|
43
|
-
|
|
44
|
+
creationStackTraceData: {
|
|
45
|
+
creationStackTrace: Protocol.Runtime.StackTrace|null,
|
|
46
|
+
creationStackTraceTarget: SDK.Target.Target|null,
|
|
47
|
+
};
|
|
44
48
|
buildStackTraceRows: (
|
|
45
49
|
stackTrace: Protocol.Runtime.StackTrace,
|
|
46
50
|
target: SDK.Target.Target|null,
|
|
@@ -51,92 +55,97 @@ export interface StackTraceData {
|
|
|
51
55
|
) => Array<Components.JSPresentationUtils.StackTraceRegularRow|Components.JSPresentationUtils.StackTraceAsyncRow>;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
|
-
interface
|
|
55
|
-
stackTraceRowItem: Components.JSPresentationUtils.StackTraceRegularRow;
|
|
58
|
+
interface StackTraceRowViewInput {
|
|
59
|
+
stackTraceRowItem: Components.JSPresentationUtils.StackTraceRegularRow|null;
|
|
56
60
|
}
|
|
57
61
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
type StackTraceRowView = (input: StackTraceRowViewInput, output: undefined, target: HTMLElement) => void;
|
|
63
|
+
const ROW_DEFAULT_VIEW: StackTraceRowView = (input, output, target) => {
|
|
64
|
+
if (!input.stackTraceRowItem) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
// clang-format off
|
|
68
|
+
render(html`
|
|
69
|
+
<style>${stackTraceRowStyles}</style>
|
|
70
|
+
<div class="stack-trace-row">
|
|
71
|
+
<div class="stack-trace-function-name text-ellipsis" title=${input.stackTraceRowItem.functionName}>
|
|
72
|
+
${input.stackTraceRowItem.functionName}
|
|
73
|
+
</div>
|
|
74
|
+
<div class="stack-trace-source-location">
|
|
75
|
+
${input.stackTraceRowItem.link ? html`
|
|
76
|
+
<div class="text-ellipsis">\xA0@\xA0${input.stackTraceRowItem.link}</div>` :
|
|
77
|
+
nothing}
|
|
78
|
+
</div>
|
|
79
|
+
</div>`, target);
|
|
80
|
+
// clang-format on
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export class StackTraceRow extends UI.Widget.Widget {
|
|
84
|
+
constructor(element?: HTMLElement, view = ROW_DEFAULT_VIEW) {
|
|
85
|
+
super(element, {useShadowDom: true});
|
|
86
|
+
this.#view = view;
|
|
66
87
|
}
|
|
67
88
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
html`
|
|
74
|
-
<style>${stackTraceRowStyles}</style>
|
|
75
|
-
<div class="stack-trace-row">
|
|
76
|
-
<div class="stack-trace-function-name text-ellipsis" title=${this.#stackTraceRowItem.functionName}>
|
|
77
|
-
${this.#stackTraceRowItem.functionName}
|
|
78
|
-
</div>
|
|
79
|
-
<div class="stack-trace-source-location">
|
|
80
|
-
${
|
|
81
|
-
this.#stackTraceRowItem.link ?
|
|
82
|
-
html`<div class="text-ellipsis">\xA0@\xA0${this.#stackTraceRowItem.link}</div>` :
|
|
83
|
-
Lit.nothing}
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
`,
|
|
87
|
-
this.#shadow, {host: this});
|
|
89
|
+
stackTraceRowItem: Components.JSPresentationUtils.StackTraceRegularRow|null = null;
|
|
90
|
+
#view: StackTraceRowView;
|
|
91
|
+
|
|
92
|
+
override performUpdate(): void {
|
|
93
|
+
this.#view(this, undefined, this.contentElement);
|
|
88
94
|
}
|
|
89
95
|
}
|
|
90
96
|
|
|
91
|
-
interface
|
|
97
|
+
interface StackTraceLinkViewInput {
|
|
92
98
|
onShowAllClick: () => void;
|
|
93
|
-
hiddenCallFramesCount: number;
|
|
99
|
+
hiddenCallFramesCount: number|null;
|
|
94
100
|
expandedView: boolean;
|
|
95
101
|
}
|
|
96
102
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
103
|
+
type StackTraceLinkView = (input: StackTraceLinkViewInput, output: undefined, target: HTMLElement) => void;
|
|
104
|
+
const LINK_DEFAULT_VIEW: StackTraceLinkView = (input, output, target) => {
|
|
105
|
+
if (!input.hiddenCallFramesCount) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const linkText = input.expandedView ? i18nString(UIStrings.showLess) :
|
|
109
|
+
i18nString(UIStrings.showSMoreFrames, {n: input.hiddenCallFramesCount});
|
|
110
|
+
// clang-format off
|
|
111
|
+
render(html`
|
|
112
|
+
<style>${stackTraceLinkButtonStyles}</style>
|
|
113
|
+
<div class="stack-trace-row">
|
|
114
|
+
<button class="link" @click=${() => input.onShowAllClick()}>
|
|
115
|
+
${linkText}
|
|
116
|
+
</button>
|
|
117
|
+
</div>`, target);
|
|
118
|
+
// clang-format on
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
export class StackTraceLinkButton extends UI.Widget.Widget {
|
|
122
|
+
onShowAllClick: () => void = () => {};
|
|
123
|
+
hiddenCallFramesCount: number|null = null;
|
|
124
|
+
expandedView = false;
|
|
125
|
+
#view: StackTraceLinkView;
|
|
126
|
+
|
|
127
|
+
constructor(element?: HTMLElement, view = LINK_DEFAULT_VIEW) {
|
|
128
|
+
super(element, {useShadowDom: true});
|
|
129
|
+
this.#view = view;
|
|
109
130
|
}
|
|
110
131
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
const linkText = this.#expandedView ? i18nString(UIStrings.showLess) :
|
|
116
|
-
i18nString(UIStrings.showSMoreFrames, {n: this.#hiddenCallFramesCount});
|
|
117
|
-
Lit.render(
|
|
118
|
-
html`
|
|
119
|
-
<style>${stackTraceLinkButtonStyles}</style>
|
|
120
|
-
<div class="stack-trace-row">
|
|
121
|
-
<button class="link" @click=${() => this.#onShowAllClick()}>
|
|
122
|
-
${linkText}
|
|
123
|
-
</button>
|
|
124
|
-
</div>
|
|
125
|
-
`,
|
|
126
|
-
this.#shadow, {host: this});
|
|
132
|
+
override performUpdate(): void {
|
|
133
|
+
this.#view(this, undefined, this.contentElement);
|
|
127
134
|
}
|
|
128
135
|
}
|
|
129
136
|
|
|
130
|
-
export class StackTrace extends
|
|
131
|
-
readonly #shadow = this.attachShadow({mode: 'open'});
|
|
137
|
+
export class StackTrace extends UI.Widget.Widget {
|
|
132
138
|
readonly #linkifier = new Components.Linkifier.Linkifier();
|
|
133
139
|
#stackTraceRows:
|
|
134
140
|
Array<Components.JSPresentationUtils.StackTraceRegularRow|Components.JSPresentationUtils.StackTraceAsyncRow> = [];
|
|
135
141
|
#showHidden = false;
|
|
136
142
|
|
|
143
|
+
constructor(element?: HTMLElement) {
|
|
144
|
+
super(element, {useShadowDom: true});
|
|
145
|
+
}
|
|
146
|
+
|
|
137
147
|
set data(data: StackTraceData) {
|
|
138
|
-
const
|
|
139
|
-
const {creationStackTrace, creationStackTraceTarget} = frame.getCreationStackTraceData();
|
|
148
|
+
const {creationStackTrace, creationStackTraceTarget} = data.creationStackTraceData;
|
|
140
149
|
if (creationStackTrace) {
|
|
141
150
|
this.#stackTraceRows = data.buildStackTraceRows(
|
|
142
151
|
creationStackTrace, creationStackTraceTarget, this.#linkifier, true,
|
|
@@ -158,7 +167,7 @@ export class StackTrace extends HTMLElement {
|
|
|
158
167
|
this.#render();
|
|
159
168
|
}
|
|
160
169
|
|
|
161
|
-
createRowTemplates():
|
|
170
|
+
createRowTemplates(): TemplateResult[] {
|
|
162
171
|
const expandableRows = [];
|
|
163
172
|
let hiddenCallFramesCount = 0;
|
|
164
173
|
for (const item of this.#stackTraceRows) {
|
|
@@ -174,9 +183,9 @@ export class StackTrace extends HTMLElement {
|
|
|
174
183
|
if (this.#showHidden || !ignoreListHide) {
|
|
175
184
|
if ('functionName' in item) {
|
|
176
185
|
expandableRows.push(html`
|
|
177
|
-
<devtools-
|
|
178
|
-
stackTraceRowItem: item
|
|
179
|
-
}}></devtools-
|
|
186
|
+
<devtools-widget data-stack-trace-row .widgetConfig=${widgetConfig(StackTraceRow, {
|
|
187
|
+
stackTraceRowItem: item
|
|
188
|
+
})}></devtools-widget>`);
|
|
180
189
|
}
|
|
181
190
|
if ('asyncDescription' in item) {
|
|
182
191
|
expandableRows.push(html`
|
|
@@ -192,7 +201,11 @@ export class StackTrace extends HTMLElement {
|
|
|
192
201
|
// Disabled until https://crbug.com/1079231 is fixed.
|
|
193
202
|
// clang-format off
|
|
194
203
|
expandableRows.push(html`
|
|
195
|
-
|
|
204
|
+
<devtools-widget data-stack-trace-row .widgetConfig=${widgetConfig(StackTraceLinkButton, {
|
|
205
|
+
onShowAllClick: this.#onToggleShowAllClick.bind(this),
|
|
206
|
+
hiddenCallFramesCount,
|
|
207
|
+
expandedView: this.#showHidden})}>
|
|
208
|
+
</devtools-widget>
|
|
196
209
|
`);
|
|
197
210
|
// clang-format on
|
|
198
211
|
}
|
|
@@ -204,34 +217,22 @@ export class StackTrace extends HTMLElement {
|
|
|
204
217
|
if (!this.#stackTraceRows.length) {
|
|
205
218
|
// Disabled until https://crbug.com/1079231 is fixed.
|
|
206
219
|
// clang-format off
|
|
207
|
-
|
|
220
|
+
render(
|
|
208
221
|
html`
|
|
209
222
|
<span>${i18nString(UIStrings.cannotRenderStackTrace)}</span>
|
|
210
223
|
`,
|
|
211
|
-
this
|
|
224
|
+
this.contentElement, {host: this});
|
|
212
225
|
return;
|
|
213
226
|
}
|
|
214
227
|
|
|
215
228
|
const expandableRows = this.createRowTemplates();
|
|
216
|
-
|
|
229
|
+
render(
|
|
217
230
|
html`
|
|
218
231
|
<devtools-expandable-list .data=${{rows: expandableRows, title: i18nString(UIStrings.creationStackTrace)}}
|
|
219
232
|
jslog=${VisualLogging.tree()}>
|
|
220
233
|
</devtools-expandable-list>
|
|
221
234
|
`,
|
|
222
|
-
this
|
|
235
|
+
this.contentElement, {host: this});
|
|
223
236
|
// clang-format on
|
|
224
237
|
}
|
|
225
238
|
}
|
|
226
|
-
|
|
227
|
-
customElements.define('devtools-stack-trace-row', StackTraceRow);
|
|
228
|
-
customElements.define('devtools-stack-trace-link-button', StackTraceLinkButton);
|
|
229
|
-
customElements.define('devtools-resources-stack-trace', StackTrace);
|
|
230
|
-
|
|
231
|
-
declare global {
|
|
232
|
-
interface HTMLElementTagNameMap {
|
|
233
|
-
'devtools-stack-trace-row': StackTraceRow;
|
|
234
|
-
'devtools-stack-trace-link-button': StackTraceLinkButton;
|
|
235
|
-
'devtools-resources-stack-trace': StackTrace;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
import * as BackForwardCacheView from './BackForwardCacheView.js';
|
|
6
6
|
import * as BounceTrackingMitigationsView from './BounceTrackingMitigationsView.js';
|
|
7
7
|
import * as EndpointsGrid from './EndpointsGrid.js';
|
|
8
|
-
import * as FrameDetailsView from './FrameDetailsView.js';
|
|
9
8
|
import * as InterestGroupAccessGrid from './InterestGroupAccessGrid.js';
|
|
10
|
-
import * as
|
|
9
|
+
import * as PermissionsPolicySection from './PermissionsPolicySection.js';
|
|
11
10
|
import * as ProtocolHandlersView from './ProtocolHandlersView.js';
|
|
12
11
|
import * as ReportsGrid from './ReportsGrid.js';
|
|
13
12
|
import * as ServiceWorkerRouterView from './ServiceWorkerRouterView.js';
|
|
@@ -21,9 +20,8 @@ export {
|
|
|
21
20
|
BackForwardCacheView,
|
|
22
21
|
BounceTrackingMitigationsView,
|
|
23
22
|
EndpointsGrid,
|
|
24
|
-
FrameDetailsView,
|
|
25
23
|
InterestGroupAccessGrid,
|
|
26
|
-
|
|
24
|
+
PermissionsPolicySection,
|
|
27
25
|
ProtocolHandlersView,
|
|
28
26
|
ReportsGrid,
|
|
29
27
|
ServiceWorkerRouterView,
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* found in the LICENSE file.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
:host {
|
|
8
|
+
overflow: auto;
|
|
9
|
+
}
|
|
10
|
+
|
|
7
11
|
.text-ellipsis {
|
|
8
12
|
overflow: hidden;
|
|
9
13
|
text-overflow: ellipsis;
|
|
@@ -111,4 +115,4 @@ button.text-link {
|
|
|
111
115
|
color: linktext;
|
|
112
116
|
text-decoration-color: linktext;
|
|
113
117
|
}
|
|
114
|
-
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Copyright 2025 The Chromium Authors
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
import * as Host from '../../core/host/host.js';
|
|
6
|
+
import * as i18n from '../../core/i18n/i18n.js';
|
|
7
|
+
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
|
+
import {html, render} from '../../ui/lit/lit.js';
|
|
9
|
+
|
|
10
|
+
const UIStringsNotTranslate = {
|
|
11
|
+
/**
|
|
12
|
+
* @description Text for teaser to generate code.
|
|
13
|
+
*/
|
|
14
|
+
ctrlItoGenerateCode: 'ctrl-i to generate code',
|
|
15
|
+
/**
|
|
16
|
+
* @description Text for teaser to generate code in Mac.
|
|
17
|
+
*/
|
|
18
|
+
cmdItoGenerateCode: 'cmd-i to generate code',
|
|
19
|
+
/**
|
|
20
|
+
* Text for teaser when generating suggestion.
|
|
21
|
+
*/
|
|
22
|
+
generating: 'Generating... (esc to cancel)',
|
|
23
|
+
} as const;
|
|
24
|
+
|
|
25
|
+
const lockedString = i18n.i18n.lockedString;
|
|
26
|
+
|
|
27
|
+
export interface ViewInput {
|
|
28
|
+
loading: boolean;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export type View = (input: ViewInput, output: object, target: HTMLElement) => void;
|
|
32
|
+
|
|
33
|
+
export const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
34
|
+
const toGenerateCode = Host.Platform.isMac() ? lockedString(UIStringsNotTranslate.cmdItoGenerateCode) :
|
|
35
|
+
lockedString(UIStringsNotTranslate.ctrlItoGenerateCode);
|
|
36
|
+
const teaserLabel = input.loading ? lockedString(UIStringsNotTranslate.generating) : toGenerateCode;
|
|
37
|
+
// clang-format off
|
|
38
|
+
render(
|
|
39
|
+
html`
|
|
40
|
+
<div class="ai-code-generation-teaser">
|
|
41
|
+
${teaserLabel}
|
|
42
|
+
</div>
|
|
43
|
+
`, target
|
|
44
|
+
);
|
|
45
|
+
// clang-format on
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export class AiCodeGenerationTeaser extends UI.Widget.Widget {
|
|
49
|
+
readonly #view: View;
|
|
50
|
+
|
|
51
|
+
#loading = false;
|
|
52
|
+
|
|
53
|
+
constructor(view?: View) {
|
|
54
|
+
super();
|
|
55
|
+
this.markAsExternallyManaged();
|
|
56
|
+
this.#view = view ?? DEFAULT_VIEW;
|
|
57
|
+
this.requestUpdate();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
override performUpdate(): void {
|
|
61
|
+
const output = {};
|
|
62
|
+
this.#view(
|
|
63
|
+
{
|
|
64
|
+
loading: this.#loading,
|
|
65
|
+
},
|
|
66
|
+
output, this.contentElement);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
get loading(): boolean {
|
|
70
|
+
return this.#loading;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
set loading(loading: boolean) {
|
|
74
|
+
if (loading === this.#loading) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
this.#loading = loading;
|
|
78
|
+
this.requestUpdate();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -7,6 +7,7 @@ import * as Host from '../../core/host/host.js';
|
|
|
7
7
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
8
8
|
import * as Badges from '../../models/badges/badges.js';
|
|
9
9
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
10
|
+
import * as UIHelpers from '../../ui/helpers/helpers.js';
|
|
10
11
|
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
11
12
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
12
13
|
import * as Lit from '../../ui/lit/lit.js';
|
|
@@ -290,7 +291,7 @@ export class BadgeNotification extends UI.Widget.Widget {
|
|
|
290
291
|
label: i18nString(UIStrings.viewProfile),
|
|
291
292
|
jslogContext: 'view-profile',
|
|
292
293
|
onClick: () => {
|
|
293
|
-
|
|
294
|
+
UIHelpers.openInNewTab(Host.GdpClient.GOOGLE_DEVELOPER_PROGRAM_PROFILE_LINK);
|
|
294
295
|
}
|
|
295
296
|
}
|
|
296
297
|
],
|
|
@@ -24,7 +24,12 @@ const UIStrings = {
|
|
|
24
24
|
const str_ = i18n.i18n.registerUIStrings('panels/common/DOMLinkifier.ts', UIStrings);
|
|
25
25
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
26
26
|
|
|
27
|
-
export interface Options
|
|
27
|
+
export interface Options {
|
|
28
|
+
tooltip?: string;
|
|
29
|
+
preventKeyboardFocus?: boolean;
|
|
30
|
+
textContent?: string;
|
|
31
|
+
// Dynamic links include hyperlinks and anchorlinks -- links that navigate the content.
|
|
32
|
+
isDynamicLink?: boolean;
|
|
28
33
|
hiddenClassList?: string[];
|
|
29
34
|
disabled?: boolean;
|
|
30
35
|
}
|
|
@@ -236,7 +241,7 @@ export class DeferredDOMNodeLink extends UI.Widget.Widget {
|
|
|
236
241
|
|
|
237
242
|
let linkifierInstance: Linkifier;
|
|
238
243
|
|
|
239
|
-
export class Linkifier
|
|
244
|
+
export class Linkifier {
|
|
240
245
|
static instance(opts: {
|
|
241
246
|
forceNew: boolean|null,
|
|
242
247
|
} = {forceNew: null}): Linkifier {
|
|
@@ -12,6 +12,7 @@ import * as Geometry from '../../models/geometry/geometry.js';
|
|
|
12
12
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
13
13
|
import * as Snackbars from '../../ui/components/snackbars/snackbars.js';
|
|
14
14
|
import type * as Switch from '../../ui/components/switch/switch.js';
|
|
15
|
+
import * as UIHelpers from '../../ui/helpers/helpers.js';
|
|
15
16
|
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
16
17
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
17
18
|
import {html, render} from '../../ui/lit/lit.js';
|
|
@@ -168,7 +169,7 @@ export const DEFAULT_VIEW: View = (input, _output, target): void => {
|
|
|
168
169
|
.title=${i18nString(UIStrings.learnMoreAccessibleText)}
|
|
169
170
|
.variant=${Buttons.Button.Variant.OUTLINED}
|
|
170
171
|
.jslogContext=${'learn-more'}
|
|
171
|
-
@click=${() =>
|
|
172
|
+
@click=${() => UIHelpers.openInNewTab(GDP_PROGRAM_URL as Platform.DevToolsPath.UrlString)}>${i18nString(UIStrings.learnMore)}</devtools-button>
|
|
172
173
|
<div class="right-buttons">
|
|
173
174
|
<devtools-button
|
|
174
175
|
.variant=${Buttons.Button.Variant.TONAL}
|
|
@@ -69,7 +69,7 @@ export class TypeToAllowDialog {
|
|
|
69
69
|
UI.UIUtils.createTextButton(i18nString(UIStrings.cancel), () => resolve(false), {jslogContext: 'cancel'});
|
|
70
70
|
|
|
71
71
|
const allowButton = UI.UIUtils.createTextButton(i18nString(UIStrings.allow), () => {
|
|
72
|
-
resolve(input.value === options.typePhrase);
|
|
72
|
+
resolve(input.value === options.typePhrase || input.value === `'${options.typePhrase}'`);
|
|
73
73
|
}, {jslogContext: 'confirm', variant: Buttons.Button.Variant.PRIMARY});
|
|
74
74
|
allowButton.disabled = true;
|
|
75
75
|
|
|
@@ -95,6 +95,7 @@ export class TypeToAllowDialog {
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
export {AiCodeCompletionTeaser} from './AiCodeCompletionTeaser.js';
|
|
98
|
+
export {AiCodeGenerationTeaser} from './AiCodeGenerationTeaser.js';
|
|
98
99
|
export {FreDialog} from './FreDialog.js';
|
|
99
100
|
export {GdpSignUpDialog} from './GdpSignUpDialog.js';
|
|
100
101
|
export {AiCodeCompletionDisclaimer} from './AiCodeCompletionDisclaimer.js';
|
|
@@ -448,7 +448,9 @@ export class ConsolePrompt extends Common.ObjectWrapper.eventMixin<EventTypes, t
|
|
|
448
448
|
}
|
|
449
449
|
|
|
450
450
|
private async handleEnter(forceEvaluate?: boolean): Promise<void> {
|
|
451
|
-
if (this.#selfXssWarningShown &&
|
|
451
|
+
if (this.#selfXssWarningShown &&
|
|
452
|
+
(this.text() === i18nString(UIStrings.allowPasting) ||
|
|
453
|
+
this.text() === `'${i18nString(UIStrings.allowPasting)}'`)) {
|
|
452
454
|
Common.Console.Console.instance().log(this.text());
|
|
453
455
|
this.editor.dispatch({
|
|
454
456
|
changes: {from: 0, to: this.editor.state.doc.length},
|
|
@@ -215,8 +215,7 @@ export class ConsoleViewport {
|
|
|
215
215
|
private updateFocusedItem(focusLastChild?: boolean): void {
|
|
216
216
|
const selectedElement = this.renderedElementAt(this.virtualSelectedIndex);
|
|
217
217
|
const changed = this.lastSelectedElement !== selectedElement;
|
|
218
|
-
const containerHasFocus =
|
|
219
|
-
this.#contentElement === Platform.DOMUtilities.deepActiveElement(this.element.ownerDocument);
|
|
218
|
+
const containerHasFocus = this.#contentElement === UI.DOMUtilities.deepActiveElement(this.element.ownerDocument);
|
|
220
219
|
if (this.lastSelectedElement && changed) {
|
|
221
220
|
this.lastSelectedElement.classList.remove('console-selected');
|
|
222
221
|
}
|
|
@@ -124,11 +124,11 @@ function getTooltipFromGenericIssue(errorType: Protocol.Audits.GenericIssueError
|
|
|
124
124
|
return i18nString(UIStrings.formAutocompleteAttributeEmptyError);
|
|
125
125
|
case Protocol.Audits.GenericIssueErrorType.FormEmptyIdAndNameAttributesForInputError:
|
|
126
126
|
return i18nString(UIStrings.formEmptyIdAndNameAttributesForInputError);
|
|
127
|
-
case Protocol.Audits.GenericIssueErrorType.
|
|
127
|
+
case Protocol.Audits.GenericIssueErrorType.FormAriaLabelledByToNonExistingIdError:
|
|
128
128
|
return i18nString(UIStrings.formAriaLabelledByToNonExistingId);
|
|
129
129
|
case Protocol.Audits.GenericIssueErrorType.FormInputAssignedAutocompleteValueToIdOrNameAttributeError:
|
|
130
130
|
return i18nString(UIStrings.formInputAssignedAutocompleteValueToIdOrNameAttributeError);
|
|
131
|
-
case Protocol.Audits.GenericIssueErrorType.
|
|
131
|
+
case Protocol.Audits.GenericIssueErrorType.FormLabelHasNeitherForNorNestedInputError:
|
|
132
132
|
return i18nString(UIStrings.formLabelHasNeitherForNorNestedInput);
|
|
133
133
|
case Protocol.Audits.GenericIssueErrorType.FormLabelForMatchesNonExistingIdError:
|
|
134
134
|
return i18nString(UIStrings.formLabelForMatchesNonExistingIdError);
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
6
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
7
7
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
8
|
+
import * as UIHelpers from '../../ui/helpers/helpers.js';
|
|
8
9
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
9
10
|
import {html, render, type TemplateResult} from '../../ui/lit/lit.js';
|
|
10
11
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
@@ -108,7 +109,7 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
|
108
109
|
jslog=${VisualLogging.toggle('emulate-page-focus').track({change: true})} ${bindToSetting('emulate-page-focus')}>${
|
|
109
110
|
i18nString(UIStrings.emulateFocusedPage)}</devtools-checkbox>
|
|
110
111
|
<devtools-button
|
|
111
|
-
@click=${() =>
|
|
112
|
+
@click=${() => UIHelpers.openInNewTab('https://developer.chrome.com/docs/devtools/rendering/apply-effects#emulate_a_focused_page')}
|
|
112
113
|
.data=${{
|
|
113
114
|
variant: Buttons.Button.Variant.ICON,
|
|
114
115
|
iconName: 'help',
|
|
@@ -839,7 +839,7 @@ export class StylePropertiesSection {
|
|
|
839
839
|
|
|
840
840
|
this.#ancestorRuleListElement.prepend(atRuleElement);
|
|
841
841
|
this.#ancestorClosingBracesElement.prepend(this.indentElement(this.createClosingBrace(), 0));
|
|
842
|
-
this.nestingLevel
|
|
842
|
+
this.nestingLevel = 1;
|
|
843
843
|
}
|
|
844
844
|
}
|
|
845
845
|
|
|
@@ -1610,9 +1610,8 @@ export class LengthRenderer extends rendererBase(SDK.CSSPropertyParserMatchers.L
|
|
|
1610
1610
|
valueElement.tabIndex = -1;
|
|
1611
1611
|
valueElement.textContent = match.text;
|
|
1612
1612
|
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
}
|
|
1613
|
+
const tooltip = this.#getTooltip(valueElement, match, context);
|
|
1614
|
+
|
|
1616
1615
|
const evaluation = context.tracing?.applyEvaluation([], () => {
|
|
1617
1616
|
return {
|
|
1618
1617
|
placeholder: [valueElement],
|
|
@@ -1620,7 +1619,11 @@ export class LengthRenderer extends rendererBase(SDK.CSSPropertyParserMatchers.L
|
|
|
1620
1619
|
};
|
|
1621
1620
|
});
|
|
1622
1621
|
|
|
1623
|
-
|
|
1622
|
+
if (evaluation) {
|
|
1623
|
+
return evaluation;
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
return tooltip ? [valueElement, tooltip] : [valueElement];
|
|
1624
1627
|
}
|
|
1625
1628
|
|
|
1626
1629
|
async #applyEvaluation(
|
|
@@ -1635,25 +1638,26 @@ export class LengthRenderer extends rendererBase(SDK.CSSPropertyParserMatchers.L
|
|
|
1635
1638
|
return false;
|
|
1636
1639
|
}
|
|
1637
1640
|
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
const pixelValue = await resolveValues(this.#stylesPane, this.#propertyName, match, context, match.text);
|
|
1641
|
-
if (!pixelValue) {
|
|
1642
|
-
return;
|
|
1643
|
-
}
|
|
1644
|
-
|
|
1641
|
+
#getTooltip(valueElement: HTMLElement, match: SDK.CSSPropertyParser.Match, context: RenderingContext):
|
|
1642
|
+
Tooltips.Tooltip.Tooltip|undefined {
|
|
1645
1643
|
const tooltipId = this.#treeElement?.getTooltipId('length');
|
|
1646
|
-
if (tooltipId) {
|
|
1647
|
-
|
|
1648
|
-
const tooltip = new Tooltips.Tooltip.Tooltip(
|
|
1649
|
-
{anchor: valueElement, variant: 'rich', id: tooltipId, jslogContext: 'length-popover'});
|
|
1650
|
-
tooltip.appendChild(document.createTextNode(pixelValue[0]));
|
|
1651
|
-
valueElement.insertAdjacentElement('afterend', tooltip);
|
|
1644
|
+
if (!tooltipId) {
|
|
1645
|
+
return undefined;
|
|
1652
1646
|
}
|
|
1653
|
-
|
|
1647
|
+
valueElement.setAttribute('aria-details', tooltipId);
|
|
1648
|
+
const tooltip = new Tooltips.Tooltip.Tooltip(
|
|
1649
|
+
{anchor: valueElement, variant: 'rich', id: tooltipId, jslogContext: 'length-popover'});
|
|
1650
|
+
tooltip.addEventListener('beforetoggle', () => this.getTooltipValue(tooltip, match, context), {once: true});
|
|
1651
|
+
return tooltip;
|
|
1654
1652
|
}
|
|
1655
1653
|
|
|
1656
|
-
|
|
1654
|
+
async getTooltipValue(
|
|
1655
|
+
tooltip: Tooltips.Tooltip.Tooltip, match: SDK.CSSPropertyParser.Match, context: RenderingContext): Promise<void> {
|
|
1656
|
+
const pixelValue = await resolveValues(this.#stylesPane, this.#propertyName, match, context, match.text);
|
|
1657
|
+
if (!pixelValue) {
|
|
1658
|
+
return;
|
|
1659
|
+
}
|
|
1660
|
+
tooltip.appendChild(document.createTextNode(pixelValue[0]));
|
|
1657
1661
|
}
|
|
1658
1662
|
}
|
|
1659
1663
|
|
|
@@ -370,7 +370,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
|
|
|
370
370
|
}
|
|
371
371
|
|
|
372
372
|
private sectionsContainerKeyDown(event: Event): void {
|
|
373
|
-
const activeElement =
|
|
373
|
+
const activeElement = UI.DOMUtilities.deepActiveElement(this.sectionsContainer.contentElement.ownerDocument);
|
|
374
374
|
if (!activeElement) {
|
|
375
375
|
return;
|
|
376
376
|
}
|
|
@@ -7,7 +7,6 @@ import * as i18n from '../../core/i18n/i18n.js';
|
|
|
7
7
|
import * as Root from '../../core/root/root.js';
|
|
8
8
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
9
9
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
10
|
-
import type * as PanelsCommon from '../common/common.js';
|
|
11
10
|
|
|
12
11
|
import type * as Elements from './elements.js';
|
|
13
12
|
|
|
@@ -178,14 +177,6 @@ function maybeRetrieveContextTypes<T = unknown>(getClassCallBack: (elementsModul
|
|
|
178
177
|
return getClassCallBack(loadedElementsModule);
|
|
179
178
|
}
|
|
180
179
|
|
|
181
|
-
let loadedPanelsCommonModule: (typeof PanelsCommon|undefined);
|
|
182
|
-
async function loadPanelsCommonModule(): Promise<typeof PanelsCommon> {
|
|
183
|
-
if (!loadedPanelsCommonModule) {
|
|
184
|
-
loadedPanelsCommonModule = await import('../common/common.js');
|
|
185
|
-
}
|
|
186
|
-
return loadedPanelsCommonModule;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
180
|
UI.ViewManager.registerViewExtension({
|
|
190
181
|
location: UI.ViewManager.ViewLocationValues.PANEL,
|
|
191
182
|
id: 'elements',
|
|
@@ -463,6 +454,7 @@ UI.ActionRegistration.registerActionExtension({
|
|
|
463
454
|
platform: UI.ActionRegistration.Platforms.MAC,
|
|
464
455
|
},
|
|
465
456
|
],
|
|
457
|
+
configurableBindings: false,
|
|
466
458
|
});
|
|
467
459
|
|
|
468
460
|
UI.ActionRegistration.registerActionExtension({
|
|
@@ -698,16 +690,3 @@ UI.UIUtils.registerRenderer({
|
|
|
698
690
|
return Elements.ElementsTreeOutlineRenderer.Renderer.instance();
|
|
699
691
|
},
|
|
700
692
|
});
|
|
701
|
-
|
|
702
|
-
Common.Linkifier.registerLinkifier({
|
|
703
|
-
contextTypes() {
|
|
704
|
-
return [
|
|
705
|
-
SDK.DOMModel.DOMNode,
|
|
706
|
-
SDK.DOMModel.DeferredDOMNode,
|
|
707
|
-
];
|
|
708
|
-
},
|
|
709
|
-
async loadLinkifier() {
|
|
710
|
-
const PanelsCommon = await loadPanelsCommonModule();
|
|
711
|
-
return PanelsCommon.DOMLinkifier.Linkifier.instance();
|
|
712
|
-
},
|
|
713
|
-
});
|