chrome-devtools-frontend 1.0.1543472 → 1.0.1545096
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/AUTHORS +1 -0
- package/config/typescript/tsconfig.eslint.json +1 -0
- 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 +10 -7
- package/front_end/core/host/DispatchHttpRequestClient.ts +18 -3
- package/front_end/core/protocol_client/CDPConnection.ts +3 -3
- package/front_end/core/protocol_client/DevToolsCDPConnection.ts +2 -1
- package/front_end/core/root/Runtime.ts +8 -7
- package/front_end/core/sdk/CPUThrottlingManager.ts +0 -4
- package/front_end/core/sdk/CSSMatchedStyles.ts +7 -9
- package/front_end/core/sdk/CSSMetadata.ts +17 -5
- package/front_end/core/sdk/CSSModel.ts +1 -1
- package/front_end/core/sdk/CSSRule.ts +18 -6
- package/front_end/core/sdk/ChildTargetManager.ts +2 -2
- 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/TargetManager.ts +14 -15
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshotLoader.ts +2 -0
- package/front_end/entrypoints/main/MainImpl.ts +0 -16
- package/front_end/foundation/Universe.ts +12 -1
- package/front_end/generated/Deprecation.ts +4 -0
- package/front_end/generated/InspectorBackendCommands.ts +2 -5
- package/front_end/generated/SupportedCSSProperties.js +0 -23
- 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 +2 -34
- package/front_end/models/ai_assistance/agents/AiAgent.ts +10 -8
- package/front_end/models/ai_assistance/agents/PatchAgent.ts +7 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +0 -5
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +4 -8
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +1 -1
- package/front_end/models/ai_code_generation/AiCodeGeneration.ts +5 -3
- package/front_end/models/bindings/CSSWorkspaceBinding.ts +8 -7
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +9 -8
- package/front_end/models/bindings/ResourceMapping.ts +57 -15
- package/front_end/models/live-metrics/LiveMetrics.ts +12 -20
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +6 -2
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +3 -2
- package/front_end/panels/ai_assistance/components/ChatView.ts +2 -4
- package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +2 -1
- package/front_end/panels/ai_assistance/components/UserActionRow.ts +2 -1
- package/front_end/panels/animation/AnimationTimeline.ts +6 -6
- package/front_end/panels/application/ApplicationPanelSidebar.ts +6 -7
- package/front_end/panels/application/{components/FrameDetailsView.ts → FrameDetailsView.ts} +134 -165
- 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/ReportsGrid.ts +7 -2
- package/front_end/panels/application/components/SharedStorageAccessGrid.ts +5 -3
- package/front_end/panels/application/components/StackTrace.ts +5 -3
- package/front_end/panels/application/components/TrustTokensView.ts +7 -1
- 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/application/preloading/PreloadingView.ts +10 -4
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +7 -11
- package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +15 -3
- package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +12 -13
- package/front_end/panels/common/BadgeNotification.ts +2 -1
- package/front_end/panels/{elements → common}/DOMLinkifier.ts +13 -8
- package/front_end/panels/common/GdpSignUpDialog.ts +2 -1
- package/front_end/panels/common/common.ts +1 -0
- package/front_end/panels/console/ConsoleViewMessage.ts +4 -4
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +2 -1
- package/front_end/panels/elements/ElementStatePaneWidget.ts +2 -1
- package/front_end/panels/elements/ElementsTreeElement.ts +3 -1
- package/front_end/panels/elements/StylePropertiesSection.ts +52 -15
- package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -3
- package/front_end/panels/elements/StylesSidebarPane.ts +24 -14
- package/front_end/panels/elements/elements-meta.ts +0 -13
- package/front_end/panels/elements/elements.ts +0 -3
- package/front_end/panels/explain/components/ConsoleInsight.ts +31 -20
- package/front_end/panels/issues/AffectedResourcesView.ts +2 -1
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +3 -6
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +2 -1
- package/front_end/panels/network/NetworkLogView.ts +1 -1
- package/front_end/panels/recorder/RecorderController.ts +7 -1
- package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +2 -1
- package/front_end/panels/settings/SettingsScreen.ts +3 -2
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +42 -294
- package/front_end/panels/sources/DebuggerPausedMessage.ts +3 -3
- package/front_end/panels/sources/SourcesPanel.ts +5 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +3 -2
- package/front_end/panels/timeline/components/LiveMetricsView.ts +18 -6
- package/front_end/panels/timeline/components/MetricCard.ts +2 -2
- package/front_end/panels/timeline/components/insights/NodeLink.ts +4 -4
- 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/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +4 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkEventManager.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkEventManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkEventManager.js +8 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkEventManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js +22 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.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/es5-iife/puppeteer-core-browser.js +34 -6
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +4 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkEventManager.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkEventManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkEventManager.js +8 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkEventManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js +22 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.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/package.json +2 -2
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +5 -1
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkEventManager.ts +16 -1
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +28 -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/tsconfig.json +1 -0
- package/front_end/ui/components/buttons/Button.docs.ts +6 -5
- 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/text_editor/AiCodeCompletionProvider.ts +8 -5
- 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/i18n/i18n.ts +16 -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/UIUtils.ts +1 -34
- package/front_end/ui/legacy/Widget.ts +56 -25
- package/front_end/ui/legacy/XLink.ts +4 -6
- package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +2 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +3 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +294 -336
- package/front_end/ui/legacy/components/utils/Linkifier.ts +2 -1
- package/front_end/ui/legacy/inspectorCommon.css +0 -4
- package/mcp/mcp.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/timeline/CLSLinkifier.ts +0 -58
- package/front_end/ui/components/expandable_list/ExpandableList.docs.ts +0 -30
- /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/panels/{elements → common}/domLinkifier.css +0 -0
|
@@ -163,7 +163,8 @@ export class LiveMetrics extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
|
|
|
163
163
|
* DOM nodes can't be sent over a runtime binding, so we have to retrieve
|
|
164
164
|
* them separately.
|
|
165
165
|
*/
|
|
166
|
-
async #resolveNodeRef(index: number, executionContextId: Protocol.Runtime.ExecutionContextId):
|
|
166
|
+
async #resolveNodeRef(index: number, executionContextId: Protocol.Runtime.ExecutionContextId):
|
|
167
|
+
Promise<SDK.DOMModel.DOMNode|null> {
|
|
167
168
|
if (!this.#target) {
|
|
168
169
|
return null;
|
|
169
170
|
}
|
|
@@ -195,8 +196,7 @@ export class LiveMetrics extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
|
|
|
195
196
|
return null;
|
|
196
197
|
}
|
|
197
198
|
|
|
198
|
-
|
|
199
|
-
return {node, link};
|
|
199
|
+
return node;
|
|
200
200
|
} catch {
|
|
201
201
|
return null;
|
|
202
202
|
} finally {
|
|
@@ -236,26 +236,23 @@ export class LiveMetrics extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
|
|
|
236
236
|
...this.#layoutShifts.flatMap(shift => shift.affectedNodeRefs),
|
|
237
237
|
].filter(nodeRef => !!nodeRef);
|
|
238
238
|
|
|
239
|
-
const idsToRefresh = new Set(toRefresh.map(nodeRef => nodeRef.
|
|
239
|
+
const idsToRefresh = new Set(toRefresh.map(nodeRef => nodeRef.backendNodeId()));
|
|
240
240
|
const nodes = await domModel.pushNodesByBackendIdsToFrontend(idsToRefresh);
|
|
241
241
|
if (!nodes) {
|
|
242
242
|
return;
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
-
|
|
246
|
-
const refreshedNode = nodes.get(
|
|
245
|
+
for (let i = 0; i < toRefresh.length; i++) {
|
|
246
|
+
const refreshedNode = nodes.get(toRefresh[i].backendNodeId());
|
|
247
247
|
|
|
248
248
|
// It is possible for the refreshed node to be undefined even though it was defined previously.
|
|
249
249
|
// We should keep the affected nodes consistent from the user perspective, so we will just keep the stale node instead of removing it.
|
|
250
250
|
if (!refreshedNode) {
|
|
251
|
-
|
|
251
|
+
continue;
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
});
|
|
257
|
-
|
|
258
|
-
await Promise.all(allPromises);
|
|
254
|
+
toRefresh[i] = refreshedNode;
|
|
255
|
+
}
|
|
259
256
|
|
|
260
257
|
this.#sendStatusUpdate();
|
|
261
258
|
}
|
|
@@ -599,14 +596,9 @@ export interface MetricValue {
|
|
|
599
596
|
warnings?: string[];
|
|
600
597
|
}
|
|
601
598
|
|
|
602
|
-
export interface NodeRef {
|
|
603
|
-
node: SDK.DOMModel.DOMNode;
|
|
604
|
-
link: Node;
|
|
605
|
-
}
|
|
606
|
-
|
|
607
599
|
export interface LcpValue extends MetricValue {
|
|
608
600
|
phases: Spec.LcpPhases;
|
|
609
|
-
nodeRef?:
|
|
601
|
+
nodeRef?: SDK.DOMModel.DOMNode;
|
|
610
602
|
}
|
|
611
603
|
|
|
612
604
|
export interface InpValue extends MetricValue {
|
|
@@ -621,7 +613,7 @@ export interface ClsValue extends MetricValue {
|
|
|
621
613
|
export interface LayoutShift {
|
|
622
614
|
score: number;
|
|
623
615
|
uniqueLayoutShiftId: Spec.UniqueLayoutShiftId;
|
|
624
|
-
affectedNodeRefs:
|
|
616
|
+
affectedNodeRefs: SDK.DOMModel.DOMNode[];
|
|
625
617
|
}
|
|
626
618
|
|
|
627
619
|
export interface Interaction {
|
|
@@ -633,7 +625,7 @@ export interface Interaction {
|
|
|
633
625
|
nextPaintTime: number;
|
|
634
626
|
phases: Spec.InpPhases;
|
|
635
627
|
longAnimationFrameTimings: Spec.PerformanceLongAnimationFrameTimingJSON[];
|
|
636
|
-
nodeRef?:
|
|
628
|
+
nodeRef?: SDK.DOMModel.DOMNode;
|
|
637
629
|
}
|
|
638
630
|
|
|
639
631
|
export interface StatusEvent {
|
|
@@ -10,6 +10,7 @@ import * as Protocol from '../../generated/protocol.js';
|
|
|
10
10
|
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
11
11
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
12
12
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
13
|
+
import * as PanelsCommon from '../common/common.js';
|
|
13
14
|
|
|
14
15
|
import accessibilityNodeStyles from './accessibilityNode.css.js';
|
|
15
16
|
import {AXAttributes, AXNativeSourceTypes, AXSourceTypes} from './AccessibilityStrings.js';
|
|
@@ -587,8 +588,11 @@ export class AXRelatedNodeElement {
|
|
|
587
588
|
const valueElement = document.createElement('span');
|
|
588
589
|
element.appendChild(valueElement);
|
|
589
590
|
void this.deferredNode.resolvePromise().then(node => {
|
|
590
|
-
|
|
591
|
-
|
|
591
|
+
if (!node) {
|
|
592
|
+
return;
|
|
593
|
+
}
|
|
594
|
+
valueElement.appendChild(PanelsCommon.DOMLinkifier.Linkifier.instance().linkify(
|
|
595
|
+
node, {tooltip: undefined, preventKeyboardFocus: true}));
|
|
592
596
|
});
|
|
593
597
|
} else if (this.idref) {
|
|
594
598
|
element.classList.add('invalid');
|
|
@@ -17,6 +17,7 @@ import * as TextUtils from '../../models/text_utils/text_utils.js';
|
|
|
17
17
|
import * as Workspace from '../../models/workspace/workspace.js';
|
|
18
18
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
19
19
|
import * as Snackbars from '../../ui/components/snackbars/snackbars.js';
|
|
20
|
+
import * as UIHelpers from '../../ui/helpers/helpers.js';
|
|
20
21
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
21
22
|
import * as Lit from '../../ui/lit/lit.js';
|
|
22
23
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
@@ -474,7 +475,7 @@ function agentToConversationType(agent: AiAssistanceModel.AiAgent.AiAgent<unknow
|
|
|
474
475
|
}
|
|
475
476
|
|
|
476
477
|
if (agent instanceof AiAssistanceModel.PerformanceAgent.PerformanceAgent) {
|
|
477
|
-
return
|
|
478
|
+
return AiAssistanceModel.AiHistoryStorage.ConversationType.PERFORMANCE;
|
|
478
479
|
}
|
|
479
480
|
|
|
480
481
|
throw new Error('Provided agent does not have a corresponding conversation type');
|
|
@@ -957,7 +958,7 @@ export class AiAssistancePanel extends UI.Panel.Panel {
|
|
|
957
958
|
onDeleteClick: this.#onDeleteClicked.bind(this),
|
|
958
959
|
onExportConversationClick: this.#onExportConversationClick.bind(this),
|
|
959
960
|
onHelpClick: () => {
|
|
960
|
-
|
|
961
|
+
UIHelpers.openInNewTab(AI_ASSISTANCE_HELP);
|
|
961
962
|
},
|
|
962
963
|
onSettingsClick: () => {
|
|
963
964
|
void UI.ViewManager.ViewManager.instance().showView('chrome-ai');
|
|
@@ -12,7 +12,7 @@ import type * as Platform from '../../../core/platform/platform.js';
|
|
|
12
12
|
import * as SDK from '../../../core/sdk/sdk.js';
|
|
13
13
|
import * as AiAssistanceModel from '../../../models/ai_assistance/ai_assistance.js';
|
|
14
14
|
import * as Workspace from '../../../models/workspace/workspace.js';
|
|
15
|
-
import * as
|
|
15
|
+
import * as PanelsCommon from '../../../panels/common/common.js';
|
|
16
16
|
import * as PanelUtils from '../../../panels/utils/utils.js';
|
|
17
17
|
import * as Marked from '../../../third_party/marked/marked.js';
|
|
18
18
|
import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
|
@@ -532,7 +532,6 @@ export class ChatView extends HTMLElement {
|
|
|
532
532
|
suggestions: this.#props.emptyStateSuggestions,
|
|
533
533
|
userInfo: this.#props.userInfo,
|
|
534
534
|
markdownRenderer: this.#props.markdownRenderer,
|
|
535
|
-
conversationType: this.#props.conversationType,
|
|
536
535
|
changeSummary: this.#props.changeSummary,
|
|
537
536
|
changeManager: this.#props.changeManager,
|
|
538
537
|
onSuggestionClick: this.#handleSuggestionClick,
|
|
@@ -932,7 +931,7 @@ function renderContextTitle(
|
|
|
932
931
|
// FIXME: move this to the model code.
|
|
933
932
|
const hiddenClassList = item.classNames().filter(
|
|
934
933
|
className => className.startsWith(AiAssistanceModel.Injected.AI_ASSISTANCE_CSS_CLASS_NAME));
|
|
935
|
-
return html`<devtools-widget .widgetConfig=${UI.Widget.widgetConfig(
|
|
934
|
+
return html`<devtools-widget .widgetConfig=${UI.Widget.widgetConfig(PanelsCommon.DOMLinkifier.DOMNodeLink, {
|
|
936
935
|
node: item,
|
|
937
936
|
options: {hiddenClassList, disabled}
|
|
938
937
|
})}></devtools-widget>`;
|
|
@@ -1458,7 +1457,6 @@ function renderMainContents({
|
|
|
1458
1457
|
onFeedbackSubmit: (rpcId: Host.AidaClient.RpcGlobalId, rate: Host.AidaClient.Rating, feedback?: string) => void,
|
|
1459
1458
|
onCopyResponseClick: (message: ModelChatMessage) => void,
|
|
1460
1459
|
onMessageContainerRef: (el: Element|undefined) => void,
|
|
1461
|
-
conversationType: AiAssistanceModel.AiHistoryStorage.ConversationType,
|
|
1462
1460
|
changeSummary?: string,
|
|
1463
1461
|
}): Lit.LitTemplate {
|
|
1464
1462
|
if (messages.length > 0) {
|
|
@@ -8,6 +8,7 @@ import type * as Protocol from '../../../generated/protocol.js';
|
|
|
8
8
|
import * as Trace from '../../../models/trace/trace.js';
|
|
9
9
|
import type * as Marked from '../../../third_party/marked/marked.js';
|
|
10
10
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
11
|
+
import * as PanelsCommon from '../../common/common.js';
|
|
11
12
|
|
|
12
13
|
import {MarkdownRendererWithCodeBlock} from './MarkdownRendererWithCodeBlock.js';
|
|
13
14
|
|
|
@@ -84,7 +85,7 @@ export class PerformanceAgentMarkdownRenderer extends MarkdownRendererWithCodeBl
|
|
|
84
85
|
return;
|
|
85
86
|
}
|
|
86
87
|
|
|
87
|
-
const linkedNode =
|
|
88
|
+
const linkedNode = PanelsCommon.DOMLinkifier.Linkifier.instance().linkify(node, {textContent: label});
|
|
88
89
|
return linkedNode;
|
|
89
90
|
}
|
|
90
91
|
}
|
|
@@ -8,6 +8,7 @@ import * as i18n from '../../../core/i18n/i18n.js';
|
|
|
8
8
|
import type * as Platform from '../../../core/platform/platform.js';
|
|
9
9
|
import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
|
10
10
|
import * as Input from '../../../ui/components/input/input.js';
|
|
11
|
+
import * as UIHelpers from '../../../ui/helpers/helpers.js';
|
|
11
12
|
import * as UI from '../../../ui/legacy/legacy.js';
|
|
12
13
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
13
14
|
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
@@ -321,7 +322,7 @@ export class UserActionRow extends UI.Widget.Widget implements UserActionRowWidg
|
|
|
321
322
|
{
|
|
322
323
|
onSuggestionClick: this.onSuggestionClick,
|
|
323
324
|
onRatingClick: this.#handleRateClick.bind(this),
|
|
324
|
-
onReportClick: () =>
|
|
325
|
+
onReportClick: () => UIHelpers.openInNewTab(REPORT_URL),
|
|
325
326
|
onCopyResponseClick: this.onCopyResponseClick,
|
|
326
327
|
scrollSuggestionsScrollContainer: this.#scrollSuggestionsScrollContainer.bind(this),
|
|
327
328
|
onSuggestionsScrollOrResize: this.#handleSuggestionsScrollOrResize.bind(this),
|
|
@@ -18,6 +18,7 @@ import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
|
18
18
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
19
19
|
import * as Lit from '../../ui/lit/lit.js';
|
|
20
20
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
21
|
+
import * as PanelsCommon from '../common/common.js';
|
|
21
22
|
|
|
22
23
|
import {AnimationGroupPreviewUI} from './AnimationGroupPreviewUI.js';
|
|
23
24
|
import animationTimelineStyles from './animationTimeline.css.js';
|
|
@@ -1222,13 +1223,12 @@ export class NodeUI {
|
|
|
1222
1223
|
}
|
|
1223
1224
|
this.#node = node;
|
|
1224
1225
|
this.nodeChanged();
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
});
|
|
1229
|
-
|
|
1230
|
-
this.#description.appendChild(link);
|
|
1226
|
+
const link = PanelsCommon.DOMLinkifier.Linkifier.instance().linkify(node);
|
|
1227
|
+
link.addEventListener('click', () => {
|
|
1228
|
+
Host.userMetrics.actionTaken(Host.UserMetrics.Action.AnimatedNodeDescriptionClicked);
|
|
1231
1229
|
});
|
|
1230
|
+
|
|
1231
|
+
this.#description.appendChild(link);
|
|
1232
1232
|
if (!node.ownerDocument) {
|
|
1233
1233
|
this.nodeRemoved();
|
|
1234
1234
|
}
|
|
@@ -51,13 +51,13 @@ import {BackForwardCacheTreeElement} from './BackForwardCacheTreeElement.js';
|
|
|
51
51
|
import {BackgroundServiceModel} from './BackgroundServiceModel.js';
|
|
52
52
|
import {BackgroundServiceView} from './BackgroundServiceView.js';
|
|
53
53
|
import {BounceTrackingMitigationsTreeElement} from './BounceTrackingMitigationsTreeElement.js';
|
|
54
|
-
import * as ApplicationComponents from './components/components.js';
|
|
55
54
|
import {type DOMStorage, DOMStorageModel, Events as DOMStorageModelEvents} from './DOMStorageModel.js';
|
|
56
55
|
import {
|
|
57
56
|
Events as ExtensionStorageModelEvents,
|
|
58
57
|
type ExtensionStorage,
|
|
59
58
|
ExtensionStorageModel,
|
|
60
59
|
} from './ExtensionStorageModel.js';
|
|
60
|
+
import {FrameDetailsReportView} from './FrameDetailsView.js';
|
|
61
61
|
import {
|
|
62
62
|
type Database as IndexedDBModelDatabase,
|
|
63
63
|
type DatabaseId,
|
|
@@ -2149,8 +2149,7 @@ export class FrameTreeElement extends ApplicationPanelTreeElement {
|
|
|
2149
2149
|
private readonly treeElementForResource: Map<string, FrameResourceTreeElement>;
|
|
2150
2150
|
private treeElementForWindow: Map<Protocol.Target.TargetID, FrameWindowTreeElement>;
|
|
2151
2151
|
private treeElementForWorker: Map<Protocol.Target.TargetID, WorkerTreeElement>;
|
|
2152
|
-
private view:
|
|
2153
|
-
.LegacyWrapper<UI.Widget.Widget, ApplicationComponents.FrameDetailsView.FrameDetailsReportView>|null;
|
|
2152
|
+
private view: FrameDetailsReportView|null;
|
|
2154
2153
|
|
|
2155
2154
|
constructor(section: ResourcesSection, frame: SDK.ResourceTreeModel.ResourceTreeFrame) {
|
|
2156
2155
|
super(section.panel, '', false, 'frame');
|
|
@@ -2195,8 +2194,8 @@ export class FrameTreeElement extends ApplicationPanelTreeElement {
|
|
|
2195
2194
|
this.treeElementForWorker.clear();
|
|
2196
2195
|
|
|
2197
2196
|
if (this.selected) {
|
|
2198
|
-
this.view =
|
|
2199
|
-
|
|
2197
|
+
this.view = new FrameDetailsReportView();
|
|
2198
|
+
this.view.frame = this.frame;
|
|
2200
2199
|
this.showView(this.view);
|
|
2201
2200
|
} else {
|
|
2202
2201
|
this.view = null;
|
|
@@ -2233,8 +2232,8 @@ export class FrameTreeElement extends ApplicationPanelTreeElement {
|
|
|
2233
2232
|
override onselect(selectedByUser?: boolean): boolean {
|
|
2234
2233
|
super.onselect(selectedByUser);
|
|
2235
2234
|
if (!this.view) {
|
|
2236
|
-
this.view =
|
|
2237
|
-
|
|
2235
|
+
this.view = new FrameDetailsReportView();
|
|
2236
|
+
this.view.frame = this.frame;
|
|
2238
2237
|
}
|
|
2239
2238
|
Host.userMetrics.panelShown('frame-details');
|
|
2240
2239
|
this.showView(this.view);
|