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
|
@@ -196,7 +196,7 @@ interface ViewInput {
|
|
|
196
196
|
callbacks: {
|
|
197
197
|
onClose: () => void,
|
|
198
198
|
onSearch: () => void,
|
|
199
|
-
onRating: (
|
|
199
|
+
onRating: (isPositive: boolean) => void,
|
|
200
200
|
onReport: () => void,
|
|
201
201
|
onGoToSignIn: () => void,
|
|
202
202
|
onConsentReminderConfirmed: () => Promise<void>,
|
|
@@ -209,6 +209,8 @@ interface ViewInput {
|
|
|
209
209
|
|
|
210
210
|
interface ViewOutput {
|
|
211
211
|
referenceDetailsRef: Lit.Directives.Ref<HTMLDetailsElement>;
|
|
212
|
+
headerRef: Lit.Directives.Ref<HTMLHeadingElement>;
|
|
213
|
+
citationLinks: HTMLElement[];
|
|
212
214
|
}
|
|
213
215
|
|
|
214
216
|
const enum State {
|
|
@@ -297,7 +299,7 @@ function renderLearnMoreAboutInsights(): Lit.TemplateResult {
|
|
|
297
299
|
// clang-format on
|
|
298
300
|
}
|
|
299
301
|
|
|
300
|
-
function maybeRenderSources(directCitationUrls: string[]): Lit.LitTemplate {
|
|
302
|
+
function maybeRenderSources(directCitationUrls: string[], output: ViewOutput): Lit.LitTemplate {
|
|
301
303
|
if (!directCitationUrls.length) {
|
|
302
304
|
return Lit.nothing;
|
|
303
305
|
}
|
|
@@ -310,8 +312,8 @@ function maybeRenderSources(directCitationUrls: string[]): Lit.LitTemplate {
|
|
|
310
312
|
<x-link
|
|
311
313
|
href=${url}
|
|
312
314
|
class="link"
|
|
313
|
-
data-index=${index + 1}
|
|
314
315
|
jslog=${VisualLogging.link('references.console-insights').track({click: true})}
|
|
316
|
+
${Directives.ref(e => { output.citationLinks[index] = e as HTMLElement; })}
|
|
315
317
|
>
|
|
316
318
|
${url}
|
|
317
319
|
</x-link>
|
|
@@ -376,7 +378,7 @@ function renderInsight(
|
|
|
376
378
|
${isSearchRagResponse(insight.metadata) ? html`
|
|
377
379
|
<details class="references" ${Directives.ref(output.referenceDetailsRef)} @toggle=${callbacks.onToggleReferenceDetails} jslog=${VisualLogging.expand('references').track({click: true})}>
|
|
378
380
|
<summary>${i18nString(UIStrings.references)}</summary>
|
|
379
|
-
${maybeRenderSources(insight.directCitationUrls)}
|
|
381
|
+
${maybeRenderSources(insight.directCitationUrls, output)}
|
|
380
382
|
${maybeRenderRelatedContent(insight.relatedUrls, insight.directCitationUrls)}
|
|
381
383
|
</details>
|
|
382
384
|
` : Lit.nothing}
|
|
@@ -557,7 +559,7 @@ function renderInsightFooter(noLogging: ViewInput['noLogging'], selectedRating:
|
|
|
557
559
|
.toggled=${selectedRating === true}
|
|
558
560
|
.title=${i18nString(UIStrings.goodResponse)}
|
|
559
561
|
.jslogContext=${'thumbs-up'}
|
|
560
|
-
@click=${callbacks.onRating}
|
|
562
|
+
@click=${() => callbacks.onRating(true)}
|
|
561
563
|
></devtools-button>
|
|
562
564
|
<devtools-button
|
|
563
565
|
data-rating="false"
|
|
@@ -571,7 +573,7 @@ function renderInsightFooter(noLogging: ViewInput['noLogging'], selectedRating:
|
|
|
571
573
|
.toggled=${selectedRating === false}
|
|
572
574
|
.title=${i18nString(UIStrings.badResponse)}
|
|
573
575
|
.jslogContext=${'thumbs-down'}
|
|
574
|
-
@click=${callbacks.onRating}
|
|
576
|
+
@click=${() => callbacks.onRating(false)}
|
|
575
577
|
></devtools-button>
|
|
576
578
|
<devtools-button
|
|
577
579
|
.iconName=${'report'}
|
|
@@ -602,13 +604,15 @@ interface HeaderInput {
|
|
|
602
604
|
onClose: ViewInput['callbacks']['onClose'];
|
|
603
605
|
}
|
|
604
606
|
|
|
605
|
-
function renderHeader(
|
|
607
|
+
function renderHeader(
|
|
608
|
+
{headerText, showIcon = false, showSpinner = false, onClose}: HeaderInput,
|
|
609
|
+
headerRef: Lit.Directives.Ref<HTMLHeadingElement>): Lit.LitTemplate {
|
|
606
610
|
// clang-format off
|
|
607
611
|
return html`
|
|
608
612
|
<header>
|
|
609
613
|
${showIcon ? renderHeaderIcon() : Lit.nothing}
|
|
610
614
|
<div class="filler">
|
|
611
|
-
<h2 tabindex="-1">
|
|
615
|
+
<h2 tabindex="-1" ${Directives.ref(headerRef)}>
|
|
612
616
|
${headerText}
|
|
613
617
|
</h2>
|
|
614
618
|
${showSpinner ? html`<devtools-spinner></devtools-spinner>` : Lit.nothing}
|
|
@@ -644,7 +648,9 @@ export class ConsoleInsight extends HTMLElement {
|
|
|
644
648
|
|
|
645
649
|
// Main state.
|
|
646
650
|
#state: StateData;
|
|
647
|
-
#referenceDetailsRef =
|
|
651
|
+
#referenceDetailsRef = Directives.createRef<HTMLDetailsElement>();
|
|
652
|
+
#headerRef = Directives.createRef<HTMLHeadingElement>();
|
|
653
|
+
#citationLinks: HTMLElement[] = [];
|
|
648
654
|
#areReferenceDetailsOpen = false;
|
|
649
655
|
|
|
650
656
|
// Rating sub-form state.
|
|
@@ -694,8 +700,7 @@ export class ConsoleInsight extends HTMLElement {
|
|
|
694
700
|
this.#areReferenceDetailsOpen = true;
|
|
695
701
|
this.#render();
|
|
696
702
|
|
|
697
|
-
const highlightedElement =
|
|
698
|
-
this.#shadow.querySelector(`.sources-list x-link[data-index="${index}"]`) as HTMLElement | null;
|
|
703
|
+
const highlightedElement = this.#citationLinks[index - 1];
|
|
699
704
|
if (highlightedElement) {
|
|
700
705
|
UI.UIUtils.runCSSAnimationOnce(highlightedElement, 'highlighted');
|
|
701
706
|
if (areDetailsAlreadyExpanded) {
|
|
@@ -856,7 +861,7 @@ export class ConsoleInsight extends HTMLElement {
|
|
|
856
861
|
this.classList.add('closing');
|
|
857
862
|
}
|
|
858
863
|
|
|
859
|
-
#onRating(
|
|
864
|
+
#onRating(isPositive: boolean): void {
|
|
860
865
|
if (this.#state.type !== State.INSIGHT) {
|
|
861
866
|
throw new Error('Unexpected state');
|
|
862
867
|
}
|
|
@@ -868,7 +873,7 @@ export class ConsoleInsight extends HTMLElement {
|
|
|
868
873
|
return;
|
|
869
874
|
}
|
|
870
875
|
|
|
871
|
-
this.#selectedRating =
|
|
876
|
+
this.#selectedRating = isPositive;
|
|
872
877
|
this.#render();
|
|
873
878
|
if (this.#selectedRating) {
|
|
874
879
|
Host.userMetrics.actionTaken(Host.UserMetrics.Action.InsightRatedPositive);
|
|
@@ -1071,7 +1076,7 @@ export class ConsoleInsight extends HTMLElement {
|
|
|
1071
1076
|
|
|
1072
1077
|
#focusHeader(): void {
|
|
1073
1078
|
this.addEventListener('animationend', () => {
|
|
1074
|
-
|
|
1079
|
+
this.#headerRef.value?.focus();
|
|
1075
1080
|
}, {once: true});
|
|
1076
1081
|
}
|
|
1077
1082
|
|
|
@@ -1118,6 +1123,8 @@ export class ConsoleInsight extends HTMLElement {
|
|
|
1118
1123
|
};
|
|
1119
1124
|
const output: ViewOutput = {
|
|
1120
1125
|
referenceDetailsRef: this.#referenceDetailsRef,
|
|
1126
|
+
headerRef: this.#headerRef,
|
|
1127
|
+
citationLinks: [],
|
|
1121
1128
|
};
|
|
1122
1129
|
|
|
1123
1130
|
// Future Widget view function starts here.
|
|
@@ -1132,21 +1139,23 @@ export class ConsoleInsight extends HTMLElement {
|
|
|
1132
1139
|
|
|
1133
1140
|
switch (state.type) {
|
|
1134
1141
|
case State.LOADING:
|
|
1135
|
-
header = renderHeader({headerText: i18nString(UIStrings.generating), onClose});
|
|
1142
|
+
header = renderHeader({headerText: i18nString(UIStrings.generating), onClose}, output.headerRef);
|
|
1136
1143
|
main = renderLoading();
|
|
1137
1144
|
break;
|
|
1138
1145
|
case State.INSIGHT:
|
|
1139
|
-
header = renderHeader(
|
|
1146
|
+
header = renderHeader(
|
|
1147
|
+
{headerText: i18nString(UIStrings.insight), onClose, showSpinner: !state.completed}, output.headerRef);
|
|
1140
1148
|
main = renderInsight(state, input.renderer, input.disableAnimations, callbacks, output);
|
|
1141
1149
|
footer = renderInsightFooter(noLogging, input.selectedRating, callbacks);
|
|
1142
1150
|
break;
|
|
1143
1151
|
case State.ERROR:
|
|
1144
|
-
header = renderHeader({headerText: i18nString(UIStrings.error), onClose});
|
|
1152
|
+
header = renderHeader({headerText: i18nString(UIStrings.error), onClose}, output.headerRef);
|
|
1145
1153
|
main = renderError(i18nString(UIStrings.errorBody));
|
|
1146
1154
|
footer = renderDisclaimerFooter(noLogging, onDisclaimerSettingsLink);
|
|
1147
1155
|
break;
|
|
1148
1156
|
case State.CONSENT_REMINDER:
|
|
1149
|
-
header = renderHeader(
|
|
1157
|
+
header = renderHeader(
|
|
1158
|
+
{headerText: 'Understand console messages with AI', onClose, showIcon: true}, output.headerRef);
|
|
1150
1159
|
mainClasses['reminder-container'] = true;
|
|
1151
1160
|
main = renderConsentReminder(noLogging);
|
|
1152
1161
|
footer = renderConsentReminderFooter(callbacks.onReminderSettingsLink, callbacks.onConsentReminderConfirmed);
|
|
@@ -1157,12 +1166,12 @@ export class ConsoleInsight extends HTMLElement {
|
|
|
1157
1166
|
break;
|
|
1158
1167
|
case State.NOT_LOGGED_IN:
|
|
1159
1168
|
case State.SYNC_IS_PAUSED:
|
|
1160
|
-
header = renderHeader({headerText: i18nString(UIStrings.signInToUse), onClose});
|
|
1169
|
+
header = renderHeader({headerText: i18nString(UIStrings.signInToUse), onClose}, output.headerRef);
|
|
1161
1170
|
main = renderNotLoggedIn();
|
|
1162
1171
|
footer = renderSignInFooter(callbacks.onGoToSignIn);
|
|
1163
1172
|
break;
|
|
1164
1173
|
case State.OFFLINE:
|
|
1165
|
-
header = renderHeader({headerText: i18nString(UIStrings.offlineHeader), onClose});
|
|
1174
|
+
header = renderHeader({headerText: i18nString(UIStrings.offlineHeader), onClose}, output.headerRef);
|
|
1166
1175
|
main = renderError(i18nString(UIStrings.offline));
|
|
1167
1176
|
footer = renderDisclaimerFooter(noLogging, onDisclaimerSettingsLink);
|
|
1168
1177
|
break;
|
|
@@ -1188,6 +1197,8 @@ export class ConsoleInsight extends HTMLElement {
|
|
|
1188
1197
|
});
|
|
1189
1198
|
// clang-format on
|
|
1190
1199
|
|
|
1200
|
+
this.#citationLinks = output.citationLinks;
|
|
1201
|
+
|
|
1191
1202
|
if (this.#referenceDetailsRef.value) {
|
|
1192
1203
|
this.#referenceDetailsRef.value.open = this.#areReferenceDetailsOpen;
|
|
1193
1204
|
}
|
|
@@ -17,6 +17,7 @@ import * as RequestLinkIcon from '../../ui/components/request_link_icon/request_
|
|
|
17
17
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
18
18
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
19
19
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
20
|
+
import * as PanelsCommon from '../common/common.js';
|
|
20
21
|
|
|
21
22
|
import type {IssueView} from './IssueView.js';
|
|
22
23
|
|
|
@@ -230,7 +231,7 @@ export abstract class AffectedResourcesView extends UI.TreeOutline.TreeElement {
|
|
|
230
231
|
}
|
|
231
232
|
|
|
232
233
|
const deferredDOMNode = new SDK.DOMModel.DeferredDOMNode(target, backendNodeId);
|
|
233
|
-
const anchorElement =
|
|
234
|
+
const anchorElement = PanelsCommon.DOMLinkifier.Linkifier.instance().linkify(deferredDOMNode) as HTMLElement;
|
|
234
235
|
anchorElement.textContent = nodeName;
|
|
235
236
|
anchorElement.addEventListener('click', () => sendTelemetry());
|
|
236
237
|
anchorElement.addEventListener('keydown', (event: Event) => {
|
|
@@ -275,12 +275,9 @@ export class ProtocolService implements ProtocolClient.CDPConnection.CDPConnecti
|
|
|
275
275
|
// Instead, we ignore the ID coming from the worker when sending the command, but
|
|
276
276
|
// patch it back in when sending the response back to the worker.
|
|
277
277
|
void this.connection?.send(method, params, sessionId).then(response => {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
result: 'result' in response ? response.result : undefined,
|
|
282
|
-
error: 'error' in response ? response.error : undefined,
|
|
283
|
-
});
|
|
278
|
+
const message =
|
|
279
|
+
'result' in response ? {id, sessionId, result: response.result} : {id, sessionId, error: response.error};
|
|
280
|
+
this.dispatchProtocolMessage(message);
|
|
284
281
|
});
|
|
285
282
|
}
|
|
286
283
|
|
|
@@ -13,6 +13,7 @@ import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
|
13
13
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
14
14
|
import * as ThemeSupport from '../../ui/legacy/theme_support/theme_support.js';
|
|
15
15
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
16
|
+
import * as PanelsCommon from '../common/common.js';
|
|
16
17
|
|
|
17
18
|
import type {
|
|
18
19
|
NodeDetailsJSON, ReportJSON, RunnerResultArtifacts, SourceLocationDetailsJSON} from './LighthouseReporterTypes.js';
|
|
@@ -148,7 +149,7 @@ export class LighthouseReportRenderer {
|
|
|
148
149
|
continue;
|
|
149
150
|
}
|
|
150
151
|
|
|
151
|
-
const element =
|
|
152
|
+
const element = PanelsCommon.DOMLinkifier.Linkifier.instance().linkify(
|
|
152
153
|
node, {tooltip: detailsItem.snippet, preventKeyboardFocus: undefined});
|
|
153
154
|
UI.Tooltip.Tooltip.install(origHTMLElement, '');
|
|
154
155
|
|
|
@@ -2484,7 +2484,7 @@ export class NetworkLogView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
2484
2484
|
.replace(/"/g, '\\"')
|
|
2485
2485
|
.replace(/[^a-zA-Z0-9\s_\-:=+~'\/.',?;()*`]/g, '^$&')
|
|
2486
2486
|
.replace(/%(?=[a-zA-Z0-9_])/g, '%^')
|
|
2487
|
-
.replace(/[
|
|
2487
|
+
.replace(/[^ -~\r\n]/g, ' ')
|
|
2488
2488
|
.replace(/\r?\n|\r/g, '^\n\n') +
|
|
2489
2489
|
encapsChars;
|
|
2490
2490
|
}
|
|
@@ -1179,7 +1179,13 @@ export class RecorderController extends LitElement {
|
|
|
1179
1179
|
<div class="empty-state-header">${i18nString(UIStrings.header)}</div>
|
|
1180
1180
|
<div class="empty-state-description">
|
|
1181
1181
|
<span>${i18nString(UIStrings.recordingDescription)}</span>
|
|
1182
|
-
|
|
1182
|
+
<x-link
|
|
1183
|
+
class="x-link devtools-link"
|
|
1184
|
+
href=${RECORDER_EXPLANATION_URL}
|
|
1185
|
+
jslog=${VisualLogging.link()
|
|
1186
|
+
.track({ click: true, keydown: 'Enter|Space' })
|
|
1187
|
+
.context('learn-more')}
|
|
1188
|
+
>${i18nString(UIStrings.learnMore)}</x-link>
|
|
1183
1189
|
</div>
|
|
1184
1190
|
<devtools-button .variant=${Buttons.Button.Variant.TONAL} jslogContext=${Actions.RecorderActions.CREATE_RECORDING} @click=${this.#onCreateNewRecording}>${i18nString(UIStrings.createRecording)}</devtools-button>
|
|
1185
1191
|
</div>
|
|
@@ -8,6 +8,7 @@ import '../../ui/components/cards/cards.js';
|
|
|
8
8
|
import * as Common from '../../core/common/common.js';
|
|
9
9
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
10
10
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
11
|
+
import * as UIHelpers from '../../ui/helpers/helpers.js';
|
|
11
12
|
import * as SettingsUI from '../../ui/legacy/components/settings_ui/settings_ui.js';
|
|
12
13
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
13
14
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
@@ -144,7 +145,7 @@ export class FrameworkIgnoreListSettingsTab extends UI.Widget.VBox implements
|
|
|
144
145
|
};
|
|
145
146
|
automaticallyIgnoreLinkButton.addEventListener(
|
|
146
147
|
'click',
|
|
147
|
-
() =>
|
|
148
|
+
() => UIHelpers.openInNewTab(
|
|
148
149
|
'https://developer.chrome.com/docs/devtools/settings/ignore-list/#skip-third-party'));
|
|
149
150
|
automaticallyIgnoreListContainer.appendChild(automaticallyIgnoreLinkButton);
|
|
150
151
|
|
|
@@ -14,6 +14,7 @@ import * as Root from '../../core/root/root.js';
|
|
|
14
14
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
15
15
|
import type * as Cards from '../../ui/components/cards/cards.js';
|
|
16
16
|
import * as IconButton from '../../ui/components/icon_button/icon_button.js';
|
|
17
|
+
import * as UIHelpers from '../../ui/helpers/helpers.js';
|
|
17
18
|
import * as SettingsUI from '../../ui/legacy/components/settings_ui/settings_ui.js';
|
|
18
19
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
19
20
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
@@ -497,7 +498,7 @@ export class ExperimentsSettingsTab extends UI.Widget.VBox implements SettingsTa
|
|
|
497
498
|
jslogContext: `${experiment.name}-documentation`,
|
|
498
499
|
title: i18nString(UIStrings.learnMore),
|
|
499
500
|
};
|
|
500
|
-
linkButton.addEventListener('click', () =>
|
|
501
|
+
linkButton.addEventListener('click', () => UIHelpers.openInNewTab(experimentLink));
|
|
501
502
|
linkButton.classList.add('link-icon');
|
|
502
503
|
|
|
503
504
|
p.appendChild(linkButton);
|
|
@@ -542,7 +543,7 @@ export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
|
|
|
542
543
|
void SettingsScreen.showSettingsScreen({focusTabHeader: true} as ShowSettingsScreenOptions);
|
|
543
544
|
return true;
|
|
544
545
|
case 'settings.documentation':
|
|
545
|
-
|
|
546
|
+
UIHelpers.openInNewTab('https://developer.chrome.com/docs/devtools/');
|
|
546
547
|
return true;
|
|
547
548
|
case 'settings.shortcuts':
|
|
548
549
|
void SettingsScreen.showSettingsScreen({name: 'keybinds', focusTabHeader: true});
|