Skip to content

Commit f508c17

Browse files
jackfranklinDevtools-frontend LUCI CQ
authored andcommitted
GreenDev: remove in-DevTools floaty prototype
We tested it, and now we do not need it. Bug: 461428712 Change-Id: I11cd235a012c347f37e9e20b3e8f81030e3b9f57 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7575893 Reviewed-by: Nikolay Vitkov <nvitkov@chromium.org> Auto-Submit: Jack Franklin <jacktfranklin@chromium.org> Commit-Queue: Jack Franklin <jacktfranklin@chromium.org> Commit-Queue: Nikolay Vitkov <nvitkov@chromium.org>
1 parent ba36967 commit f508c17

18 files changed

Lines changed: 21 additions & 684 deletions

File tree

config/gni/devtools_grd_files.gni

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2558,7 +2558,6 @@ grd_files_unbundled_sources = [
25582558
"front_end/ui/legacy/EmptyWidget.js",
25592559
"front_end/ui/legacy/FilterBar.js",
25602560
"front_end/ui/legacy/FilterSuggestionBuilder.js",
2561-
"front_end/ui/legacy/Floaty.js",
25622561
"front_end/ui/legacy/ForwardedInputEventHandler.js",
25632562
"front_end/ui/legacy/Fragment.js",
25642563
"front_end/ui/legacy/GlassPane.js",
@@ -2705,7 +2704,6 @@ grd_files_unbundled_sources = [
27052704
"front_end/ui/legacy/dropTarget.css.js",
27062705
"front_end/ui/legacy/emptyWidget.css.js",
27072706
"front_end/ui/legacy/filter.css.js",
2708-
"front_end/ui/legacy/floaty.css.js",
27092707
"front_end/ui/legacy/glassPane.css.js",
27102708
"front_end/ui/legacy/infobar.css.js",
27112709
"front_end/ui/legacy/inspectorCommon.css.js",

front_end/models/greendev/Prototypes.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import * as Root from '../../core/root/root.js';
88
let instance: Prototypes|null = null;
99

1010
export interface GreenDevSettings {
11-
inDevToolsFloaty: Common.Settings.Setting<boolean>;
1211
aiAnnotations: Common.Settings.Setting<boolean>;
1312
copyToGemini: Common.Settings.Setting<boolean>;
1413
}
@@ -36,9 +35,6 @@ export class Prototypes {
3635

3736
settings(): Readonly<GreenDevSettings> {
3837
const settings = Common.Settings.Settings.instance();
39-
const inDevToolsFloaty =
40-
settings.createSetting('greendev-in-devtools-floaty-enabled', false, Common.Settings.SettingStorageType.LOCAL);
41-
4238
const aiAnnotations = settings.createSetting(
4339
'greendev-ai-annotations-enabled',
4440
false,
@@ -47,6 +43,6 @@ export class Prototypes {
4743
const copyToGemini =
4844
settings.createSetting('greendev-copy-to-gemini-enabled', false, Common.Settings.SettingStorageType.LOCAL);
4945

50-
return {inDevToolsFloaty, aiAnnotations, copyToGemini};
46+
return {aiAnnotations, copyToGemini};
5147
}
5248
}

front_end/panels/ai_assistance/AiAssistancePanel.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import * as SDK from '../../core/sdk/sdk.js';
1313
import * as AiAssistanceModel from '../../models/ai_assistance/ai_assistance.js';
1414
import * as Annotations from '../../models/annotations/annotations.js';
1515
import * as Badges from '../../models/badges/badges.js';
16-
import * as GreenDev from '../../models/greendev/greendev.js';
1716
import * as TextUtils from '../../models/text_utils/text_utils.js';
1817
import type * as Trace from '../../models/trace/trace.js';
1918
import * as Workspace from '../../models/workspace/workspace.js';
@@ -518,7 +517,6 @@ export class AiAssistancePanel extends UI.Panel.Panel {
518517
};
519518
#timelinePanelInstance: TimelinePanel.TimelinePanel.TimelinePanel|null = null;
520519
#runAbortController = new AbortController();
521-
#additionalContextItemsFromFloaty: UI.Floaty.FloatyContextSelection[] = [];
522520

523521
constructor(private view: View = defaultView, {aidaClient, aidaAvailability, syncInfo}: {
524522
aidaClient: Host.AidaClient.AidaClient,
@@ -571,7 +569,6 @@ export class AiAssistancePanel extends UI.Panel.Panel {
571569
return {
572570
state: ViewState.CHAT_VIEW,
573571
props: {
574-
additionalFloatyContext: this.#additionalContextItemsFromFloaty,
575572
blockedByCrossOrigin: this.#conversation.isBlockedByOrigin,
576573
isLoading: this.#isLoading,
577574
messages: this.#messages,
@@ -665,15 +662,6 @@ export class AiAssistancePanel extends UI.Panel.Panel {
665662
}
666663
}
667664

668-
#bindFloatyListener(): void {
669-
const additionalContexts = UI.Context.Context.instance().flavor(UI.Floaty.FloatyFlavor);
670-
if (!additionalContexts) {
671-
return;
672-
}
673-
this.#additionalContextItemsFromFloaty = additionalContexts.selectedContexts;
674-
this.requestUpdate();
675-
}
676-
677665
async #handlePerformanceRecordAndReload(): Promise<Trace.TraceModel.ParsedTrace> {
678666
return await TimelinePanel.TimelinePanel.TimelinePanel.executeRecordAndReload();
679667
}
@@ -826,11 +814,6 @@ export class AiAssistancePanel extends UI.Panel.Panel {
826814
this.#selectDefaultAgentIfNeeded();
827815

828816
Host.userMetrics.actionTaken(Host.UserMetrics.Action.AiAssistancePanelOpened);
829-
830-
if (GreenDev.Prototypes.instance().isEnabled('inDevToolsFloaty')) {
831-
UI.Context.Context.instance().addFlavorChangeListener(UI.Floaty.FloatyFlavor, this.#bindFloatyListener, this);
832-
this.#bindFloatyListener();
833-
}
834817
}
835818

836819
override willHide(): void {
@@ -1469,7 +1452,6 @@ export class AiAssistancePanel extends UI.Panel.Panel {
14691452
text,
14701453
{
14711454
signal,
1472-
extraContext: this.#additionalContextItemsFromFloaty,
14731455
multimodalInput,
14741456
},
14751457
),

front_end/panels/ai_assistance/components/ChatInput.test.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,6 @@ describeWithEnvironment('ChatInput', () => {
256256
inputPlaceholder: 'Type a message...' as Platform.UIString.LocalizedString,
257257
selectedContext: null,
258258
inspectElementToggled: false,
259-
additionalFloatyContext: [],
260259
disclaimerText: 'Disclaimer text',
261260
conversationType: AiAssistanceModel.AiHistoryStorage.ConversationType.STYLING,
262261
multimodalInputEnabled: true,
@@ -295,7 +294,6 @@ describeWithEnvironment('ChatInput', () => {
295294
inputPlaceholder: 'Type a message...' as Platform.UIString.LocalizedString,
296295
selectedContext: null,
297296
inspectElementToggled: false,
298-
additionalFloatyContext: [],
299297
disclaimerText: 'Disclaimer text',
300298
conversationType: AiAssistanceModel.AiHistoryStorage.ConversationType.STYLING,
301299
multimodalInputEnabled: false,

front_end/panels/ai_assistance/components/ChatInput.ts

Lines changed: 18 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ import type * as Platform from '../../../core/platform/platform.js';
1010
import * as SDK from '../../../core/sdk/sdk.js';
1111
import * as Protocol from '../../../generated/protocol.js';
1212
import * as AiAssistanceModel from '../../../models/ai_assistance/ai_assistance.js';
13-
import * as GreenDev from '../../../models/greendev/greendev.js';
14-
import * as Trace from '../../../models/trace/trace.js';
1513
import * as Workspace from '../../../models/workspace/workspace.js';
1614
import * as PanelsCommon from '../../../panels/common/common.js';
1715
import * as PanelUtils from '../../../panels/utils/utils.js';
@@ -123,7 +121,6 @@ export interface ViewInput {
123121
inputPlaceholder: Platform.UIString.LocalizedString;
124122
selectedContext: AiAssistanceModel.AiAgent.ConversationContext<unknown>|null;
125123
inspectElementToggled: boolean;
126-
additionalFloatyContext: UI.Floaty.FloatyContextSelection[];
127124
disclaimerText: string;
128125
conversationType: AiAssistanceModel.AiHistoryStorage.ConversationType;
129126
multimodalInputEnabled: boolean;
@@ -151,22 +148,19 @@ export interface ViewInput {
151148

152149
export type ViewOutput = undefined;
153150

154-
export const
155-
DEFAULT_VIEW =
156-
(input: ViewInput, output: ViewOutput, target: HTMLElement):
157-
void => {
158-
const chatInputContainerCls = Lit.Directives.classMap({
159-
'chat-input-container': true,
160-
'single-line-layout': !input.selectedContext && !input.onContextAdd,
161-
disabled: input.isTextInputDisabled,
162-
});
163-
164-
const renderRelevantDataDisclaimer = (tooltipId: string): Lit.LitTemplate => {
165-
const classes = Lit.Directives.classMap({
166-
'chat-input-disclaimer': true,
167-
'hide-divider': !input.isLoading && input.blockedByCrossOrigin,
168-
});
169-
// clang-format off
151+
export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTMLElement): void => {
152+
const chatInputContainerCls = Lit.Directives.classMap({
153+
'chat-input-container': true,
154+
'single-line-layout': !input.selectedContext && !input.onContextAdd,
155+
disabled: input.isTextInputDisabled,
156+
});
157+
158+
const renderRelevantDataDisclaimer = (tooltipId: string): Lit.LitTemplate => {
159+
const classes = Lit.Directives.classMap({
160+
'chat-input-disclaimer': true,
161+
'hide-divider': !input.isLoading && input.blockedByCrossOrigin,
162+
});
163+
// clang-format off
170164
return html`
171165
<div class=${classes}>
172166
<button
@@ -198,10 +192,10 @@ export const
198192
</div></devtools-tooltip>
199193
</div>
200194
`;
201-
// clang-format on
202-
};
195+
// clang-format on
196+
};
203197

204-
// clang-format off
198+
// clang-format off
205199
Lit.render(html`
206200
<style>${Input.textInputStyles}</style>
207201
<style>${chatInputStyles}</style>
@@ -226,52 +220,6 @@ export const
226220
:
227221
html`
228222
<form class="input-form" @submit=${input.onSubmit}>
229-
${GreenDev.Prototypes.instance().isEnabled('inDevToolsFloaty') ?
230-
html`
231-
<ul class="floaty">
232-
${input.additionalFloatyContext.map(c => {
233-
return html`
234-
<li>
235-
<span class="context-item">
236-
${c instanceof SDK.NetworkRequest.NetworkRequest ? html`${c.url()}` :
237-
c instanceof SDK.DOMModel.DOMNode ? html`
238-
<devtools-widget .widgetConfig=${
239-
UI.Widget.widgetConfig(PanelsCommon.DOMLinkifier.DOMNodeLink, {node: c})}
240-
></devtools-widget>` :
241-
'insight' in c ? html`${c.insight.title}` :
242-
'event' in c && 'traceStartTime' in c ? html`
243-
${c.event.name} @ ${i18n.TimeUtilities.formatMicroSecondsAsMillisFixed(Trace.Types.Timing.Micro(c.event.ts - c.traceStartTime))}` :
244-
Lit.nothing}
245-
</span>
246-
<devtools-button
247-
class="floaty-delete-button"
248-
@click=${(e: MouseEvent) => {
249-
e.preventDefault();
250-
UI.Floaty.onFloatyContextDelete(c);
251-
}}
252-
.data=${{
253-
variant: Buttons.Button.Variant.ICON,
254-
iconName: 'cross',
255-
title: 'Delete',
256-
size: Buttons.Button.Size.SMALL,
257-
} as Buttons.Button.ButtonData}
258-
></devtools-button>
259-
</li>`;
260-
})}
261-
<li class="open-floaty">
262-
<devtools-button
263-
class="floaty-add-button"
264-
@click=${UI.Floaty.onFloatyOpen}
265-
.data=${{
266-
variant: Buttons.Button.Variant.ICON,
267-
iconName: 'select-element',
268-
title: 'Open context picker',
269-
size: Buttons.Button.Size.SMALL,
270-
} as Buttons.Button.ButtonData}
271-
></devtools-button>
272-
</li>
273-
</ul>`
274-
: Lit.nothing}
275223
<div class=${chatInputContainerCls}>
276224
${(input.multimodalInputEnabled && input.imageInput && !input.isTextInputDisabled) ?
277225
html`
@@ -495,8 +443,8 @@ export const
495443
${renderRelevantDataDisclaimer(RELEVANT_DATA_LINK_FOOTER_ID)}
496444
</footer>
497445
`, target);
498-
// clang-format on
499-
};
446+
// clang-format on
447+
};
500448

501449
/**
502450
* ChatInput is a presenter for the input area in the AI Assistance panel.
@@ -508,7 +456,6 @@ export class ChatInput extends UI.Widget.Widget implements SDK.TargetManager.Obs
508456
inputPlaceholder = '' as Platform.UIString.LocalizedString;
509457
selectedContext = null as AiAssistanceModel.AiAgent.ConversationContext<unknown>| null;
510458
inspectElementToggled = false;
511-
additionalFloatyContext = [] as UI.Floaty.FloatyContextSelection[];
512459
disclaimerText = '';
513460
conversationType = AiAssistanceModel.AiHistoryStorage.ConversationType.STYLING;
514461
multimodalInputEnabled = false;
@@ -697,7 +644,6 @@ export class ChatInput extends UI.Widget.Widget implements SDK.TargetManager.Obs
697644
selectedContext: this.selectedContext,
698645
inspectElementToggled: this.inspectElementToggled,
699646
isTextInputEmpty: this.#isTextInputEmpty(),
700-
additionalFloatyContext: this.additionalFloatyContext,
701647
disclaimerText: this.disclaimerText,
702648
conversationType: this.conversationType,
703649
multimodalInputEnabled: this.multimodalInputEnabled,

front_end/panels/ai_assistance/components/ChatView.test.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ describeWithEnvironment('ChatView', () => {
4040
inputPlaceholder: i18n.i18n.lockedString('input placeholder'),
4141
disclaimerText: i18n.i18n.lockedString('disclaimer text'),
4242
markdownRenderer: new AiAssistancePanel.MarkdownRendererWithCodeBlock(),
43-
additionalFloatyContext: [],
4443
...options,
4544
};
4645
}

front_end/panels/ai_assistance/components/ChatView.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ export interface Props {
7676
disclaimerText: Platform.UIString.LocalizedString;
7777
uploadImageInputEnabled?: boolean;
7878
markdownRenderer: MarkdownLitRenderer;
79-
additionalFloatyContext: UI.Floaty.FloatyContextSelection[];
8079
}
8180

8281
interface ChatWidgetInput extends Props {
@@ -171,7 +170,6 @@ const DEFAULT_VIEW: View = (input, output, target) => {
171170
conversationType: input.conversationType,
172171
uploadImageInputEnabled: input.uploadImageInputEnabled ?? false,
173172
isReadOnly: input.isReadOnly,
174-
additionalFloatyContext: input.additionalFloatyContext,
175173
onContextClick: input.onContextClick,
176174
onInspectElementClick: input.onInspectElementClick,
177175
onTextSubmit: input.onTextSubmit,

front_end/panels/elements/ElementsTreeElement.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,13 +1702,6 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
17021702
if (this.editing) {
17031703
return false;
17041704
}
1705-
const handledByFloaty = UI.Floaty.onFloatyClick({
1706-
type: UI.Floaty.FloatyContextTypes.ELEMENT_NODE_ID,
1707-
data: {nodeId: this.nodeInternal.id},
1708-
});
1709-
if (handledByFloaty) {
1710-
return false;
1711-
}
17121705
return super.select(omitFocus, selectedByUser);
17131706
}
17141707

front_end/panels/network/NetworkDataGridNode.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,14 +1185,6 @@ export class NetworkRequestNode extends NetworkNode {
11851185
}
11861186

11871187
override select(suppressSelectedEvent?: boolean): void {
1188-
const id = this.request()?.requestId();
1189-
if (id) {
1190-
const floatyHandled =
1191-
UI.Floaty.onFloatyClick({type: UI.Floaty.FloatyContextTypes.NETWORK_REQUEST, data: {requestId: id}});
1192-
if (floatyHandled) {
1193-
return;
1194-
}
1195-
}
11961188
super.select(suppressSelectedEvent);
11971189
this.parentView().dispatchEventToListeners(Events.RequestSelected, this.requestInternal);
11981190
}

front_end/panels/settings/SettingsScreen.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ const GREENDEV_VIEW: View = (input, _output, target) => {
637637
<span>${i18nString(UIStrings.greenDevUnstable)}</span>
638638
</div>
639639
<div class="settings-experiments-block">
640-
${renderPrototypeCheckboxes(input.settings, ['aiAnnotations', 'inDevToolsFloaty', 'copyToGemini'])}
640+
${renderPrototypeCheckboxes(input.settings, ['aiAnnotations', 'copyToGemini'])}
641641
</div>
642642
</devtools-card>
643643
</div>
@@ -646,7 +646,6 @@ const GREENDEV_VIEW: View = (input, _output, target) => {
646646
};
647647

648648
const GREENDEV_PROTOTYPE_NAMES: Record<keyof GreenDev.GreenDevSettings, string> = {
649-
inDevToolsFloaty: 'In DevTools context picker',
650649
aiAnnotations: 'AI auto-annotations',
651650
copyToGemini: 'Copy changes to AI Prompt'
652651
};

0 commit comments

Comments
 (0)