chrome-devtools-frontend 1.0.1597448 → 1.0.1598808
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/docs/ui_engineering.md +6 -6
- package/front_end/core/host/AidaClient.ts +6 -0
- package/front_end/core/sdk/CPUThrottlingManager.ts +5 -1
- package/front_end/core/sdk/CSSMatchedStyles.ts +2 -0
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +28 -0
- package/front_end/models/ai_assistance/AiConversation.ts +40 -22
- package/front_end/models/ai_assistance/ChangeManager.ts +16 -0
- package/front_end/models/ai_assistance/ExtensionScope.ts +11 -3
- package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +127 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +35 -6
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +1 -1
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +11 -8
- package/front_end/models/ai_assistance/agents/ConversationSummaryAgent.ts +109 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +30 -1
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +34 -4
- package/front_end/models/ai_assistance/ai_assistance.ts +4 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +27 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +21 -0
- package/front_end/models/trace/Processor.ts +1 -0
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +33 -0
- package/front_end/models/trace/insights/CharacterSet.ts +172 -0
- package/front_end/models/trace/insights/Models.ts +1 -0
- package/front_end/models/trace/insights/types.ts +1 -0
- package/front_end/models/trace/types/TraceEvents.ts +17 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +22 -12
- package/front_end/panels/ai_assistance/PatchWidget.ts +1 -1
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +131 -63
- package/front_end/panels/ai_assistance/components/ChatView.ts +1 -1
- package/front_end/panels/ai_assistance/components/MarkdownRendererWithCodeBlock.ts +18 -9
- package/front_end/panels/ai_assistance/components/chatMessage.css +11 -0
- package/front_end/panels/application/AppManifestView.ts +4 -5
- package/front_end/panels/application/CookieItemsView.ts +9 -15
- package/front_end/panels/application/DeviceBoundSessionsView.ts +20 -26
- package/front_end/panels/application/FrameDetailsView.ts +10 -16
- package/front_end/panels/application/OriginTrialTreeView.ts +2 -3
- package/front_end/panels/application/ReportingApiView.ts +14 -18
- package/front_end/panels/application/components/BackForwardCacheView.ts +3 -3
- package/front_end/panels/application/preloading/PreloadingView.ts +18 -3
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +2 -3
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +3 -2
- package/front_end/panels/changes/ChangesView.ts +13 -15
- package/front_end/panels/console/ConsolePinPane.ts +3 -3
- package/front_end/panels/coverage/CoverageListView.ts +1 -1
- package/front_end/panels/coverage/CoverageView.ts +4 -4
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +3 -3
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +11 -15
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +3 -5
- package/front_end/panels/elements/ElementsTreeOutline.ts +34 -8
- package/front_end/panels/elements/EventListenersWidget.ts +3 -2
- package/front_end/panels/elements/StandaloneStylesContainer.ts +21 -6
- package/front_end/panels/elements/StylePropertiesSection.ts +129 -1
- package/front_end/panels/elements/StylePropertyHighlighter.ts +3 -0
- package/front_end/panels/elements/StylePropertyTreeElement.ts +49 -4
- package/front_end/panels/elements/stylesSidebarPane.css +34 -0
- package/front_end/panels/issues/AffectedSelectivePermissionsInterventionView.ts +3 -5
- package/front_end/panels/layer_viewer/LayerDetailsView.ts +2 -1
- package/front_end/panels/layer_viewer/Layers3DView.ts +5 -4
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +5 -6
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +6 -11
- package/front_end/panels/network/RequestConditionsDrawer.ts +4 -4
- package/front_end/panels/network/RequestCookiesView.ts +5 -6
- package/front_end/panels/network/RequestHeadersView.ts +4 -4
- package/front_end/panels/network/RequestInitiatorView.ts +7 -5
- package/front_end/panels/network/RequestResponseView.ts +10 -15
- package/front_end/panels/performance_monitor/PerformanceMonitor.ts +2 -2
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +5 -6
- package/front_end/panels/recorder/components/RecordingView.ts +31 -36
- package/front_end/panels/recorder/components/StepEditor.ts +6 -7
- package/front_end/panels/recorder/components/StepView.ts +2 -1
- package/front_end/panels/search/SearchView.ts +3 -4
- package/front_end/panels/settings/WorkspaceSettingsTab.ts +2 -5
- package/front_end/panels/timeline/TimelineDetailsView.ts +8 -6
- package/front_end/panels/timeline/components/LiveMetricsView.ts +5 -8
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +2 -7
- package/front_end/panels/timeline/components/insights/Cache.ts +8 -10
- package/front_end/panels/timeline/components/insights/CharacterSet.ts +34 -0
- package/front_end/panels/timeline/components/insights/DOMSize.ts +16 -20
- package/front_end/panels/timeline/components/insights/DocumentLatency.ts +2 -6
- package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +3 -4
- package/front_end/panels/timeline/components/insights/EventRef.ts +2 -2
- package/front_end/panels/timeline/components/insights/FontDisplay.ts +3 -4
- package/front_end/panels/timeline/components/insights/ForcedReflow.ts +5 -7
- package/front_end/panels/timeline/components/insights/INPBreakdown.ts +3 -4
- package/front_end/panels/timeline/components/insights/ImageDelivery.ts +3 -4
- package/front_end/panels/timeline/components/insights/ImageRef.ts +2 -4
- package/front_end/panels/timeline/components/insights/InsightRenderer.ts +2 -0
- package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +5 -7
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +2 -4
- package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +3 -4
- package/front_end/panels/timeline/components/insights/ModernHTTP.ts +3 -4
- package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +7 -11
- package/front_end/panels/timeline/components/insights/NodeLink.ts +2 -4
- package/front_end/panels/timeline/components/insights/RenderBlocking.ts +3 -4
- package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +7 -10
- package/front_end/panels/timeline/components/insights/ThirdParties.ts +5 -7
- package/front_end/panels/timeline/components/insights/insights.ts +2 -0
- package/front_end/panels/web_audio/WebAudioView.ts +3 -4
- package/front_end/panels/webauthn/WebauthnPane.ts +2 -2
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js +13 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/third_party/mitt/mitt.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/third_party/parsel-js/parsel-js.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/third_party/rxjs/rxjs.js +446 -446
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +166 -167
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js +12 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt/mitt.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js/parsel-js.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs/rxjs.js +97 -97
- package/front_end/third_party/puppeteer/package/package.json +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Realm.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/bidi/util.ts +17 -0
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/ui/components/settings/SettingCheckbox.ts +2 -0
- package/front_end/ui/legacy/Widget.ts +42 -6
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +3 -3
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +8 -8
- package/front_end/ui/visual_logging/Debugging.ts +0 -32
- package/front_end/ui/visual_logging/KnownContextValues.ts +2 -0
- package/package.json +1 -1
|
@@ -41,7 +41,7 @@ const UIStrings = {
|
|
|
41
41
|
const str_ =
|
|
42
42
|
i18n.i18n.registerUIStrings('panels/linear_memory_inspector/components/LinearMemoryInspector.ts', UIStrings);
|
|
43
43
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
44
|
-
const {
|
|
44
|
+
const {widget} = UI.Widget;
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* If the LinearMemoryInspector only receives a portion
|
|
@@ -162,13 +162,12 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: Record<string, unknown>,
|
|
|
162
162
|
@addressinputchanged=${input.onAddressChange}
|
|
163
163
|
@pagenavigation=${input.onNavigatePage}
|
|
164
164
|
@historynavigation=${input.onNavigateHistory}></devtools-linear-memory-inspector-navigator>
|
|
165
|
-
|
|
165
|
+
${widget(LinearMemoryHighlightChipList, {
|
|
166
166
|
highlightInfos: highlightedMemoryAreas,
|
|
167
167
|
focusedMemoryHighlight,
|
|
168
168
|
jumpToAddress: (address: number) => input.onJumpToAddress(address),
|
|
169
169
|
deleteHighlight: input.onDeleteMemoryHighlight,
|
|
170
|
-
})}
|
|
171
|
-
</devtools-widget>
|
|
170
|
+
})}
|
|
172
171
|
<devtools-linear-memory-inspector-viewer
|
|
173
172
|
.data=${
|
|
174
173
|
{
|
|
@@ -186,7 +185,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: Record<string, unknown>,
|
|
|
186
185
|
${
|
|
187
186
|
input.hideValueInspector ? nothing : html`
|
|
188
187
|
<div class="value-interpreter">
|
|
189
|
-
|
|
188
|
+
${widget(LinearMemoryValueInterpreter, {
|
|
190
189
|
buffer: input.memory
|
|
191
190
|
.slice(
|
|
192
191
|
input.address - input.memoryOffset,
|
|
@@ -201,7 +200,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: Record<string, unknown>,
|
|
|
201
200
|
onJumpToAddressClicked: input.onJumpToAddress,
|
|
202
201
|
onValueTypeToggled: input.onValueTypeToggled,
|
|
203
202
|
onEndiannessChanged: input.onEndiannessChanged,
|
|
204
|
-
})}
|
|
203
|
+
})}
|
|
205
204
|
</div>`}
|
|
206
205
|
`,
|
|
207
206
|
target);
|
|
@@ -32,7 +32,7 @@ const str_ =
|
|
|
32
32
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
33
33
|
|
|
34
34
|
const {render, html} = Lit;
|
|
35
|
-
const {
|
|
35
|
+
const {widget} = UI.Widget;
|
|
36
36
|
|
|
37
37
|
export interface ViewInput {
|
|
38
38
|
endianness: Endianness;
|
|
@@ -89,14 +89,10 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLE
|
|
|
89
89
|
</div>
|
|
90
90
|
<span class="divider"></span>
|
|
91
91
|
<div>
|
|
92
|
-
${input.showSettings
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
})}>
|
|
97
|
-
</devtools-widget>` :
|
|
98
|
-
html`
|
|
99
|
-
<devtools-widget .widgetConfig=${widgetConfig(ValueInterpreterDisplay, {
|
|
92
|
+
${input.showSettings
|
|
93
|
+
? widget(ValueInterpreterSettings, {
|
|
94
|
+
valueTypes: input.valueTypes, onToggle: input.onValueTypeToggled})
|
|
95
|
+
: widget(ValueInterpreterDisplay, {
|
|
100
96
|
buffer: input.buffer,
|
|
101
97
|
valueTypes: input.valueTypes,
|
|
102
98
|
endianness: input.endianness,
|
|
@@ -104,8 +100,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLE
|
|
|
104
100
|
memoryLength: input.memoryLength,
|
|
105
101
|
onValueTypeModeChange: input.onValueTypeModeChange,
|
|
106
102
|
onJumpToAddressClicked: input.onJumpToAddressClicked,
|
|
107
|
-
})}
|
|
108
|
-
</devtools-widget>`}
|
|
103
|
+
})}
|
|
109
104
|
</div>
|
|
110
105
|
</div>
|
|
111
106
|
`,
|
|
@@ -24,7 +24,7 @@ import * as PanelUtils from '../utils/utils.js';
|
|
|
24
24
|
import requestConditionsDrawerStyles from './requestConditionsDrawer.css.js';
|
|
25
25
|
|
|
26
26
|
const {ref, live} = Directives;
|
|
27
|
-
const {
|
|
27
|
+
const {widget} = UI.Widget;
|
|
28
28
|
|
|
29
29
|
const UIStrings = {
|
|
30
30
|
/**
|
|
@@ -175,7 +175,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
175
175
|
${i18nString(UIStrings.addRule)}
|
|
176
176
|
</devtools-button>
|
|
177
177
|
</div>
|
|
178
|
-
<devtools-widget
|
|
178
|
+
<devtools-widget ${widget(UI.Widget.VBox)}>
|
|
179
179
|
${input.list.element}
|
|
180
180
|
</devtools-widget>
|
|
181
181
|
`,
|
|
@@ -271,7 +271,7 @@ function renderItem(
|
|
|
271
271
|
<devtools-widget
|
|
272
272
|
class=conditions-selector
|
|
273
273
|
title=${i18nString(UIStrings.requestConditionsLabel)}
|
|
274
|
-
|
|
274
|
+
${widget(
|
|
275
275
|
MobileThrottling.NetworkThrottlingSelector.NetworkThrottlingSelectorWidget, {
|
|
276
276
|
variant:
|
|
277
277
|
MobileThrottling.NetworkThrottlingSelector.NetworkThrottlingSelect.Variant.INDIVIDUAL_REQUEST_CONDITIONS,
|
|
@@ -282,7 +282,7 @@ function renderItem(
|
|
|
282
282
|
})}></devtools-widget>
|
|
283
283
|
<devtools-widget
|
|
284
284
|
?disabled=${!editable || !originalOrUpgradedURLPattern}
|
|
285
|
-
|
|
285
|
+
${widget(AffectedCountWidget, {condition, lookUpRequestCount})}></devtools-widget>`;
|
|
286
286
|
// clang-format on
|
|
287
287
|
}
|
|
288
288
|
|
|
@@ -14,6 +14,7 @@ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
|
14
14
|
|
|
15
15
|
import requestCookiesViewStyles from './requestCookiesView.css.js';
|
|
16
16
|
const {render, html} = Lit;
|
|
17
|
+
const {widget} = UI.Widget;
|
|
17
18
|
|
|
18
19
|
const UIStrings = {
|
|
19
20
|
/**
|
|
@@ -93,10 +94,8 @@ export const DEFAULT_VIEW: ViewFunction = (input, _output, target) => {
|
|
|
93
94
|
<style>${requestCookiesViewStyles}</style>
|
|
94
95
|
<style>${UI.inspectorCommonStyles}</style>
|
|
95
96
|
<div class="request-cookies-view">
|
|
96
|
-
${input.gotCookies ? Lit.nothing :
|
|
97
|
-
|
|
98
|
-
header: i18nString(UIStrings.thisRequestHasNoCookies)})}></devtools-widget>
|
|
99
|
-
`}
|
|
97
|
+
${input.gotCookies ? Lit.nothing : widget(UI.EmptyWidget.EmptyWidget, {
|
|
98
|
+
header: i18nString(UIStrings.thisRequestHasNoCookies)})}
|
|
100
99
|
|
|
101
100
|
<div class=${input.requestCookies.cookies.length || input.hasBlockedCookies ? '' : 'hidden'}>
|
|
102
101
|
<span class="request-cookies-title" title=${i18nString(UIStrings.cookiesThatWereSentToTheServerIn)}>
|
|
@@ -114,7 +113,7 @@ export const DEFAULT_VIEW: ViewFunction = (input, _output, target) => {
|
|
|
114
113
|
</div>
|
|
115
114
|
|
|
116
115
|
${input.requestCookies.cookies.length > 0 ? html`
|
|
117
|
-
<devtools-widget
|
|
116
|
+
<devtools-widget ${widget(CookieTable.CookiesTable.CookiesTable, {
|
|
118
117
|
cookiesData: input.requestCookies,
|
|
119
118
|
inline: true
|
|
120
119
|
})} class="cookie-table cookies-panel-item"></devtools-widget>
|
|
@@ -132,7 +131,7 @@ export const DEFAULT_VIEW: ViewFunction = (input, _output, target) => {
|
|
|
132
131
|
</div>
|
|
133
132
|
|
|
134
133
|
${input.responseCookies.cookies.length ? html`
|
|
135
|
-
<devtools-widget
|
|
134
|
+
<devtools-widget ${widget(CookieTable.CookiesTable.CookiesTable, {
|
|
136
135
|
cookiesData: input.responseCookies,
|
|
137
136
|
inline: true })} class="cookie-table cookies-panel-item"></devtools-widget>
|
|
138
137
|
` : Lit.nothing}
|
|
@@ -21,6 +21,7 @@ import * as NetworkComponents from './components/components.js';
|
|
|
21
21
|
import {ShowMoreDetailsWidget} from './ShowMoreDetailsWidget.js';
|
|
22
22
|
|
|
23
23
|
const {render, html} = Lit;
|
|
24
|
+
const {widget} = UI.Widget;
|
|
24
25
|
|
|
25
26
|
const UIStrings = {
|
|
26
27
|
/**
|
|
@@ -210,8 +211,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
210
211
|
contents: (input.showRequestHeadersText && requestHeadersText) ?
|
|
211
212
|
renderRawHeaders(requestHeadersText) :
|
|
212
213
|
html`
|
|
213
|
-
<devtools-widget .
|
|
214
|
-
UI.Widget.widgetConfig(NetworkComponents.RequestHeaderSection.RequestHeaderSection, {
|
|
214
|
+
<devtools-widget ${widget(NetworkComponents.RequestHeaderSection.RequestHeaderSection, {
|
|
215
215
|
request: input.request,
|
|
216
216
|
toReveal: input.toReveal,
|
|
217
217
|
})} jslog=${VisualLogging.section('request-headers')}></devtools-widget>`
|
|
@@ -392,8 +392,8 @@ function renderHeaderOverridesLink(input: ViewInput): Lit.LitTemplate {
|
|
|
392
392
|
}
|
|
393
393
|
|
|
394
394
|
function renderRawHeaders(text: string): Lit.TemplateResult {
|
|
395
|
-
return html`<div class="row raw-headers-row"><devtools-widget class=raw-headers
|
|
396
|
-
|
|
395
|
+
return html`<div class="row raw-headers-row"><devtools-widget class=raw-headers
|
|
396
|
+
${widget(ShowMoreDetailsWidget, {text})}></devtools-widget></div>`;
|
|
397
397
|
}
|
|
398
398
|
|
|
399
399
|
function renderGeneralRow(
|
|
@@ -16,7 +16,7 @@ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
|
16
16
|
import requestInitiatorViewStyles from './requestInitiatorView.css.js';
|
|
17
17
|
import requestInitiatorViewTreeStyles from './requestInitiatorViewTree.css.js';
|
|
18
18
|
|
|
19
|
-
const {
|
|
19
|
+
const {widget} = UI.Widget;
|
|
20
20
|
|
|
21
21
|
const UIStrings = {
|
|
22
22
|
/**
|
|
@@ -59,19 +59,21 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLE
|
|
|
59
59
|
if (!input.stackTrace) {
|
|
60
60
|
return html`${nothing}`;
|
|
61
61
|
}
|
|
62
|
+
// clang-format off
|
|
62
63
|
return html`
|
|
63
64
|
<li role="treeitem" class="request-initiator-view-section-title" aria-expanded="true" open>
|
|
64
65
|
${i18nString(UIStrings.requestCallStack)}
|
|
65
66
|
<ul role="group">
|
|
66
67
|
<li role="treeitem">
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
${widget(Components.JSPresentationUtils.StackTracePreviewContent, {
|
|
69
|
+
options: {tabStops: true},
|
|
70
|
+
stackTrace: input.stackTrace,
|
|
71
|
+
})}
|
|
71
72
|
</li>
|
|
72
73
|
</ul>
|
|
73
74
|
</li>
|
|
74
75
|
`;
|
|
76
|
+
// clang-format on
|
|
75
77
|
};
|
|
76
78
|
|
|
77
79
|
const renderInitiatorNodes =
|
|
@@ -43,43 +43,38 @@ export interface ViewOutput {
|
|
|
43
43
|
revealPosition: (position: SourceFrame.SourceFrame.RevealPosition) => Promise<void>;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
const
|
|
47
|
-
const widgetRef = UI.Widget.widgetRef;
|
|
46
|
+
const {widgetRef, widget} = UI.Widget;
|
|
48
47
|
type View = (input: ViewInput, output: ViewOutput, target: HTMLElement) => void;
|
|
49
48
|
|
|
50
49
|
export const DEFAULT_VIEW: View = (input: ViewInput, output: ViewOutput, target: HTMLElement): void => {
|
|
51
|
-
let
|
|
50
|
+
let widgetTemplate;
|
|
52
51
|
if (TextUtils.StreamingContentData.isError(input.contentData)) {
|
|
53
52
|
// clang-format off
|
|
54
|
-
|
|
55
|
-
.widgetConfig=${widgetConfig(element => new UI.EmptyWidget.EmptyWidget(
|
|
53
|
+
widgetTemplate = html`${widget(element => new UI.EmptyWidget.EmptyWidget(
|
|
56
54
|
i18nString(UIStrings.failedToLoadResponseData), (input.contentData as {error: string}).error,
|
|
57
|
-
element))}
|
|
55
|
+
element))}`;
|
|
58
56
|
// clang-format on
|
|
59
57
|
} else if (input.request.statusCode === 204 || input.request.failed) {
|
|
60
58
|
// clang-format off
|
|
61
|
-
|
|
62
|
-
.widgetConfig=${widgetConfig(element => new UI.EmptyWidget.EmptyWidget(
|
|
59
|
+
widgetTemplate = html`${widget(element => new UI.EmptyWidget.EmptyWidget(
|
|
63
60
|
i18nString(UIStrings.noPreview), i18nString(UIStrings.thisRequestHasNoResponseData),
|
|
64
|
-
element))}
|
|
61
|
+
element))}`;
|
|
65
62
|
// clang-format on
|
|
66
63
|
} else if (input.renderAsText) {
|
|
67
64
|
// clang-format off
|
|
68
|
-
|
|
69
|
-
.widgetConfig=${widgetConfig(element => new SourceFrame.ResourceSourceFrame.SearchableContainer(
|
|
65
|
+
widgetTemplate = html`<devtools-widget ${widget(element => new SourceFrame.ResourceSourceFrame.SearchableContainer(
|
|
70
66
|
input.request, input.mimeType, element))}
|
|
71
67
|
${widgetRef(SourceFrame.ResourceSourceFrame.SearchableContainer, widget => {output.revealPosition = widget.revealPosition.bind(widget);})}></devtools-widget>`;
|
|
72
68
|
// clang-format on
|
|
73
69
|
} else {
|
|
74
70
|
// clang-format off
|
|
75
|
-
|
|
76
|
-
.widgetConfig=${widgetConfig(element => new BinaryResourceView(
|
|
71
|
+
widgetTemplate = html`${widget(element => new BinaryResourceView(
|
|
77
72
|
input.contentData as TextUtils.StreamingContentData.StreamingContentData, input.request.url(),
|
|
78
|
-
input.request.resourceType(), element))}
|
|
73
|
+
input.request.resourceType(), element))}`;
|
|
79
74
|
// clang-format on
|
|
80
75
|
}
|
|
81
76
|
|
|
82
|
-
render(
|
|
77
|
+
render(widgetTemplate, target);
|
|
83
78
|
};
|
|
84
79
|
|
|
85
80
|
export class RequestResponseView extends UI.Widget.VBox {
|
|
@@ -58,7 +58,7 @@ const UIStrings = {
|
|
|
58
58
|
} as const;
|
|
59
59
|
const str_ = i18n.i18n.registerUIStrings('panels/performance_monitor/PerformanceMonitor.ts', UIStrings);
|
|
60
60
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
61
|
-
const {
|
|
61
|
+
const {widget} = UI.Widget;
|
|
62
62
|
const {classMap, ref} = Directives;
|
|
63
63
|
|
|
64
64
|
interface PerformanceMonitorInput {
|
|
@@ -81,7 +81,7 @@ type PerformanceMonitorView = (input: PerformanceMonitorInput, output: Performan
|
|
|
81
81
|
const DEFAULT_VIEW: PerformanceMonitorView = (input, output, target) => {
|
|
82
82
|
// clang-format off
|
|
83
83
|
render(html`
|
|
84
|
-
<devtools-widget
|
|
84
|
+
<devtools-widget ${widget(ControlPane, {
|
|
85
85
|
onMetricChanged: input.onMetricChanged,
|
|
86
86
|
chartsInfo: input.chartsInfo,
|
|
87
87
|
metrics: input.metrics
|
|
@@ -22,7 +22,7 @@ import {Events as JSONEditorEvents, JSONEditor, type Parameter} from './JSONEdit
|
|
|
22
22
|
import protocolMonitorStyles from './protocolMonitor.css.js';
|
|
23
23
|
|
|
24
24
|
const {styleMap} = Directives;
|
|
25
|
-
const {
|
|
25
|
+
const {widget, widgetRef} = UI.Widget;
|
|
26
26
|
const UIStrings = {
|
|
27
27
|
/**
|
|
28
28
|
* @description Text for one or a group of functions
|
|
@@ -303,7 +303,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
303
303
|
</tr>`)}
|
|
304
304
|
</table>
|
|
305
305
|
</devtools-data-grid>
|
|
306
|
-
<devtools-widget
|
|
306
|
+
<devtools-widget ${widget(InfoWidget, {
|
|
307
307
|
request: input.selectedMessage?.params,
|
|
308
308
|
response: input.selectedMessage?.result || input.selectedMessage?.error,
|
|
309
309
|
type: !input.selectedMessage ? undefined :
|
|
@@ -349,7 +349,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
349
349
|
</devtools-toolbar>
|
|
350
350
|
</div>
|
|
351
351
|
<devtools-widget slot="sidebar"
|
|
352
|
-
|
|
352
|
+
${widget(JSONEditor, { metadataByCommand, typesByName, enumsByName})}
|
|
353
353
|
${widgetRef(JSONEditor, e => {output.editorWidget = e;})}>
|
|
354
354
|
</devtools-widget>
|
|
355
355
|
</devtools-split-view>`,
|
|
@@ -675,7 +675,7 @@ type InfoWidgetView = (input: InfoWidgetViewInput, output: undefined, target: HT
|
|
|
675
675
|
|
|
676
676
|
const INFO_WIDGET_VIEW: InfoWidgetView = (input, _output, target) => {
|
|
677
677
|
// clang-format off
|
|
678
|
-
render(
|
|
678
|
+
render(widget(UI.TabbedPane.TabbedPane, {
|
|
679
679
|
tabs: [
|
|
680
680
|
{
|
|
681
681
|
id: 'request',
|
|
@@ -696,8 +696,7 @@ const INFO_WIDGET_VIEW: InfoWidgetView = (input, _output, target) => {
|
|
|
696
696
|
SourceFrame.JSONView.JSONView.createViewSync(input.response || null),
|
|
697
697
|
selected: input.selectedTab === 'response',
|
|
698
698
|
}
|
|
699
|
-
]})
|
|
700
|
-
</devtools-widget>`, target);
|
|
699
|
+
]}), target);
|
|
701
700
|
// clang-format on
|
|
702
701
|
};
|
|
703
702
|
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
} from './StepView.js';
|
|
38
38
|
|
|
39
39
|
const {html} = Lit;
|
|
40
|
+
const {widget} = UI.Widget;
|
|
40
41
|
|
|
41
42
|
const UIStrings = {
|
|
42
43
|
/**
|
|
@@ -525,15 +526,12 @@ function renderReplayOrAbortButton(input: ViewInput): Lit.LitTemplate {
|
|
|
525
526
|
}
|
|
526
527
|
|
|
527
528
|
// clang-format off
|
|
528
|
-
return html
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
})}
|
|
535
|
-
>
|
|
536
|
-
</devtools-widget>`;
|
|
529
|
+
return html`${widget(ReplaySection, {
|
|
530
|
+
settings: input.recorderSettings,
|
|
531
|
+
replayExtensions: input.replayExtensions,
|
|
532
|
+
onStartReplay: input.onTogglePlaying,
|
|
533
|
+
disabled: input.replayState.isPlaying,
|
|
534
|
+
})}`;
|
|
537
535
|
// clang-format on
|
|
538
536
|
}
|
|
539
537
|
|
|
@@ -571,32 +569,29 @@ function renderSections(input: ViewInput): Lit.LitTemplate {
|
|
|
571
569
|
</div>
|
|
572
570
|
<div class="content">
|
|
573
571
|
<div class="steps">
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
input.
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
})}
|
|
598
|
-
>
|
|
599
|
-
</devtools-widget>
|
|
572
|
+
${widget(StepView, {
|
|
573
|
+
section,
|
|
574
|
+
state: input.getSectionState(section),
|
|
575
|
+
isStartOfGroup: true,
|
|
576
|
+
isEndOfGroup: section.steps.length === 0,
|
|
577
|
+
isFirstSection: i === 0,
|
|
578
|
+
isLastSection:
|
|
579
|
+
i === input.sections.length - 1 &&
|
|
580
|
+
section.steps.length === 0,
|
|
581
|
+
isSelected:
|
|
582
|
+
input.selectedStep === (section.causingStep || null),
|
|
583
|
+
sectionIndex: i,
|
|
584
|
+
isRecording: input.isRecording,
|
|
585
|
+
isPlaying: input.replayState.isPlaying,
|
|
586
|
+
error:
|
|
587
|
+
input.getSectionState(section) === State.ERROR
|
|
588
|
+
? (input.currentError ?? undefined)
|
|
589
|
+
: undefined,
|
|
590
|
+
hasBreakpoint: false,
|
|
591
|
+
removable: input.recording.steps.length > 1 && Boolean(section.causingStep),
|
|
592
|
+
onStepClick: input.onStepClick,
|
|
593
|
+
onStepHover: input.onStepHover,
|
|
594
|
+
})}
|
|
600
595
|
${section.steps.map(step => {
|
|
601
596
|
const stepIndex = input.recording.steps.indexOf(step);
|
|
602
597
|
return html`
|
|
@@ -653,7 +648,7 @@ function renderSections(input: ViewInput): Lit.LitTemplate {
|
|
|
653
648
|
)}
|
|
654
649
|
</div>
|
|
655
650
|
`;
|
|
656
|
-
|
|
651
|
+
// clang-format on
|
|
657
652
|
}
|
|
658
653
|
|
|
659
654
|
function renderHeader(input: ViewInput): Lit.LitTemplate {
|
|
@@ -32,6 +32,7 @@ import {
|
|
|
32
32
|
const {html, Decorators, Directives, LitElement} = Lit;
|
|
33
33
|
const {customElement, property, state} = Decorators;
|
|
34
34
|
const {live} = Directives;
|
|
35
|
+
const {widget} = UI.Widget;
|
|
35
36
|
|
|
36
37
|
type StepFor<Type> = Extract<Models.Schema.Step, {type: Type}>;
|
|
37
38
|
type Attribute = Keys<Models.Schema.Step>;
|
|
@@ -778,13 +779,11 @@ export class StepEditor extends LitElement {
|
|
|
778
779
|
return html`<div class="attribute" data-attribute="selectors" jslog=${VisualLogging.treeItem('selectors')}>
|
|
779
780
|
<div class="row">
|
|
780
781
|
<div>selectors<span class="separator">:</span></div>
|
|
781
|
-
|
|
782
|
-
.
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
})}
|
|
787
|
-
></devtools-widget>
|
|
782
|
+
${widget(SelectorPicker, {
|
|
783
|
+
disabled: this.disabled,
|
|
784
|
+
onSelectorPicked: this.#handleSelectorPicked,
|
|
785
|
+
onAttributeRequested: this.#handleAttributeRequested,
|
|
786
|
+
})}
|
|
788
787
|
${this.#renderDeleteButton('selectors')}
|
|
789
788
|
</div>
|
|
790
789
|
${this.state.selectors.map((selector, index, selectors) => {
|
|
@@ -19,6 +19,7 @@ import stepViewStyles from './stepView.css.js';
|
|
|
19
19
|
import {TimelineSection} from './TimelineSection.js';
|
|
20
20
|
|
|
21
21
|
const {html} = Lit;
|
|
22
|
+
const {widget} = UI.Widget;
|
|
22
23
|
|
|
23
24
|
const UIStrings = {
|
|
24
25
|
/**
|
|
@@ -396,7 +397,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTML
|
|
|
396
397
|
html`
|
|
397
398
|
<style>${stepViewStyles}</style>
|
|
398
399
|
<div>
|
|
399
|
-
<devtools-widget
|
|
400
|
+
<devtools-widget ${widget(TimelineSection, {
|
|
400
401
|
isFirstSection: input.isFirstSection,
|
|
401
402
|
isLastSection: input.isLastSection,
|
|
402
403
|
isStartOfGroup: input.isStartOfGroup,
|
|
@@ -107,7 +107,7 @@ const UIStrings = {
|
|
|
107
107
|
const str_ = i18n.i18n.registerUIStrings('panels/search/SearchView.ts', UIStrings);
|
|
108
108
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
109
109
|
const {ref, live} = Directives;
|
|
110
|
-
const {
|
|
110
|
+
const {widget, widgetRef} = UI.Widget;
|
|
111
111
|
|
|
112
112
|
export interface SearchViewInput {
|
|
113
113
|
query: string;
|
|
@@ -246,13 +246,12 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
246
246
|
</div>
|
|
247
247
|
<div class="search-results" @keydown=${onPanelKeyDown}>
|
|
248
248
|
${searchResults.length
|
|
249
|
-
? html`<devtools-widget
|
|
249
|
+
? html`<devtools-widget ${widget(SearchResultsPane, {searchResults, searchConfig})}
|
|
250
250
|
${widgetRef(SearchResultsPane, w => {
|
|
251
251
|
output.showAllMatches = () => void w.showAllMatches();
|
|
252
252
|
output.collapseAllResults = () => void w.collapseAllResults(); })}>
|
|
253
253
|
</devtools-widget>`
|
|
254
|
-
:
|
|
255
|
-
</devtools-widget>`}
|
|
254
|
+
: widget(UI.EmptyWidget.EmptyWidget, {header, text})}
|
|
256
255
|
</div>
|
|
257
256
|
<div class="search-toolbar-summary" @keydown=${onPanelKeyDown}>
|
|
258
257
|
<div class="search-message">${searchMessage}</div>
|
|
@@ -41,6 +41,7 @@ const UIStrings = {
|
|
|
41
41
|
} as const;
|
|
42
42
|
const str_ = i18n.i18n.registerUIStrings('panels/settings/WorkspaceSettingsTab.ts', UIStrings);
|
|
43
43
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
44
|
+
const {widget} = UI.Widget;
|
|
44
45
|
|
|
45
46
|
export interface WorkspaceSettingsTabInput {
|
|
46
47
|
excludePatternSetting: Common.Settings.RegExpSetting;
|
|
@@ -70,11 +71,7 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
|
70
71
|
<devtools-card heading=${fileSystem.displayName}>
|
|
71
72
|
<devtools-icon name="folder" slot="heading-prefix"></devtools-icon>
|
|
72
73
|
<div class="mapping-view-container">
|
|
73
|
-
|
|
74
|
-
UI.Widget.widgetConfig(
|
|
75
|
-
EditFileSystemView,
|
|
76
|
-
{fileSystem: fileSystem.fileSystem})}>
|
|
77
|
-
</devtools-widget>
|
|
74
|
+
${widget(EditFileSystemView, {fileSystem: fileSystem.fileSystem})}
|
|
78
75
|
</div>
|
|
79
76
|
<devtools-button
|
|
80
77
|
slot="heading-suffix"
|
|
@@ -72,6 +72,8 @@ const UIStrings = {
|
|
|
72
72
|
} as const;
|
|
73
73
|
const str_ = i18n.i18n.registerUIStrings('panels/timeline/TimelineDetailsView.ts', UIStrings);
|
|
74
74
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
75
|
+
const {widget} = UI.Widget;
|
|
76
|
+
|
|
75
77
|
export class TimelineDetailsPane extends
|
|
76
78
|
Common.ObjectWrapper.eventMixin<TimelineTreeView.EventTypes, typeof UI.Widget.VBox>(UI.Widget.VBox) {
|
|
77
79
|
private readonly detailsLinkifier: Components.Linkifier.Linkifier;
|
|
@@ -612,8 +614,8 @@ const SUMMARY_DEFAULT_VIEW: View = (input, _output, target) => {
|
|
|
612
614
|
<style>${detailsViewStyles}</style>
|
|
613
615
|
${Directives.until(renderSelectedEventDetails(input))}
|
|
614
616
|
${input.selectedRange ? generateRangeSummaryDetails(input) : nothing}
|
|
615
|
-
<devtools-widget data-related-insight-chips
|
|
616
|
-
|
|
617
|
+
<devtools-widget data-related-insight-chips ${widget(
|
|
618
|
+
TimelineComponents.RelatedInsightChips.RelatedInsightChips, {
|
|
617
619
|
activeEvent: input.selectedEvent,
|
|
618
620
|
eventToInsightsMap: input.eventToRelatedInsightsMap,
|
|
619
621
|
})}></devtools-widget>
|
|
@@ -685,8 +687,8 @@ async function renderSelectedEventDetails(
|
|
|
685
687
|
Trace.Types.Events.isSyntheticLayoutShiftCluster(selectedEvent)) {
|
|
686
688
|
// clang-format off
|
|
687
689
|
return html`
|
|
688
|
-
<devtools-widget data-layout-shift-details
|
|
689
|
-
|
|
690
|
+
<devtools-widget data-layout-shift-details ${widget(
|
|
691
|
+
TimelineComponents.LayoutShiftDetails.LayoutShiftDetails, {
|
|
690
692
|
event: selectedEvent,
|
|
691
693
|
parsedTrace: input.parsedTrace,
|
|
692
694
|
isFreshRecording: traceRecordingIsFresh,
|
|
@@ -698,8 +700,8 @@ async function renderSelectedEventDetails(
|
|
|
698
700
|
if (Trace.Types.Events.isSyntheticNetworkRequest(selectedEvent)) {
|
|
699
701
|
// clang-format off
|
|
700
702
|
return html`
|
|
701
|
-
<devtools-widget data-network-request-details
|
|
702
|
-
|
|
703
|
+
<devtools-widget data-network-request-details ${widget(
|
|
704
|
+
TimelineComponents.NetworkRequestDetails.NetworkRequestDetails, {
|
|
703
705
|
request: selectedEvent,
|
|
704
706
|
entityMapper: input.entityMapper,
|
|
705
707
|
target: input.target,
|
|
@@ -41,7 +41,7 @@ import metricValueStyles from './metricValueStyles.css.js';
|
|
|
41
41
|
import {CLS_THRESHOLDS, INP_THRESHOLDS, renderMetricValue} from './Utils.js';
|
|
42
42
|
|
|
43
43
|
const {html, nothing} = Lit;
|
|
44
|
-
const {
|
|
44
|
+
const {widget} = UI.Widget;
|
|
45
45
|
|
|
46
46
|
type DeviceOption = CrUXManager.DeviceScope|'AUTO';
|
|
47
47
|
|
|
@@ -485,8 +485,7 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
|
485
485
|
<div class="related-info" slot="extra-info">
|
|
486
486
|
<span class="related-info-label">${i18nString(UIStrings.lcpElement)}</span>
|
|
487
487
|
<span class="related-info-link">
|
|
488
|
-
|
|
489
|
-
</devtools-widget>
|
|
488
|
+
${widget(PanelsCommon.DOMLinkifier.DOMNodeLink, {node: this.#lcpValue?.nodeRef})}
|
|
490
489
|
</span>
|
|
491
490
|
</div>
|
|
492
491
|
`
|
|
@@ -650,7 +649,7 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
|
650
649
|
</ul>
|
|
651
650
|
` : nothing}
|
|
652
651
|
<div class="environment-option">
|
|
653
|
-
|
|
652
|
+
${widget(CPUThrottlingSelector, {recommendedOption: recs.cpuOption})}
|
|
654
653
|
</div>
|
|
655
654
|
<div class="environment-option">
|
|
656
655
|
<devtools-network-throttling-selector .recommendedConditions=${recs.networkConditions}></devtools-network-throttling-selector>
|
|
@@ -1003,8 +1002,7 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
|
1003
1002
|
: nothing}
|
|
1004
1003
|
</span>
|
|
1005
1004
|
<span class="interaction-node">
|
|
1006
|
-
|
|
1007
|
-
</devtools-widget>
|
|
1005
|
+
${widget(PanelsCommon.DOMLinkifier.DOMNodeLink, {node: interaction.nodeRef})}
|
|
1008
1006
|
</span>
|
|
1009
1007
|
${isP98Excluded ? html`<devtools-icon
|
|
1010
1008
|
class="interaction-info"
|
|
@@ -1113,8 +1111,7 @@ export class LiveMetricsView extends LegacyWrapper.LegacyWrapper.WrappableCompon
|
|
|
1113
1111
|
<div class="layout-shift-nodes">
|
|
1114
1112
|
${layoutShift.affectedNodeRefs.map(node => html`
|
|
1115
1113
|
<div class="layout-shift-node">
|
|
1116
|
-
|
|
1117
|
-
</devtools-widget>
|
|
1114
|
+
${widget(PanelsCommon.DOMLinkifier.DOMNodeLink, {node})}
|
|
1118
1115
|
</div>
|
|
1119
1116
|
`)}
|
|
1120
1117
|
</div>
|
|
@@ -26,6 +26,7 @@ const UIStrings = {
|
|
|
26
26
|
|
|
27
27
|
const str_ = i18n.i18n.registerUIStrings('panels/timeline/components/SidebarSingleInsightSet.ts', UIStrings);
|
|
28
28
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
29
|
+
const {widget} = UI.Widget;
|
|
29
30
|
|
|
30
31
|
export interface SidebarSingleInsightSetData {
|
|
31
32
|
insightSetKey: Trace.Types.Events.NavigationId|null;
|
|
@@ -62,13 +63,7 @@ const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
62
63
|
if (!insightSetKey || !parsedTrace) {
|
|
63
64
|
return Lit.nothing;
|
|
64
65
|
}
|
|
65
|
-
|
|
66
|
-
data: {
|
|
67
|
-
insightSetKey,
|
|
68
|
-
parsedTrace,
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
return html`<devtools-widget .widgetConfig=${metricsWidgetConfig}></devtools-widget>`;
|
|
66
|
+
return html`${widget(CWVMetrics, {data: {insightSetKey, parsedTrace}})}`;
|
|
72
67
|
}
|
|
73
68
|
|
|
74
69
|
function renderInsights(): Lit.LitTemplate {
|