豆豆友情提示:这是一个非官方 GitHub 代理镜像,主要用于网络测试或访问加速。请勿在此进行登录、注册或处理任何敏感信息。进行这些操作请务必访问官方网站 github.com。 Raw 内容也通过此代理提供。
Skip to content

Commit 9066161

Browse files
AlinaVarkkiDevtools-frontend LUCI CQ
authored andcommitted
[GreenDev] Add reveal button and reveal insight and network request
A reveal function for synthetic events and flamechart will be in the follow up cl. Bug: 466073596 Change-Id: I91618186a6193f8a2f6b3293d8d07c5fcce3f2ee Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7362009 Commit-Queue: Alina Varkki <alinavarkki@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
1 parent 1a6a402 commit 9066161

File tree

3 files changed

+74
-16
lines changed

3 files changed

+74
-16
lines changed

front_end/panels/ai_assistance/components/ArtifactsViewer.ts

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@
55
import './CollapsibleAssistanceContentWidget.js';
66
import './PerformanceAgentFlameChart.js';
77

8+
import * as Common from '../../../core/common/common.js';
89
import * as AiAssistanceModel from '../../../models/ai_assistance/ai_assistance.js';
910
import * as Logs from '../../../models/logs/logs.js';
1011
import * as NetworkTimeCalculator from '../../../models/network_time_calculator/network_time_calculator.js';
1112
import * as Trace from '../../../models/trace/trace.js';
1213
import * as UI from '../../../ui/legacy/legacy.js';
1314
import * as Lit from '../../../ui/lit/lit.js';
15+
import * as NetworkForward from '../../network/forward/forward.js';
1416
import * as Network from '../../network/network.js';
1517
import * as Insights from '../../timeline/components/insights/insights.js';
18+
import * as Timeline from '../../timeline/timeline.js';
1619

1720
import artifactsViewerStyles from './artifactsViewer.css.js';
1821
import type * as PerformanceAgentFlameChart from './PerformanceAgentFlameChart.js';
@@ -39,7 +42,14 @@ export function renderArtifact(
3942
}
4043

4144
return html`
42-
<devtools-collapsible-assistance-content-widget .data=${{headerText: `Insight - ${componentName}`}}>
45+
<devtools-collapsible-assistance-content-widget .data=${{
46+
headerText: `Insight - ${componentName}`,
47+
onReveal: () => {
48+
void UI.InspectorView.InspectorView.instance().showPanel('timeline').then(() => {
49+
Timeline.TimelinePanel.TimelinePanel.instance().revealInsight(insightModel);
50+
});
51+
},
52+
}}>
4353
${insightRenderer.renderInsightToWidgetElement(parsedTrace, insightSet, insightModel, componentName, {
4454
selected: true,
4555
isAIAssistanceContext: true,
@@ -59,8 +69,16 @@ export function renderArtifact(
5969
}
6070
return html`
6171
<devtools-collapsible-assistance-content-widget
62-
.data=${{headerText: `Network Request: ${
63-
sdkRequest.url().length > 80 ? sdkRequest.url().slice(0, 80) + '...' : sdkRequest.url()}`}}>
72+
.data=${{
73+
headerText: `Network Request: ${
74+
sdkRequest.url().length > 80 ? sdkRequest.url().slice(0, 80) + '...' : sdkRequest.url()}`,
75+
onReveal: () => {
76+
void UI.InspectorView.InspectorView.instance().showPanel('network').then(() => {
77+
void Common.Revealer.reveal(NetworkForward.UIRequestLocation.UIRequestLocation.tab(
78+
sdkRequest, NetworkForward.UIRequestLocation.UIRequestTabs.TIMING));
79+
});
80+
},
81+
}}>
6482
<devtools-widget class="actions" .widgetConfig=${UI.Widget.widgetConfig(Network.RequestTimingView.RequestTimingView, {
6583
request: sdkRequest,
6684
calculator,
@@ -71,7 +89,13 @@ export function renderArtifact(
7189
}
7290
case 'flamechart': {
7391
return html`
74-
<devtools-collapsible-assistance-content-widget .data=${{headerText: `Flamechart`}}>
92+
<devtools-collapsible-assistance-content-widget .data=${{
93+
headerText: `Flamechart`,
94+
onReveal: () => {
95+
// eslint-disable-next-line no-console
96+
console.log('Reveal flamechart', artifact.start, artifact.end);
97+
},
98+
}}>
7599
<devtools-performance-agent-flame-chart .data=${{
76100
parsedTrace,
77101
start: artifact.start,

front_end/panels/ai_assistance/components/CollapsibleAssistanceContentWidget.ts

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,18 @@ const {render, html} = Lit;
1212

1313
export interface CollapsibleAssistanceContentWidgetData {
1414
headerText: string;
15+
onReveal?: () => void;
1516
}
1617

1718
export class CollapsibleAssistanceContentWidget extends HTMLElement {
1819
readonly #shadow = this.attachShadow({mode: 'open'});
1920
#isCollapsed = false;
2021
#headerText = 'Details';
22+
#onReveal?: () => void;
2123

2224
set data(data: CollapsibleAssistanceContentWidgetData) {
2325
this.#headerText = data.headerText;
26+
this.#onReveal = data.onReveal;
2427
this.#render();
2528
}
2629

@@ -43,14 +46,30 @@ export class CollapsibleAssistanceContentWidget extends HTMLElement {
4346
this.#toggleCollapse();
4447
}}>
4548
${this.#headerText}
46-
<devtools-button .data=${{
47-
variant: Buttons.Button.Variant.ICON,
48-
iconName: this.#isCollapsed ? 'triangle-right' : 'triangle-down',
49-
color: 'var(--sys-color-on-surface)',
50-
width: '14px',
51-
height: '14px',
52-
} as Buttons.Button.ButtonData}
53-
></devtools-button>
49+
<div>
50+
<devtools-button .data=${{
51+
variant: Buttons.Button.Variant.ICON,
52+
iconName: 'select-element',
53+
color: 'var(--sys-color-on-surface)',
54+
width: '14px',
55+
height: '14px',
56+
title: 'reveal',
57+
} as Buttons.Button.ButtonData}
58+
@click=${(event: Event) => {
59+
event.stopPropagation();
60+
this.#onReveal?.();
61+
}}
62+
></devtools-button>
63+
<devtools-button .data=${{
64+
variant: Buttons.Button.Variant.ICON,
65+
iconName: this.#isCollapsed ? 'triangle-right' : 'triangle-down',
66+
color: 'var(--sys-color-on-surface)',
67+
width: '14px',
68+
height: '14px',
69+
title: 'expand',
70+
} as Buttons.Button.ButtonData}
71+
></devtools-button>
72+
</div>
5473
</summary>
5574
<div class="content">
5675
<slot></slot>

front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import './CollapsibleAssistanceContentWidget.js';
65
import '../../../models/trace/insights/insights.js';
76
import '../../../panels/timeline/components/components.js';
87
import './PerformanceAgentFlameChart.js';
8+
import './CollapsibleAssistanceContentWidget.js';
99

1010
import * as Common from '../../../core/common/common.js';
1111
import * as SDK from '../../../core/sdk/sdk.js';
@@ -19,9 +19,11 @@ import type * as Marked from '../../../third_party/marked/marked.js';
1919
import * as UI from '../../../ui/legacy/legacy.js';
2020
import * as Lit from '../../../ui/lit/lit.js';
2121
import * as PanelsCommon from '../../common/common.js';
22+
import * as NetworkForward from '../../network/forward/forward.js';
2223
import * as Network from '../../network/network.js';
2324
import * as TimelineComponents from '../../timeline/components/components.js';
2425
import * as Insights from '../../timeline/components/insights/insights.js';
26+
import * as Timeline from '../../timeline/timeline.js';
2527

2628
import {MarkdownRendererWithCodeBlock} from './MarkdownRendererWithCodeBlock.js';
2729
import type * as PerformanceAgentFlameChart from './PerformanceAgentFlameChart.js';
@@ -86,7 +88,11 @@ export class PerformanceAgentMarkdownRenderer extends MarkdownRendererWithCodeBl
8688
}
8789

8890
return html`<devtools-collapsible-assistance-content-widget .data=${{
89-
headerText: `Insight - ${componentName}`
91+
headerText: `Insight - ${componentName}`, onReveal: () => {
92+
void UI.InspectorView.InspectorView.instance().showPanel('timeline').then(() => {
93+
Timeline.TimelinePanel.TimelinePanel.instance().revealInsight(insightM);
94+
});
95+
},
9096
}
9197
}>
9298
${this.#insightRenderer.renderInsightToWidgetElement(this.parsedTrace, insightSet, insightM, componentName, {
@@ -115,7 +121,13 @@ export class PerformanceAgentMarkdownRenderer extends MarkdownRendererWithCodeBl
115121
return html`<devtools-collapsible-assistance-content-widget
116122
.data=${{
117123
headerText: `Network Request: ${
118-
networkRequest.url().length > 80 ? networkRequest.url().slice(0, 80) + '...' : networkRequest.url()}`
124+
networkRequest.url().length > 80 ? networkRequest.url().slice(0, 80) + '...' : networkRequest.url()}`,
125+
onReveal: () => {
126+
void UI.InspectorView.InspectorView.instance().showPanel('network').then(() => {
127+
void Common.Revealer.reveal(NetworkForward.UIRequestLocation.UIRequestLocation.tab(
128+
networkRequest, NetworkForward.UIRequestLocation.UIRequestTabs.TIMING));
129+
});
130+
},
119131
}
120132
}>
121133
<devtools-widget class="actions" .widgetConfig=${
@@ -142,7 +154,10 @@ export class PerformanceAgentMarkdownRenderer extends MarkdownRendererWithCodeBl
142154

143155
return html`<devtools-collapsible-assistance-content-widget
144156
.data=${{
145-
headerText: 'Network Request'
157+
headerText: 'Network Request', onReveal: () => {
158+
// eslint-disable-next-line no-console
159+
console.log('Reveal network request', value);
160+
},
146161
}
147162
}>
148163
${networkTooltip}

0 commit comments

Comments
 (0)