chrome-devtools-frontend 1.0.1516909 → 1.0.1519267
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/config/owner/COMMON_OWNERS +2 -2
- package/docs/checklist/README.md +2 -2
- package/docs/checklist/javascript.md +1 -1
- package/docs/contributing/README.md +1 -1
- package/docs/contributing/settings-experiments-features.md +9 -8
- package/docs/cookbook/devtools_on_devtools.md +2 -2
- package/docs/cookbook/localization.md +10 -10
- package/docs/devtools-protocol.md +9 -8
- package/docs/ecosystem/automatic_workspace_folders.md +3 -3
- package/docs/get_the_code.md +0 -2
- package/docs/styleguide/ux/components.md +166 -85
- package/docs/styleguide/ux/numbers.md +3 -4
- package/eslint.config.mjs +1 -0
- package/front_end/core/common/README.md +13 -12
- package/front_end/core/host/GdpClient.ts +16 -1
- package/front_end/core/host/UserMetrics.ts +4 -2
- package/front_end/core/root/Runtime.ts +13 -0
- package/front_end/core/sdk/CSSMatchedStyles.ts +5 -1
- package/front_end/core/sdk/EnhancedTracesParser.ts +5 -5
- package/front_end/core/sdk/RehydratingConnection.snapshot.txt +211 -0
- package/front_end/core/sdk/TargetManager.ts +4 -0
- package/front_end/entrypoints/main/MainImpl.ts +6 -3
- package/front_end/generated/InspectorBackendCommands.js +10 -7
- package/front_end/generated/SupportedCSSProperties.js +40 -11
- package/front_end/generated/protocol-mapping.d.ts +16 -1
- package/front_end/generated/protocol-proxy-api.d.ts +13 -1
- package/front_end/generated/protocol.ts +95 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +57 -10
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +119 -51
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +0 -31
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +14 -181
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +19 -315
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +224 -50
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +310 -11
- package/front_end/models/ai_assistance/performance/AIContext.ts +15 -2
- package/front_end/models/ai_code_completion/AiCodeCompletion.ts +22 -11
- package/front_end/models/badges/AiExplorerBadge.ts +19 -3
- package/front_end/models/badges/Badge.ts +10 -3
- package/front_end/models/badges/CodeWhispererBadge.ts +3 -4
- package/front_end/models/badges/DOMDetectiveBadge.ts +1 -0
- package/front_end/models/badges/SpeedsterBadge.ts +1 -0
- package/front_end/models/badges/StarterBadge.ts +3 -2
- package/front_end/models/badges/UserBadges.ts +21 -3
- package/front_end/models/badges/badges.ts +1 -0
- package/front_end/models/javascript_metadata/NativeFunctions.js +2 -2
- package/front_end/models/trace/EventsSerializer.ts +4 -3
- package/front_end/models/trace/README.md +28 -1
- package/front_end/models/trace/handlers/UserInteractionsHandler.ts +101 -73
- package/front_end/models/trace/handlers/UserTimingsHandler.ts +1 -1
- package/front_end/models/trace/helpers/Timing.ts +1 -1
- package/front_end/models/trace/helpers/Trace.ts +99 -43
- package/front_end/models/trace/types/TraceEvents.ts +9 -0
- package/front_end/panels/accessibility/ARIAAttributesView.ts +113 -191
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +9 -9
- package/front_end/panels/accessibility/AccessibilitySubPane.ts +6 -4
- package/front_end/panels/accessibility/accessibilityProperties.css +2 -0
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +20 -3
- package/front_end/panels/ai_assistance/components/ChatView.ts +9 -10
- package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +44 -0
- package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +2 -2
- package/front_end/panels/common/AiCodeCompletionDisclaimer.ts +32 -9
- package/front_end/panels/common/AiCodeCompletionSummaryToolbar.ts +7 -1
- package/front_end/panels/common/BadgeNotification.ts +21 -5
- package/front_end/panels/common/GdpSignUpDialog.ts +20 -12
- package/front_end/panels/console/ConsolePrompt.ts +1 -1
- package/front_end/panels/console/ConsoleView.ts +6 -2
- package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +5 -5
- package/front_end/panels/elements/ElementsPanel.ts +4 -0
- package/front_end/panels/elements/ElementsTreeElement.ts +18 -0
- package/front_end/panels/elements/ElementsTreeOutline.ts +13 -0
- package/front_end/panels/elements/StylePropertyTreeElement.ts +21 -6
- package/front_end/panels/media/TickingFlameChart.ts +1 -1
- package/front_end/panels/profiler/HeapSnapshotView.ts +34 -19
- package/front_end/panels/recorder/components/RecordingView.ts +2 -2
- package/front_end/panels/search/SearchResultsPane.ts +167 -152
- package/front_end/panels/search/SearchView.ts +36 -26
- package/front_end/panels/search/searchResultsPane.css +9 -0
- package/front_end/panels/security/CookieControlsView.ts +2 -1
- package/front_end/panels/settings/AISettingsTab.ts +6 -3
- package/front_end/panels/settings/components/SyncSection.ts +39 -17
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +1 -1
- package/front_end/panels/sources/AiCodeCompletionPlugin.ts +9 -1
- package/front_end/panels/sources/SourcesPanel.ts +4 -1
- package/front_end/panels/sources/sourcesView.css +6 -1
- package/front_end/panels/timeline/AppenderUtils.ts +2 -2
- package/front_end/panels/timeline/ExtensionTrackAppender.ts +13 -4
- package/front_end/panels/timeline/GPUTrackAppender.ts +2 -1
- package/front_end/panels/timeline/InteractionsTrackAppender.ts +5 -1
- package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +2 -1
- package/front_end/panels/timeline/ThreadAppender.ts +12 -3
- package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +9 -4
- package/front_end/panels/timeline/TimelinePanel.ts +3 -2
- package/front_end/panels/timeline/TimelineUIUtils.ts +5 -4
- package/front_end/panels/timeline/TimingsTrackAppender.ts +6 -1
- package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +95 -82
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +1 -1
- package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -2
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +1 -1
- package/front_end/panels/timeline/components/RelatedInsightChips.ts +1 -1
- package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +1 -1
- package/front_end/panels/timeline/components/cpuThrottlingSelector.css +17 -15
- package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +3 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +6 -9
- package/front_end/third_party/codemirror.next/package.json +2 -1
- package/front_end/third_party/diff/README.chromium +1 -0
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +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/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +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/Function.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Function.js +16 -25
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Function.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/es5-iife/puppeteer-core-browser.js +19 -28
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.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/Function.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Function.js +16 -25
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Function.js.map +1 -1
- package/front_end/third_party/puppeteer/package/package.json +10 -3
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/Function.ts +22 -30
- package/front_end/ui/components/dialogs/Dialog.ts +1 -1
- package/front_end/ui/components/markdown_view/MarkdownImage.ts +4 -5
- package/front_end/ui/components/switch/SwitchImpl.ts +12 -1
- package/front_end/ui/components/text_editor/config.ts +22 -9
- package/front_end/ui/components/tooltips/Tooltip.ts +70 -31
- package/front_end/ui/legacy/README.md +33 -24
- package/front_end/ui/legacy/SearchableView.ts +19 -26
- package/front_end/ui/legacy/TextPrompt.ts +166 -1
- package/front_end/ui/legacy/Treeoutline.ts +19 -3
- package/front_end/ui/legacy/UIUtils.ts +15 -2
- package/front_end/ui/legacy/XElement.ts +0 -43
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +20 -4
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +12 -11
- package/front_end/ui/lit/i18n-template.ts +5 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +23 -6
- package/front_end/ui/visual_logging/README.md +43 -27
- package/package.json +1 -1
@@ -65,53 +65,10 @@ class XBox extends XElement {
|
|
65
65
|
}
|
66
66
|
}
|
67
67
|
|
68
|
-
class XVBox extends XBox {
|
69
|
-
constructor() {
|
70
|
-
super('column');
|
71
|
-
}
|
72
|
-
}
|
73
|
-
|
74
68
|
class XHBox extends XBox {
|
75
69
|
constructor() {
|
76
70
|
super('row');
|
77
71
|
}
|
78
72
|
}
|
79
73
|
|
80
|
-
class XCBox extends XElement {
|
81
|
-
constructor() {
|
82
|
-
super();
|
83
|
-
this.style.setProperty('display', 'flex');
|
84
|
-
this.style.setProperty('flex-direction', 'column');
|
85
|
-
this.style.setProperty('justify-content', 'center');
|
86
|
-
this.style.setProperty('align-items', 'center');
|
87
|
-
}
|
88
|
-
}
|
89
|
-
|
90
|
-
class XDiv extends XElement {
|
91
|
-
constructor() {
|
92
|
-
super();
|
93
|
-
this.style.setProperty('display', 'block');
|
94
|
-
}
|
95
|
-
}
|
96
|
-
|
97
|
-
class XSpan extends XElement {
|
98
|
-
constructor() {
|
99
|
-
super();
|
100
|
-
this.style.setProperty('display', 'inline');
|
101
|
-
}
|
102
|
-
}
|
103
|
-
|
104
|
-
class XText extends XElement {
|
105
|
-
constructor() {
|
106
|
-
super();
|
107
|
-
this.style.setProperty('display', 'inline');
|
108
|
-
this.style.setProperty('white-space', 'pre');
|
109
|
-
}
|
110
|
-
}
|
111
|
-
|
112
|
-
customElements.define('x-vbox', XVBox);
|
113
74
|
customElements.define('x-hbox', XHBox);
|
114
|
-
customElements.define('x-cbox', XCBox);
|
115
|
-
customElements.define('x-div', XDiv);
|
116
|
-
customElements.define('x-span', XSpan);
|
117
|
-
customElements.define('x-text', XText);
|
@@ -148,6 +148,12 @@ export const enum HoverType {
|
|
148
148
|
ERROR = 'ERROR',
|
149
149
|
}
|
150
150
|
|
151
|
+
export const enum GroupCollapsibleState {
|
152
|
+
ALWAYS = 0,
|
153
|
+
NEVER = 1,
|
154
|
+
IF_MULTI_ROW = 2
|
155
|
+
}
|
156
|
+
|
151
157
|
export interface FlameChartDelegate {
|
152
158
|
windowChanged(_startTime: number, _endTime: number, _animate: boolean): void;
|
153
159
|
updateRangeSelection(_startTime: number, _endTime: number): void;
|
@@ -3793,10 +3799,21 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
3793
3799
|
|
3794
3800
|
const groups = this.rawTimelineData.groups || [];
|
3795
3801
|
const style = groups[index].style;
|
3796
|
-
if (
|
3797
|
-
return
|
3802
|
+
if (style.collapsible === GroupCollapsibleState.NEVER) {
|
3803
|
+
return false;
|
3804
|
+
}
|
3805
|
+
if (!style.shareHeaderLine) {
|
3806
|
+
return style.collapsible === GroupCollapsibleState.ALWAYS;
|
3798
3807
|
}
|
3799
3808
|
const isLastGroup = index + 1 >= groups.length;
|
3809
|
+
if (style.collapsible === GroupCollapsibleState.IF_MULTI_ROW) {
|
3810
|
+
const nextRowStartLevel = isLastGroup ? this.dataProvider.maxStackDepth() : groups[index + 1].startLevel;
|
3811
|
+
const rowsInCurrentGroup = nextRowStartLevel - groups[index].startLevel;
|
3812
|
+
// If everything fits in one line, there's no need to offer the expand capability.
|
3813
|
+
if (rowsInCurrentGroup < 2) {
|
3814
|
+
return false;
|
3815
|
+
}
|
3816
|
+
}
|
3800
3817
|
if (!isLastGroup && groups[index + 1].style.nestingLevel > style.nestingLevel) {
|
3801
3818
|
return true;
|
3802
3819
|
}
|
@@ -4421,8 +4438,7 @@ export interface Group {
|
|
4421
4438
|
export interface GroupStyle {
|
4422
4439
|
height: number;
|
4423
4440
|
padding: number;
|
4424
|
-
|
4425
|
-
collapsible: boolean;
|
4441
|
+
collapsible: GroupCollapsibleState;
|
4426
4442
|
/** The color of the group title text. */
|
4427
4443
|
color: string;
|
4428
4444
|
/**
|
@@ -129,7 +129,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
129
129
|
}
|
130
130
|
}
|
131
131
|
}
|
132
|
-
return
|
132
|
+
return UI.TreeOutline.TreeSearch.highlight(highlights, selected);
|
133
133
|
}
|
134
134
|
|
135
135
|
function layOutNode(node: XMLTreeViewNode, populateSubtrees = false): Lit.LitTemplate {
|
@@ -138,13 +138,15 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
138
138
|
|
139
139
|
// clang-format off
|
140
140
|
return html`
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
141
|
+
<li ${highlight(node, /* closeTag=*/ false)} role="treeitem"
|
142
|
+
?selected=${input.jumpToNextSearchResult?.node === node}
|
143
|
+
@expand=${onExpand}>
|
144
|
+
${htmlView(node)}
|
145
|
+
${node.children().length ? html`
|
146
|
+
<ul role="group" ?hidden=${!node.expanded}>
|
147
|
+
${populateSubtrees || input.search ? subtree(node) : Lit.nothing}
|
148
|
+
</ul>` : Lit.nothing}
|
149
|
+
</li>`;
|
148
150
|
// clang-format on
|
149
151
|
}
|
150
152
|
|
@@ -154,15 +156,14 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
154
156
|
return Lit.nothing;
|
155
157
|
}
|
156
158
|
// clang-format off
|
157
|
-
return html
|
159
|
+
return html`
|
158
160
|
${children.map(child => layOutNode(child, treeNode.expanded))}
|
159
161
|
${treeNode.node instanceof Element
|
160
162
|
? html`<li
|
161
163
|
${highlight(treeNode, /* closeTag=*/ true)}
|
162
164
|
role="treeitem"><span part='shadow-xml-view-close-tag'>${'</' + treeNode.node.tagName + '>'}</span
|
163
165
|
></li>`
|
164
|
-
: Lit.nothing}
|
165
|
-
</ul>`;
|
166
|
+
: Lit.nothing}`;
|
166
167
|
// clang-format on
|
167
168
|
}
|
168
169
|
|
@@ -2,6 +2,9 @@
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
3
3
|
// found in the LICENSE file.
|
4
4
|
|
5
|
+
// This files is import lit directly
|
6
|
+
/* eslint-disable rulesdir/lit-template-result-or-nothing */
|
7
|
+
|
5
8
|
import * as i18n from '../../core/i18n/i18n.js';
|
6
9
|
import type * as I18n from '../../third_party/i18n/i18n.js';
|
7
10
|
import * as Lit from '../../third_party/lit/lit.js';
|
@@ -14,10 +17,10 @@ const {html} = Lit.StaticHtml;
|
|
14
17
|
*/
|
15
18
|
export function i18nTemplate(
|
16
19
|
registeredStrings: I18n.LocalizedStringSet.RegisteredFileStrings, stringId: string,
|
17
|
-
placeholders: Record<string, Lit.TemplateResult|string>): Lit.TemplateResult {
|
20
|
+
placeholders: Record<string, Lit.TemplateResult|string>): Lit.TemplateResult|typeof Lit.nothing {
|
18
21
|
const formatter = registeredStrings.getLocalizedStringSetFor(i18n.DevToolsLocale.DevToolsLocale.instance().locale)
|
19
22
|
.getMessageFormatterFor(stringId);
|
20
|
-
let result =
|
23
|
+
let result: Lit.TemplateResult|typeof Lit.nothing = Lit.nothing;
|
21
24
|
for (const icuElement of formatter.getAst()) {
|
22
25
|
if (icuElement.type === /* argumentElement */ 1) {
|
23
26
|
const placeholderValue = placeholders[icuElement.value];
|
@@ -348,9 +348,11 @@ export const knownContextValues = new Set([
|
|
348
348
|
'ai-code-completion-citations.citation-link',
|
349
349
|
'ai-code-completion-disclaimer',
|
350
350
|
'ai-code-completion-enabled',
|
351
|
+
'ai-code-completion-spinner-tooltip',
|
351
352
|
'ai-code-completion-teaser-dismissed',
|
352
353
|
'ai-code-completion-teaser.dismiss',
|
353
354
|
'ai-code-completion-teaser.fre',
|
355
|
+
'ai-explorer',
|
354
356
|
'ai_assistance',
|
355
357
|
'align-content',
|
356
358
|
'align-content-center',
|
@@ -540,6 +542,7 @@ export const knownContextValues = new Set([
|
|
540
542
|
'background-services',
|
541
543
|
'background-size',
|
542
544
|
'background-sync',
|
545
|
+
'badge-notification',
|
543
546
|
'badge-notification.dismiss',
|
544
547
|
'badproperty',
|
545
548
|
'bars',
|
@@ -713,6 +716,7 @@ export const knownContextValues = new Set([
|
|
713
716
|
'chrome-android-mobile-high-end',
|
714
717
|
'chrome-android-tablet',
|
715
718
|
'chrome-chrome-os',
|
719
|
+
'chrome-devtools-user',
|
716
720
|
'chrome-extension://fmkadmapgofadopljbjfkapdkoienihi⚛️Components',
|
717
721
|
'chrome-extension://fmkadmapgofadopljbjfkapdkoienihi⚛️Profiler',
|
718
722
|
'chrome-extension://ienfalfjdbdpebioblfackkekamfmbnhAngular',
|
@@ -780,6 +784,7 @@ export const knownContextValues = new Set([
|
|
780
784
|
'code-snippets-explainer.console-insights',
|
781
785
|
'code-snippets-explainer.freestyler',
|
782
786
|
'code-snippets-explainer.patch-widget',
|
787
|
+
'code-whisperer',
|
783
788
|
'collapse',
|
784
789
|
'collapse-children',
|
785
790
|
'collapsed-files',
|
@@ -884,6 +889,7 @@ export const knownContextValues = new Set([
|
|
884
889
|
'content',
|
885
890
|
'content-encoding',
|
886
891
|
'content-length',
|
892
|
+
'content-policy',
|
887
893
|
'content-type',
|
888
894
|
'content-visibility',
|
889
895
|
'context',
|
@@ -1028,6 +1034,7 @@ export const knownContextValues = new Set([
|
|
1028
1034
|
'cpu-throttling-selector',
|
1029
1035
|
'cpu-throttling-selector-calibrate',
|
1030
1036
|
'create-new-snippet',
|
1037
|
+
'create-profile',
|
1031
1038
|
'create-recording',
|
1032
1039
|
'create-recording-view',
|
1033
1040
|
'creator-ad-script-ancestry',
|
@@ -1277,6 +1284,7 @@ export const knownContextValues = new Set([
|
|
1277
1284
|
'dom-attr-modified',
|
1278
1285
|
'dom-character-data-modified',
|
1279
1286
|
'dom-content-loaded',
|
1287
|
+
'dom-detective',
|
1280
1288
|
'dom-focus-in',
|
1281
1289
|
'dom-focus-out',
|
1282
1290
|
'dom-mutation',
|
@@ -1692,12 +1700,9 @@ export const knownContextValues = new Set([
|
|
1692
1700
|
'gap-rule-overlap',
|
1693
1701
|
'gap-rule-paint-order',
|
1694
1702
|
'garamond',
|
1695
|
-
'gdp
|
1696
|
-
'gdp
|
1697
|
-
'gdp.
|
1698
|
-
'gdp.sign-up-dialog-open',
|
1699
|
-
'gdp.signup.keep-me-updated',
|
1700
|
-
'gdp.terms-of-service',
|
1703
|
+
'gdp-profile',
|
1704
|
+
'gdp-sign-up-dialog',
|
1705
|
+
'gdp.ai-conversation-count',
|
1701
1706
|
'gen-ai-settings-panel',
|
1702
1707
|
'general',
|
1703
1708
|
'generative-ai-terms-of-service',
|
@@ -1985,6 +1990,7 @@ export const knownContextValues = new Set([
|
|
1985
1990
|
'justify-self',
|
1986
1991
|
'ka',
|
1987
1992
|
'keep-alive',
|
1993
|
+
'keep-me-updated',
|
1988
1994
|
'key',
|
1989
1995
|
'keybinds',
|
1990
1996
|
'keyboard',
|
@@ -2403,6 +2409,7 @@ export const knownContextValues = new Set([
|
|
2403
2409
|
'main.zoom-reset',
|
2404
2410
|
'make-a-copy',
|
2405
2411
|
'manage-header-columns',
|
2412
|
+
'manage-settings',
|
2406
2413
|
'manager-custom-headers',
|
2407
2414
|
'manifest',
|
2408
2415
|
'manifest.copy-id',
|
@@ -2691,6 +2698,7 @@ export const knownContextValues = new Set([
|
|
2691
2698
|
'open-memory-inspector',
|
2692
2699
|
'open-network-panel',
|
2693
2700
|
'open-performance-panel',
|
2701
|
+
'open-sign-up-dialog',
|
2694
2702
|
'open-sources-panel',
|
2695
2703
|
'open-using',
|
2696
2704
|
'opened-windows',
|
@@ -2888,6 +2896,7 @@ export const knownContextValues = new Set([
|
|
2888
2896
|
'priority',
|
2889
2897
|
'privacy',
|
2890
2898
|
'privacy-notice',
|
2899
|
+
'privacy-policy',
|
2891
2900
|
'privacy-policy.console-insights',
|
2892
2901
|
'private-state-tokens',
|
2893
2902
|
'production-origin',
|
@@ -2911,6 +2920,7 @@ export const knownContextValues = new Set([
|
|
2911
2920
|
'profiler.profile-type',
|
2912
2921
|
'profiler.save-to-file',
|
2913
2922
|
'profiles-sidebar',
|
2923
|
+
'program-link',
|
2914
2924
|
'progress',
|
2915
2925
|
'prop',
|
2916
2926
|
'prop1',
|
@@ -2963,6 +2973,7 @@ export const knownContextValues = new Set([
|
|
2963
2973
|
'rec-2020',
|
2964
2974
|
'recalc-style-count',
|
2965
2975
|
'receive',
|
2976
|
+
'receive-badges',
|
2966
2977
|
'receive-gdp-badges',
|
2967
2978
|
'recommendation',
|
2968
2979
|
'reconnect',
|
@@ -2996,6 +3007,7 @@ export const knownContextValues = new Set([
|
|
2996
3007
|
'release-notes',
|
2997
3008
|
'reload-required',
|
2998
3009
|
'rem',
|
3010
|
+
'remind-me-later',
|
2999
3011
|
'remote-address',
|
3000
3012
|
'remote-address-space',
|
3001
3013
|
'remote-debnugging-terminated',
|
@@ -3119,6 +3131,7 @@ export const knownContextValues = new Set([
|
|
3119
3131
|
'rpId',
|
3120
3132
|
'ru',
|
3121
3133
|
'ruby-align',
|
3134
|
+
'ruby-overhang',
|
3122
3135
|
'ruby-position',
|
3123
3136
|
'rule',
|
3124
3137
|
'rule-color',
|
@@ -3436,6 +3449,7 @@ export const knownContextValues = new Set([
|
|
3436
3449
|
'sidebar-position-right',
|
3437
3450
|
'sidebar-test-replace-page-with-object',
|
3438
3451
|
'sign-count',
|
3452
|
+
'sign-up',
|
3439
3453
|
'signCount',
|
3440
3454
|
'simulate',
|
3441
3455
|
'simulate-custom-quota',
|
@@ -3529,6 +3543,7 @@ export const knownContextValues = new Set([
|
|
3529
3543
|
'speak',
|
3530
3544
|
'speak-as',
|
3531
3545
|
'speculative-loads',
|
3546
|
+
'speedster',
|
3532
3547
|
'spread',
|
3533
3548
|
'sq',
|
3534
3549
|
'sr',
|
@@ -3748,6 +3763,7 @@ export const knownContextValues = new Set([
|
|
3748
3763
|
'timeline-trigger-name',
|
3749
3764
|
'timeline-trigger-range-end',
|
3750
3765
|
'timeline-trigger-range-start',
|
3766
|
+
'timeline-trigger-source',
|
3751
3767
|
'timeline-trigger-timeline',
|
3752
3768
|
'timeline-user-has-opened-sidebar-once',
|
3753
3769
|
'timeline-v8-runtime-call-stats',
|
@@ -4042,6 +4058,7 @@ export const knownContextValues = new Set([
|
|
4042
4058
|
'view-computed-value',
|
4043
4059
|
'view-details',
|
4044
4060
|
'view-parsed',
|
4061
|
+
'view-profile',
|
4045
4062
|
'view-source',
|
4046
4063
|
'view-timeline',
|
4047
4064
|
'view-timeline-axis',
|
@@ -60,20 +60,22 @@ element. There’s a number of fluent builder functions exported
|
|
60
60
|
the attribute value. These are all bound versions of
|
61
61
|
`LoggingConfig.makeConfigStringBuilder` and are used in the legacy UI as:
|
62
62
|
|
63
|
-
```
|
63
|
+
```ts
|
64
64
|
this.element.setAttribute('jslog', `${VisualLogging.panel(context)}`);
|
65
65
|
```
|
66
66
|
|
67
67
|
or
|
68
68
|
|
69
|
-
```
|
70
|
-
button.element.setAttribute(
|
71
|
-
|
69
|
+
```ts
|
70
|
+
button.element.setAttribute(
|
71
|
+
'jslog',
|
72
|
+
`${VisualLogging.dropDown('rendering-emulations').track({ click: true })}`,
|
73
|
+
);
|
72
74
|
```
|
73
75
|
|
74
76
|
In LitHTML, the usage is:
|
75
77
|
|
76
|
-
```
|
78
|
+
```ts
|
77
79
|
Lit.html`<td jslog=${VisualLogging.tableCell(/* context */ col.id)
|
78
80
|
.track({click: true})}>
|
79
81
|
```
|
@@ -121,27 +123,37 @@ First argument is a provider name that is later used as an argument in the
|
|
121
123
|
`jslog` builder `context()` method. Second is a function that takes an Element or Event
|
122
124
|
and returns a number. For a disclosure triangle, this is as follows:
|
123
125
|
|
124
|
-
```
|
126
|
+
```ts
|
125
127
|
function disclosureTriangleLoggingContextProvider(
|
126
|
-
|
128
|
+
e: VisualLogging.Loggable | Event,
|
129
|
+
): Promise<number | undefined> {
|
127
130
|
if (e instanceof Element) {
|
128
131
|
return Promise.resolve(e.classList.contains('parent') ? 1 : 0);
|
129
132
|
}
|
130
133
|
if (e instanceof MouseEvent && e.currentTarget instanceof Node) {
|
131
|
-
const treeElement = TreeElement.getTreeElementBylistItemNode(
|
134
|
+
const treeElement = TreeElement.getTreeElementBylistItemNode(
|
135
|
+
e.currentTarget,
|
136
|
+
);
|
132
137
|
if (treeElement) {
|
133
|
-
return Promise.resolve(
|
138
|
+
return Promise.resolve(
|
139
|
+
treeElement.isEventWithinDisclosureTriangle(e) ? 1 : 0,
|
140
|
+
);
|
134
141
|
}
|
135
142
|
}
|
136
143
|
return Promise.resolve(undefined);
|
137
144
|
}
|
138
145
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
146
|
+
VisualLogging.registerContextProvider(
|
147
|
+
'disclosureTriangle',
|
148
|
+
disclosureTriangleLoggingContextProvider,
|
149
|
+
);
|
150
|
+
|
151
|
+
listItemNode.setAttribute(
|
152
|
+
'jslog',
|
153
|
+
`${VisualLogging.treeItem()
|
154
|
+
.track({ click: true })
|
155
|
+
.context('disclosureTriangle')}`,
|
156
|
+
);
|
145
157
|
```
|
146
158
|
|
147
159
|
Similarly parent provides are used to specify parent visual elements in
|
@@ -150,18 +162,18 @@ to identify the parent. However, sometimes, markup doesn’t reflect the logical
|
|
150
162
|
structure, for example, when a legacy tree outline has children in an `<ol>` element, which is a
|
151
163
|
sibling of `<li>` that specifies the parent. In this case, you can do the following:
|
152
164
|
|
153
|
-
```
|
154
|
-
function loggingParentProvider(e: Element): Element|undefined {
|
165
|
+
```ts
|
166
|
+
function loggingParentProvider(e: Element): Element | undefined {
|
155
167
|
const treeElement = TreeElement.getTreeElementBylistItemNode(e);
|
156
168
|
return treeElement?.parent?.listItemElement;
|
157
169
|
}
|
158
170
|
|
159
|
-
VisualLogging.registerParentProvider('parentTreeItem',
|
160
|
-
loggingParentProvider);
|
171
|
+
VisualLogging.registerParentProvider('parentTreeItem', loggingParentProvider);
|
161
172
|
|
162
173
|
this.listItemNode.setAttribute(
|
163
|
-
|
164
|
-
|
174
|
+
'jslog',
|
175
|
+
`${VisualLogging.treeItem().track({ click: true }).parent('parentTreeItem')}`,
|
176
|
+
);
|
165
177
|
```
|
166
178
|
|
167
179
|
### Logging beyond DOM
|
@@ -182,11 +194,15 @@ Then call `registerLoggable` with the corresponding JavaScript
|
|
182
194
|
object, config string in the same format as the `jslog` attribute would have,
|
183
195
|
and an optional parent JavaScript object. For a native menu item, this is:
|
184
196
|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
197
|
+
```ts
|
198
|
+
VisualLogging.registerLoggable(
|
199
|
+
descriptor,
|
200
|
+
`${VisualLogging.action()
|
201
|
+
.track({ click: true })
|
202
|
+
.context(descriptor.jslogContext)}`,
|
203
|
+
parent || descriptors,
|
204
|
+
size,
|
205
|
+
);
|
190
206
|
```
|
191
207
|
|
192
208
|
This only registers the element and doesn’t log anything yet. To log
|
@@ -198,7 +214,7 @@ Similarly to log click, call `VisualLogging.logClick`.
|
|
198
214
|
You may find it useful to see which UI elements are annotated and how the tree
|
199
215
|
structure look like. To do that, run
|
200
216
|
|
201
|
-
```
|
217
|
+
```ts
|
202
218
|
setVeDebuggingEnabled(true);
|
203
219
|
```
|
204
220
|
|
package/package.json
CHANGED