Skip to content

Commit 3c169c5

Browse files
Samiya CaurDevtools-frontend LUCI CQ
authored andcommitted
[AI Assistance] Update selected element indicator when class or id for the element is update dynamically
Bug: 367653288 Change-Id: I076112c16bdad440097e26c5a612fbbeff7bbec5 Fixed: 367653288 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6090556 Commit-Queue: Samiya Caur <[email protected]> Reviewed-by: Ergün Erdoğmuş <[email protected]> Auto-Submit: Samiya Caur <[email protected]>
1 parent 56e03d4 commit 3c169c5

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

front_end/panels/ai_assistance/AiAssistancePanel.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,10 @@ export class AiAssistancePanel extends UI.Panel.Panel {
449449
SourcesPanel.SourcesPanel.SourcesPanel, this.#selectDefaultAgentIfNeeded, this);
450450
UI.Context.Context.instance().addFlavorChangeListener(
451451
TimelinePanel.TimelinePanel.TimelinePanel, this.#selectDefaultAgentIfNeeded, this);
452+
SDK.TargetManager.TargetManager.instance().addModelListener(
453+
SDK.DOMModel.DOMModel, SDK.DOMModel.Events.AttrModified, this.#handleDOMNodeAttrChange, this);
454+
SDK.TargetManager.TargetManager.instance().addModelListener(
455+
SDK.DOMModel.DOMModel, SDK.DOMModel.Events.AttrRemoved, this.#handleDOMNodeAttrChange, this);
452456
Host.userMetrics.actionTaken(Host.UserMetrics.Action.AiAssistancePanelOpened);
453457
}
454458

@@ -473,6 +477,18 @@ export class AiAssistancePanel extends UI.Panel.Panel {
473477
SourcesPanel.SourcesPanel.SourcesPanel, this.#selectDefaultAgentIfNeeded, this);
474478
UI.Context.Context.instance().removeFlavorChangeListener(
475479
TimelinePanel.TimelinePanel.TimelinePanel, this.#selectDefaultAgentIfNeeded, this);
480+
SDK.TargetManager.TargetManager.instance().removeModelListener(
481+
SDK.DOMModel.DOMModel,
482+
SDK.DOMModel.Events.AttrModified,
483+
this.#handleDOMNodeAttrChange,
484+
this,
485+
);
486+
SDK.TargetManager.TargetManager.instance().removeModelListener(
487+
SDK.DOMModel.DOMModel,
488+
SDK.DOMModel.Events.AttrRemoved,
489+
this.#handleDOMNodeAttrChange,
490+
this,
491+
);
476492
}
477493

478494
#handleAidaAvailabilityChange = async(): Promise<void> => {
@@ -508,6 +524,15 @@ export class AiAssistancePanel extends UI.Panel.Panel {
508524
this.#updateAgentState(this.#currentAgent);
509525
};
510526

527+
#handleDOMNodeAttrChange =
528+
(ev: Common.EventTarget.EventTargetEvent<{node: SDK.DOMModel.DOMNode, name: string}>): void => {
529+
if (this.#selectedElement?.getItem() === ev.data.node) {
530+
if (ev.data.name === 'class' || ev.data.name === 'id') {
531+
void this.doUpdate();
532+
}
533+
}
534+
};
535+
511536
#handleNetworkRequestFlavorChange =
512537
(ev: Common.EventTarget.EventTargetEvent<SDK.NetworkRequest.NetworkRequest>): void => {
513538
if (this.#selectedRequest?.getItem() === ev.data) {

0 commit comments

Comments
 (0)