chrome-devtools-frontend 1.0.1681091 → 1.0.1682249

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.
Files changed (208) hide show
  1. package/eslint.config.mjs +8 -3
  2. package/front_end/core/sdk/ConsoleModel.ts +1 -1
  3. package/front_end/core/sdk/DOMModel.ts +8 -0
  4. package/front_end/core/sdk/NetworkManager.ts +9 -4
  5. package/front_end/core/sdk/OverlayModel.ts +3 -2
  6. package/front_end/core/sdk/PreloadingModel.ts +44 -22
  7. package/front_end/core/sdk/RemoteObject.ts +4 -1
  8. package/front_end/core/sdk/RuntimeModel.ts +5 -5
  9. package/front_end/core/sdk/SDKSettings.ts +19 -0
  10. package/front_end/core/sdk/sdk.ts +2 -0
  11. package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +1 -1
  12. package/front_end/entrypoints/inspector_main/InspectorMain.ts +3 -1
  13. package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +1 -5
  14. package/front_end/entrypoints/main/MainImpl.ts +9 -10
  15. package/front_end/entrypoints/main/main-meta.ts +82 -0
  16. package/front_end/entrypoints/shell/shell.ts +0 -5
  17. package/front_end/entrypoints/trace_app/trace_app.ts +0 -5
  18. package/front_end/generated/InspectorBackendCommands.ts +2 -0
  19. package/front_end/generated/protocol-mapping.d.ts +16 -0
  20. package/front_end/generated/protocol-proxy-api.d.ts +12 -0
  21. package/front_end/generated/protocol.ts +12 -0
  22. package/front_end/models/ai_assistance/ExtensionScope.ts +11 -12
  23. package/front_end/models/ai_assistance/agents/AiAgent.ts +1 -1
  24. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +2 -1
  25. package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +1 -1
  26. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +2 -1
  27. package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +2 -1
  28. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +8 -8
  29. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +8 -8
  30. package/front_end/models/ai_code_completion/debug.ts +6 -3
  31. package/front_end/models/ai_code_generation/debug.ts +6 -3
  32. package/front_end/models/badges/UserBadges.ts +9 -2
  33. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +1 -0
  34. package/front_end/models/emulation/DeviceModeModel.ts +16 -27
  35. package/front_end/models/emulation/EmulatedDevices.ts +30 -125
  36. package/front_end/models/extensions/ExtensionAPI.ts +34 -23
  37. package/front_end/models/formatter/ScriptFormatter.ts +1 -0
  38. package/front_end/models/javascript_metadata/NativeFunctions.js +5 -1
  39. package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +4 -4
  40. package/front_end/models/logs/NetworkLog.ts +11 -4
  41. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +4 -2
  42. package/front_end/models/persistence/NetworkPersistenceManager.ts +7 -1
  43. package/front_end/models/stack_trace/StackTraceImpl.ts +1 -0
  44. package/front_end/models/trace/Name.ts +5 -5
  45. package/front_end/models/trace/Styles.ts +115 -115
  46. package/front_end/models/trace/extras/TraceTree.ts +2 -1
  47. package/front_end/models/trace/helpers/Network.ts +4 -1
  48. package/front_end/models/trace/insights/CLSCulprits.ts +4 -2
  49. package/front_end/models/trace/insights/CharacterSet.ts +3 -3
  50. package/front_end/models/trace/insights/DOMSize.ts +1 -1
  51. package/front_end/models/trace/insights/DuplicatedJavaScript.ts +6 -2
  52. package/front_end/models/trace/insights/FontDisplay.ts +9 -3
  53. package/front_end/models/trace/insights/ForcedReflow.ts +4 -4
  54. package/front_end/models/trace/insights/INPBreakdown.ts +3 -4
  55. package/front_end/models/trace/insights/ImageDelivery.ts +2 -2
  56. package/front_end/models/trace/insights/LCPBreakdown.ts +1 -1
  57. package/front_end/models/trace/insights/LCPDiscovery.ts +5 -5
  58. package/front_end/models/trace/insights/LegacyJavaScript.ts +7 -3
  59. package/front_end/models/trace/insights/ModernHTTP.ts +3 -3
  60. package/front_end/models/trace/insights/NetworkDependencyTree.ts +13 -9
  61. package/front_end/models/trace/insights/RenderBlocking.ts +1 -1
  62. package/front_end/models/trace/insights/SlowCSSSelector.ts +29 -25
  63. package/front_end/models/trace/insights/ThirdParties.ts +13 -5
  64. package/front_end/models/trace/insights/Viewport.ts +4 -2
  65. package/front_end/models/workspace/IgnoreListManager.ts +53 -17
  66. package/front_end/panels/accessibility/ARIAAttributesView.ts +11 -2
  67. package/front_end/panels/ai_assistance/components/ChatMessage.ts +67 -53
  68. package/front_end/panels/ai_assistance/components/ChatView.ts +2 -2
  69. package/front_end/panels/ai_assistance/components/StylingAgentMarkdownRenderer.ts +2 -2
  70. package/front_end/panels/ai_assistance/components/WalkthroughView.ts +5 -5
  71. package/front_end/panels/animation/AnimationTimeline.ts +2 -0
  72. package/front_end/panels/application/ServiceWorkersView.ts +1 -1
  73. package/front_end/panels/application/StorageView.ts +2 -0
  74. package/front_end/panels/application/preloading/PreloadingView.ts +9 -3
  75. package/front_end/panels/application/preloading/components/components.ts +2 -0
  76. package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +10 -11
  77. package/front_end/panels/changes/CombinedDiffView.ts +1 -1
  78. package/front_end/panels/common/BadgeNotification.ts +1 -1
  79. package/front_end/panels/common/ExtensionPanel.ts +12 -7
  80. package/front_end/panels/common/ExtensionServer.ts +85 -26
  81. package/front_end/panels/common/GdpSignUpDialog.ts +1 -1
  82. package/front_end/panels/console/ConsoleView.ts +2 -1
  83. package/front_end/panels/console/ConsoleViewMessage.ts +3 -2
  84. package/front_end/panels/console/console-meta.ts +9 -0
  85. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +9 -4
  86. package/front_end/panels/elements/CSSRuleValidator.ts +12 -12
  87. package/front_end/panels/elements/CSSSpecificityBreakdown.ts +1 -1
  88. package/front_end/panels/elements/ClassesPaneWidget.ts +6 -6
  89. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +1 -1
  90. package/front_end/panels/elements/ComputedStyleWidget.ts +4 -5
  91. package/front_end/panels/elements/DOMTreeContextMenu.ts +3 -6
  92. package/front_end/panels/elements/ElementIssueUtils.ts +20 -20
  93. package/front_end/panels/elements/ElementStatePaneWidget.ts +9 -6
  94. package/front_end/panels/elements/ElementsPanel.ts +10 -10
  95. package/front_end/panels/elements/ElementsTreeElement.ts +35 -29
  96. package/front_end/panels/elements/ElementsTreeOutline.ts +5 -20
  97. package/front_end/panels/elements/EventListenersWidget.ts +18 -19
  98. package/front_end/panels/elements/LayersWidget.ts +4 -4
  99. package/front_end/panels/elements/LayoutPane.ts +11 -11
  100. package/front_end/panels/elements/MarkerDecorator.ts +3 -3
  101. package/front_end/panels/elements/PlatformFontsWidget.ts +8 -8
  102. package/front_end/panels/elements/PropertiesWidget.ts +4 -4
  103. package/front_end/panels/elements/PropertyRenderer.ts +2 -2
  104. package/front_end/panels/elements/ShortcutTreeElement.ts +1 -1
  105. package/front_end/panels/elements/StylePropertiesSection.ts +14 -14
  106. package/front_end/panels/elements/StylePropertyTreeElement.ts +21 -21
  107. package/front_end/panels/elements/StylesSidebarPane.ts +12 -13
  108. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +1 -1
  109. package/front_end/panels/elements/components/CSSHintDetailsView.ts +1 -1
  110. package/front_end/panels/elements/components/CSSVariableValueView.ts +3 -3
  111. package/front_end/panels/elements/components/ElementsBreadcrumbsUtils.ts +2 -2
  112. package/front_end/panels/elements/components/ElementsTreeExpandButton.ts +1 -1
  113. package/front_end/panels/elements/elements-meta.ts +13 -13
  114. package/front_end/panels/issues/AffectedCookiesView.ts +2 -0
  115. package/front_end/panels/issues/AffectedElementsView.ts +5 -0
  116. package/front_end/panels/issues/IssueView.ts +12 -8
  117. package/front_end/panels/layer_viewer/LayerDetailsView.ts +11 -7
  118. package/front_end/panels/layer_viewer/LayerTreeOutline.ts +2 -0
  119. package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -1
  120. package/front_end/panels/media/PlayerPropertiesView.ts +309 -416
  121. package/front_end/panels/media/playerPropertiesView.css +1 -1
  122. package/front_end/panels/network/NetworkLogView.ts +5 -2
  123. package/front_end/panels/network/NetworkOverview.ts +11 -5
  124. package/front_end/panels/network/NetworkPanel.ts +4 -2
  125. package/front_end/panels/network/NetworkWaterfallColumn.ts +16 -3
  126. package/front_end/panels/network/RequestHeadersView.ts +4 -4
  127. package/front_end/panels/network/components/ResponseHeaderSection.ts +7 -4
  128. package/front_end/panels/network/network-meta.ts +63 -0
  129. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +2 -1
  130. package/front_end/panels/recorder/RecordingView.ts +89 -73
  131. package/front_end/panels/recorder/ReplaySection.ts +59 -40
  132. package/front_end/panels/recorder/injected/injected.ts +4 -0
  133. package/front_end/panels/security/SecurityPanel.ts +5 -6
  134. package/front_end/panels/security/SecurityPanelSidebar.ts +244 -204
  135. package/front_end/panels/security/security.ts +0 -4
  136. package/front_end/panels/settings/EditFileSystemView.ts +8 -7
  137. package/front_end/panels/settings/FrameworkIgnoreListSettingsTab.ts +20 -14
  138. package/front_end/panels/settings/components/SyncSection.ts +1 -1
  139. package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +0 -3
  140. package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +10 -11
  141. package/front_end/panels/sources/NavigatorView.ts +6 -2
  142. package/front_end/panels/sources/SourcesNavigator.ts +8 -4
  143. package/front_end/panels/sources/SourcesPanel.ts +4 -2
  144. package/front_end/panels/sources/SourcesSearchScope.ts +3 -1
  145. package/front_end/panels/sources/UISourceCodeFrame.ts +2 -2
  146. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +3 -3
  147. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +5 -5
  148. package/front_end/panels/timeline/components/CWVMetrics.ts +1 -2
  149. package/front_end/panels/timeline/components/IgnoreListSetting.ts +5 -5
  150. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +2 -3
  151. package/front_end/panels/timeline/components/LiveMetricsView.ts +2 -2
  152. package/front_end/panels/timeline/components/Sidebar.ts +3 -3
  153. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +1 -2
  154. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +3 -1
  155. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +1 -2
  156. package/front_end/panels/timeline/components/insights/Cache.ts +1 -2
  157. package/front_end/panels/timeline/components/insights/CharacterSet.ts +1 -2
  158. package/front_end/panels/timeline/components/insights/DOMSize.ts +1 -2
  159. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +2 -2
  160. package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +2 -2
  161. package/front_end/panels/timeline/components/insights/FontDisplay.ts +1 -2
  162. package/front_end/panels/timeline/components/insights/ForcedReflow.ts +1 -2
  163. package/front_end/panels/timeline/components/insights/INPBreakdown.ts +1 -2
  164. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +1 -2
  165. package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +13 -13
  166. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +1 -2
  167. package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +4 -4
  168. package/front_end/panels/timeline/components/insights/ModernHTTP.ts +1 -2
  169. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +10 -8
  170. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +2 -2
  171. package/front_end/panels/timeline/components/insights/SidebarInsight.ts +3 -1
  172. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +2 -2
  173. package/front_end/panels/timeline/components/insights/ThirdParties.ts +1 -2
  174. package/front_end/panels/timeline/components/insights/Viewport.ts +1 -2
  175. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +1 -2
  176. package/front_end/panels/timeline/timeline.ts +0 -2
  177. package/front_end/panels/web_audio/WebAudioView.ts +14 -6
  178. package/front_end/panels/webauthn/WebauthnPane.ts +9 -9
  179. package/front_end/third_party/chromium/README.chromium +1 -1
  180. package/front_end/third_party/web-vitals/rebuild.sh +1 -1
  181. package/front_end/ui/components/diff_view/DiffView.ts +2 -1
  182. package/front_end/ui/components/report_view/ReportView.docs.ts +2 -2
  183. package/front_end/ui/components/text_editor/javascript.ts +12 -13
  184. package/front_end/ui/legacy/GlassPane.ts +38 -14
  185. package/front_end/ui/legacy/Treeoutline.ts +14 -3
  186. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +11 -11
  187. package/front_end/ui/legacy/components/color_picker/FormatPickerContextMenu.ts +1 -1
  188. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +19 -20
  189. package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +1 -1
  190. package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +1 -1
  191. package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +3 -3
  192. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +185 -355
  193. package/front_end/ui/legacy/components/object_ui/RemoteObjectPreviewFormatter.ts +3 -8
  194. package/front_end/ui/legacy/components/utils/ImagePreview.ts +15 -16
  195. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +4 -4
  196. package/front_end/ui/legacy/components/utils/Linkifier.ts +8 -10
  197. package/front_end/ui/settings/InspectorMainSettings.ts +12 -0
  198. package/front_end/ui/settings/settings.ts +2 -0
  199. package/front_end/ui/visual_logging/KnownContextValues.ts +32 -0
  200. package/mcp/mcp.ts +0 -9
  201. package/package.json +1 -1
  202. package/front_end/core/sdk/sdk-meta.ts +0 -40
  203. package/front_end/models/badges/badges-meta.ts +0 -27
  204. package/front_end/models/logs/logs-meta.ts +0 -84
  205. package/front_end/models/persistence/persistence-meta.ts +0 -69
  206. package/front_end/models/workspace/workspace-meta.ts +0 -40
  207. package/front_end/panels/security/OriginTreeElement.ts +0 -60
  208. package/front_end/panels/security/SecurityPanelSidebarTreeElement.ts +0 -30
@@ -53,14 +53,14 @@ const {repeat} = Directives;
53
53
  const UIStrings = {
54
54
  /**
55
55
  * @description Text on the checkbox in the Properties tab of the Elements panel, which controls whether
56
- * all properties of the currently selected DOM element are shown, or only meaningful properties (i.e.
57
- * excluding properties whose values aren't set for example).
56
+ * all properties of the currently selected DOM element are shown, or only meaningful properties (for example,
57
+ * excluding properties whose values are not set).
58
58
  */
59
59
  showAll: 'Show all',
60
60
  /**
61
61
  * @description Tooltip on the checkbox in the Properties tab of the Elements panel, which controls whether
62
- * all properties of the currently selected DOM element are shown, or only meaningful properties (i.e.
63
- * excluding properties whose values aren't set for example).
62
+ * all properties of the currently selected DOM element are shown, or only meaningful properties (for example,
63
+ * excluding properties whose values are not set).
64
64
  */
65
65
  showAllTooltip: 'When unchecked, only properties whose values are neither null nor undefined will be shown',
66
66
  /**
@@ -17,12 +17,12 @@ import {unescapeCssString} from './StylesSidebarPane.js';
17
17
 
18
18
  const UIStrings = {
19
19
  /**
20
- * @description Text that is announced by the screen reader when the user focuses on an input field for entering the name of a CSS property in the Styles panel
20
+ * @description Text that is announced by the screen reader when the user focuses on an input field for entering the name of a CSS property in the Styles tab of the Elements panel.
21
21
  * @example {margin} PH1
22
22
  */
23
23
  cssPropertyName: '`CSS` property name: {PH1}',
24
24
  /**
25
- * @description Text that is announced by the screen reader when the user focuses on an input field for entering the value of a CSS property in the Styles panel
25
+ * @description Text that is announced by the screen reader when the user focuses on an input field for entering the value of a CSS property in the Styles tab of the Elements panel.
26
26
  * @example {10px} PH1
27
27
  */
28
28
  cssPropertyValue: '`CSS` property value: {PH1}',
@@ -47,7 +47,7 @@ const {html, render} = Lit;
47
47
 
48
48
  const UIStrings = {
49
49
  /**
50
- * @description Link text content in Elements Tree Outline of the Elements panel
50
+ * @description Link text content in the DOM tree outline of the Elements panel.
51
51
  */
52
52
  reveal: 'reveal',
53
53
  } as const;
@@ -67,61 +67,61 @@ import type {StylesContainer} from './StylesContainer.js';
67
67
 
68
68
  const UIStrings = {
69
69
  /**
70
- * @description Tooltip text that appears when hovering over the largeicon add button in the Styles Sidebar Pane of the Elements panel
70
+ * @description Tooltip text that appears when hovering over the add button in the Styles tab of the Elements panel.
71
71
  */
72
72
  insertStyleRuleBelow: 'Insert style rule below',
73
73
  /**
74
- * @description Text in Styles Sidebar Pane of the Elements panel
74
+ * @description Text in the Styles tab of the Elements panel.
75
75
  */
76
76
  constructedStylesheet: 'constructed stylesheet',
77
77
  /**
78
- * @description Text in Styles Sidebar Pane of the Elements panel
78
+ * @description Text in the Styles tab of the Elements panel.
79
79
  */
80
80
  userAgentStylesheet: 'user agent stylesheet',
81
81
  /**
82
- * @description Text in Styles Sidebar Pane of the Elements panel
82
+ * @description Text in the Styles tab of the Elements panel.
83
83
  */
84
84
  injectedStylesheet: 'injected stylesheet',
85
85
  /**
86
- * @description Text in Styles Sidebar Pane of the Elements panel
86
+ * @description Text in the Styles tab of the Elements panel.
87
87
  */
88
88
  viaInspector: 'via inspector',
89
89
  /**
90
- * @description Text in Styles Sidebar Pane of the Elements panel
90
+ * @description Text in the Styles tab of the Elements panel.
91
91
  */
92
92
  styleAttribute: '`style` attribute',
93
93
  /**
94
- * @description Text in Styles Sidebar Pane of the Elements panel
94
+ * @description Text in the Styles tab of the Elements panel.
95
95
  * @example {html} PH1
96
96
  */
97
97
  sattributesStyle: '{PH1}[Attributes Style]',
98
98
  /**
99
- * @description Show all button text content in Styles Sidebar Pane of the Elements panel
99
+ * @description Show all button text content in the Styles tab of the Elements panel.
100
100
  * @example {3} PH1
101
101
  */
102
102
  showAllPropertiesSMore: 'Show all properties ({PH1} more)',
103
103
  /**
104
- * @description Text in Elements Tree Element of the Elements panel, copy should be used as a verb
104
+ * @description Text in the DOM tree of the Elements panel, copy should be used as a verb.
105
105
  */
106
106
  copySelector: 'Copy `selector`',
107
107
  /**
108
- * @description A context menu item in Styles panel to copy CSS rule
108
+ * @description A context menu item in the Styles tab of the Elements panel to copy CSS rule.
109
109
  */
110
110
  copyRule: 'Copy rule',
111
111
  /**
112
- * @description A context menu item in Styles panel to copy all CSS declarations
112
+ * @description A context menu item in the Styles tab of the Elements panel to copy all CSS declarations.
113
113
  */
114
114
  copyAllDeclarations: 'Copy all declarations',
115
115
  /**
116
- * @description Text that is announced by the screen reader when the user focuses on an input field for editing the name of a CSS selector in the Styles panel
116
+ * @description Text that is announced by the screen reader when the user focuses on an input field for editing the name of a CSS selector in the Styles tab of the Elements panel.
117
117
  */
118
118
  cssSelector: '`CSS` selector',
119
119
  /**
120
- * @description Accessibility label for the button that expands a collapsed CSS rule in the Styles pane.
120
+ * @description Accessibility label for the button that expands a collapsed CSS rule in the Styles tab.
121
121
  */
122
122
  expandCollapsedRule: 'Expand collapsed rule',
123
123
  /**
124
- * @description Accessibility label for the button that collapses an expanded CSS rule in the Styles pane.
124
+ * @description Accessibility label for the button that collapses an expanded CSS rule in the Styles tab.
125
125
  */
126
126
  collapseExpandedRule: 'Collapse expanded rule',
127
127
  } as const;
@@ -58,44 +58,44 @@ const {widget} = UI.Widget;
58
58
 
59
59
  const UIStrings = {
60
60
  /**
61
- * @description Text in Color Swatch Popover Icon of the Elements panel
61
+ * @description Text in the color swatch popover icon of the Elements panel.
62
62
  */
63
63
  shiftClickToChangeColorFormat: 'Shift + Click to change color format.',
64
64
  /**
65
- * @description Swatch icon element title in Color Swatch Popover Icon of the Elements panel
65
+ * @description Swatch icon element title in the color swatch popover icon of the Elements panel.
66
66
  * @example {Shift + Click to change color format.} PH1
67
67
  */
68
68
  openColorPickerS: 'Open color picker. {PH1}',
69
69
  /**
70
- * @description Context menu item for style property in edit mode
70
+ * @description Context menu item for style property in edit mode.
71
71
  */
72
72
  togglePropertyAndContinueEditing: 'Toggle property and continue editing',
73
73
  /**
74
- * @description Context menu item for style property in edit mode
74
+ * @description Context menu item for style property in edit mode.
75
75
  */
76
76
  openInSourcesPanel: 'Open in Sources panel',
77
77
  /**
78
- * @description A context menu item in Styles panel to copy CSS declaration
78
+ * @description A context menu item in the Styles tab of the Elements panel to copy CSS declaration.
79
79
  */
80
80
  copyDeclaration: 'Copy declaration',
81
81
  /**
82
- * @description A context menu item in Styles panel to copy CSS property
82
+ * @description A context menu item in the Styles tab of the Elements panel to copy CSS property.
83
83
  */
84
84
  copyProperty: 'Copy property',
85
85
  /**
86
- * @description A context menu item in the Watch Expressions Sidebar Pane of the Sources panel and Network pane request.
86
+ * @description A context menu item in the Watch expressions sidebar of the Sources panel and Network panel request.
87
87
  */
88
88
  copyValue: 'Copy value',
89
89
  /**
90
- * @description A context menu item in Styles panel to copy CSS rule
90
+ * @description A context menu item in the Styles tab of the Elements panel to copy CSS rule.
91
91
  */
92
92
  copyRule: 'Copy rule',
93
93
  /**
94
- * @description A context menu item in Styles panel to copy all CSS declarations
94
+ * @description A context menu item in the Styles tab of the Elements panel to copy all CSS declarations.
95
95
  */
96
96
  copyAllDeclarations: 'Copy all declarations',
97
97
  /**
98
- * @description A context menu item in Styles panel to view the computed CSS property value.
98
+ * @description A context menu item in the Styles tab of the Elements panel to view the computed CSS property value.
99
99
  */
100
100
  viewComputedValue: 'View computed value',
101
101
  /**
@@ -107,41 +107,41 @@ const UIStrings = {
107
107
  */
108
108
  openAnimationsPanel: 'Open Animations panel',
109
109
  /**
110
- * @description Title of the button that opens the flexbox editor in the Styles panel.
110
+ * @description Title of the button that opens the flexbox editor in the Styles tab of the Elements panel.
111
111
  */
112
112
  flexboxEditorButton: 'Open `flexbox` editor',
113
113
  /**
114
- * @description Title of the button that opens the CSS Grid editor in the Styles panel.
114
+ * @description Title of the button that opens the CSS Grid editor in the Styles tab of the Elements panel.
115
115
  */
116
116
  gridEditorButton: 'Open `grid` editor',
117
117
  /**
118
- * @description Title of the button that opens the CSS Grid Lanes editor in the Styles panel.
118
+ * @description Title of the button that opens the CSS Grid Lanes editor in the Styles tab of the Elements panel.
119
119
  */
120
120
  gridLanesEditorButton: 'Open `grid-lanes` editor',
121
121
  /**
122
- * @description A context menu item in Styles panel to copy CSS declaration as JavaScript property.
122
+ * @description A context menu item in the Styles tab of the Elements panel to copy CSS declaration as JavaScript property.
123
123
  */
124
124
  copyCssDeclarationAsJs: 'Copy declaration as JS',
125
125
  /**
126
- * @description A context menu item in Styles panel to copy all declarations of CSS rule as JavaScript properties.
126
+ * @description A context menu item in the Styles tab of the Elements panel to copy all declarations of CSS rule as JavaScript properties.
127
127
  */
128
128
  copyAllCssDeclarationsAsJs: 'Copy all declarations as JS',
129
129
  /**
130
- * @description Title of the link in Styles panel to jump to the Animations panel.
130
+ * @description Title of the link in the Styles tab of the Elements panel to jump to the Animations panel.
131
131
  */
132
132
  jumpToAnimationsPanel: 'Jump to Animations panel',
133
133
  /**
134
- * @description Text displayed in a tooltip shown when hovering over a CSS property value references a name that's not
135
- * defined and can't be linked to.
134
+ * @description Text displayed in a tooltip shown when hovering over a CSS property value references a name that is not
135
+ * defined and cannot be linked to.
136
136
  * @example {--my-linkable-name} PH1
137
137
  */
138
138
  sIsNotDefined: '{PH1} is not defined',
139
139
  /**
140
- * @description Text in Styles Sidebar Pane of the Elements panel
140
+ * @description Text in the Styles tab of the Elements panel.
141
141
  */
142
142
  invalidPropertyValue: 'Invalid property value',
143
143
  /**
144
- * @description Text in Styles Sidebar Pane of the Elements panel
144
+ * @description Text in the Styles tab of the Elements panel.
145
145
  */
146
146
  unknownPropertyName: 'Unknown property name',
147
147
  /**
@@ -152,7 +152,7 @@ const UIStrings = {
152
152
  */
153
153
  invalidString: '{PH1}, property name: {PH2}, property value: {PH3}',
154
154
  /**
155
- * @description Title in the styles tab for the icon button for jumping to the anchor node.
155
+ * @description Title in the Styles tab for the icon button for jumping to the anchor node.
156
156
  */
157
157
  jumpToAnchorNode: 'Jump to anchor node',
158
158
  } as const;
@@ -83,56 +83,55 @@ import {WebCustomData} from './WebCustomData.js';
83
83
 
84
84
  const UIStrings = {
85
85
  /**
86
- * @description No matches element text content in Styles Sidebar Pane of the Elements panel
86
+ * @description No matches element text content in the Styles tab of the Elements panel.
87
87
  */
88
88
  noMatchingSelectorOrStyle: 'No matching selector or style',
89
89
  /**
90
- * /**
91
- * @description Text to announce the result of the filter input in the Styles Sidebar Pane of the Elements panel
90
+ * @description Text to announce the result of the filter input in the Styles tab of the Elements panel.
92
91
  */
93
92
  visibleSelectors: '{n, plural, =1 {# visible selector listed below} other {# visible selectors listed below}}',
94
93
  /**
95
- * @description Separator element text content in Styles Sidebar Pane of the Elements panel
94
+ * @description Separator element text content in the Styles tab of the Elements panel.
96
95
  * @example {scrollbar-corner} PH1
97
96
  */
98
97
  pseudoSElement: 'Pseudo ::{PH1} element',
99
98
  /**
100
- * @description Text of a DOM element in Styles Sidebar Pane of the Elements panel
99
+ * @description Text of a DOM element in the Styles tab of the Elements panel.
101
100
  */
102
101
  inheritedFroms: 'Inherited from ',
103
102
  /**
104
- * @description Text of an inherited pseudo element in Styles Sidebar Pane of the Elements panel
103
+ * @description Text of an inherited pseudo element in the Styles tab of the Elements panel.
105
104
  * @example {highlight} PH1
106
105
  */
107
106
  inheritedFromSPseudoOf: 'Inherited from ::{PH1} pseudo of ',
108
107
  /**
109
- * @description Title of in styles sidebar pane of the elements panel
108
+ * @description Tooltip for color values in the Styles tab of the Elements panel.
110
109
  * @example {Ctrl} PH1
111
110
  * @example {Alt} PH2
112
111
  */
113
112
  incrementdecrementWithMousewheelOne:
114
113
  'Increment/decrement with mousewheel or up/down keys. {PH1}: R ±1, Shift: G ±1, {PH2}: B ±1',
115
114
  /**
116
- * @description Title of in styles sidebar pane of the elements panel
115
+ * @description Tooltip for color values in the Styles tab of the Elements panel.
117
116
  * @example {Ctrl} PH1
118
117
  * @example {Alt} PH2
119
118
  */
120
119
  incrementdecrementWithMousewheelHundred:
121
120
  'Increment/decrement with mousewheel or up/down keys. {PH1}: ±100, Shift: ±10, {PH2}: ±0.1',
122
121
  /**
123
- * @description Tooltip text that appears when hovering over the rendering button in the Styles Sidebar Pane of the Elements panel
122
+ * @description Tooltip text that appears when hovering over the rendering button in the Styles tab of the Elements panel.
124
123
  */
125
124
  toggleRenderingEmulations: 'Toggle common rendering emulations',
126
125
  /**
127
- * @description Rendering emulation option for toggling the automatic dark mode
126
+ * @description Rendering emulation option for toggling the automatic dark mode.
128
127
  */
129
128
  automaticDarkMode: 'Automatic dark mode',
130
129
  /**
131
- * @description Text displayed on layer separators in the styles sidebar pane.
130
+ * @description Text displayed on layer separators in the Styles tab of the Elements panel.
132
131
  */
133
132
  layer: 'Layer',
134
133
  /**
135
- * @description Tooltip text for the link in the sidebar pane layer separators that reveals the layer in the layer tree view.
134
+ * @description Tooltip text for the link in the layer separators that reveals the layer in the layer tree view.
136
135
  */
137
136
  clickToRevealLayer: 'Click to reveal layer in layer tree',
138
137
  /**
@@ -141,7 +140,7 @@ const UIStrings = {
141
140
  */
142
141
  aiSuggestionAccepted: '{PH1} Suggestion accepted.',
143
142
  /**
144
- * @description Title of the general at-rule section
143
+ * @description Title of the general at-rule section.
145
144
  */
146
145
  atRuleSection: 'Other @rules',
147
146
  } as const;
@@ -15,7 +15,7 @@ import accessibilityTreeNodeStyles from './accessibilityTreeNode.css.js';
15
15
 
16
16
  const UIStrings = {
17
17
  /**
18
- * @description Ignored node element text content in Accessibility Tree View of the Elements panel
18
+ * @description Ignored node element text content in the accessibility tree view of the Elements panel.
19
19
  */
20
20
  ignored: 'Ignored',
21
21
  } as const;
@@ -15,7 +15,7 @@ const UIStrings = {
15
15
  /**
16
16
  * @description Text for button that redirects to CSS property documentation.
17
17
  */
18
- learnMore: 'Learn More',
18
+ learnMore: 'Learn more',
19
19
  } as const;
20
20
  const str_ = i18n.i18n.registerUIStrings('panels/elements/components/CSSHintDetailsView.ts', UIStrings);
21
21
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -11,18 +11,18 @@ import cssVariableValueViewStyles from './cssVariableValueView.css.js';
11
11
 
12
12
  const UIStrings = {
13
13
  /**
14
- * @description Text for a link from custom property to its defining registration
14
+ * @description Text for a link from a custom property to its defining registration.
15
15
  */
16
16
  registeredPropertyLinkTitle: 'View registered property',
17
17
  /**
18
18
  * @description Error message for a property value that failed to parse because it had an incorrect type. The message
19
19
  * is shown in a popover when hovering the property value. The `type` placeholder will be rendered as an HTML element
20
- * to apply some styling (color and monospace font)
20
+ * to apply some styling (color and monospace font).
21
21
  * @example {<color>} type
22
22
  */
23
23
  invalidPropertyValue: 'Invalid property value, expected type {type}',
24
24
  /**
25
- * @description Text displayed in a tooltip shown when hovering over a var() CSS function in the Styles pane when the custom property in this function does not exist. The parameter is the name of the property.
25
+ * @description Text displayed in a tooltip shown when hovering over a var() CSS function in the Styles tab when the custom property in this function does not exist. The parameter is the name of the property.
26
26
  * @example {--my-custom-property-name} PH1
27
27
  */
28
28
  sIsNotDefined: '{PH1} is not defined',
@@ -7,8 +7,8 @@ import type * as SDK from '../../../core/sdk/sdk.js';
7
7
 
8
8
  const UIStrings = {
9
9
  /**
10
- * @description Text in Elements Breadcrumbs of the Elements panel. Indicates that a HTML element
11
- * is a text node, meaning it contains text only and no other HTML elements. Should be translatd.
10
+ * @description Text in elements breadcrumbs of the Elements panel. Indicates that an HTML element
11
+ * is a text node, meaning it contains text only and no other HTML elements.
12
12
  */
13
13
  text: '(text)',
14
14
  } as const;
@@ -13,7 +13,7 @@ import elementsTreeExpandButtonStyles from './elementsTreeExpandButton.css.js';
13
13
 
14
14
  const UIStrings = {
15
15
  /**
16
- * @description Aria label for a button expanding collapsed subtree
16
+ * @description ARIA label for a button expanding a collapsed subtree.
17
17
  */
18
18
  expand: 'Expand',
19
19
  } as const;
@@ -142,11 +142,11 @@ const UIStrings = {
142
142
  */
143
143
  selectAnElementInThePageTo: 'Select an element in the page to inspect it',
144
144
  /**
145
- * @description Title/tooltip of an action in the elements panel to add a new style rule.
145
+ * @description Title/tooltip of an action in the Elements panel to add a new style rule.
146
146
  */
147
- newStyleRule: 'New Style Rule',
147
+ newStyleRule: 'New style rule',
148
148
  /**
149
- * @description Title/tooltip of an action in the elements panel to refresh the event listeners.
149
+ * @description Title/tooltip of an action in the Elements panel to refresh the event listeners.
150
150
  */
151
151
  refreshEventListeners: 'Refresh event listeners',
152
152
  /**
@@ -166,11 +166,11 @@ const UIStrings = {
166
166
  */
167
167
  htmlComments: 'HTML comments',
168
168
  /**
169
- * @description Title of an option under the Elements category that can be invoked through the Command Menu
169
+ * @description Title of an option under the Elements category that can be invoked through the Command Menu.
170
170
  */
171
171
  showHtmlComments: 'Show `HTML` comments',
172
172
  /**
173
- * @description Title of an option under the Elements category that can be invoked through the Command Menu
173
+ * @description Title of an option under the Elements category that can be invoked through the Command Menu.
174
174
  */
175
175
  hideHtmlComments: 'Hide `HTML` comments',
176
176
  /**
@@ -187,12 +187,12 @@ const UIStrings = {
187
187
  detailedInspectTooltip: 'Detailed inspect tooltip',
188
188
  /**
189
189
  * @description Title of a setting under the Elements category in Settings. Turns on a mode where
190
- * hovering over CSS properties in the Styles pane will display a popover with documentation.
190
+ * hovering over CSS properties in the Styles tab will display a popover with documentation.
191
191
  */
192
192
  CSSDocumentationTooltip: 'CSS documentation tooltip',
193
193
  /**
194
- * @description A context menu item (command) in the Elements panel that copy the styles of
195
- * the HTML element.
194
+ * @description A context menu item (command) in the Elements panel that copies the styles of
195
+ * an HTML element.
196
196
  */
197
197
  copyStyles: 'Copy styles',
198
198
  /**
@@ -201,20 +201,20 @@ const UIStrings = {
201
201
  */
202
202
  toggleA11yTree: 'Toggle accessibility tree',
203
203
  /**
204
- * @description Title of a setting under the Elements category. Whether to show/hide hide
204
+ * @description Title of a setting under the Elements category. Whether to show or hide
205
205
  * the shadow DOM nodes of HTML elements that are built into the browser (e.g. the <input> element).
206
206
  */
207
207
  userAgentShadowDOM: 'User agent shadow `DOM`',
208
208
  /**
209
209
  * @description Command for showing the 'Computed' tool. Displays computed CSS styles in Elements sidebar.
210
210
  */
211
- showComputedStyles: 'Show Computed Styles',
211
+ showComputedStyles: 'Show Computed styles',
212
212
  /**
213
213
  * @description Command for showing the 'Styles' tool. Displays CSS styles in Elements sidebar.
214
214
  */
215
215
  showStyles: 'Show Styles',
216
216
  /**
217
- * @description Command for toggling the eye dropper when the color picker is open
217
+ * @description Command for toggling the eye dropper when the color picker is open.
218
218
  */
219
219
  toggleEyeDropper: 'Toggle eye dropper',
220
220
  /**
@@ -222,11 +222,11 @@ const UIStrings = {
222
222
  */
223
223
  cssAnimationsOnlyWhenAnimationsTabOpen: 'Show animation styles only when the Animations tab is open',
224
224
  /**
225
- * @description Whether CSS rules that do not apply active styles in the Styles pane are collapsed by default.
225
+ * @description Whether CSS rules that do not apply active styles in the Styles tab are collapsed by default.
226
226
  */
227
227
  collapseNonContributingCSSRules: 'Collapse non-contributing CSS rules',
228
228
  /**
229
- * @description Title of a setting in the Event Listeners widget.
229
+ * @description Title of a setting in the Event listeners tab.
230
230
  */
231
231
  frameworkListeners: 'Framework listeners',
232
232
  } as const;
@@ -67,6 +67,7 @@ export class AffectedCookiesView extends AffectedResourcesView {
67
67
  #appendAffectedCookie(cookie: Protocol.Audits.AffectedCookie, hasAssociatedRequest: boolean): void {
68
68
  const element = document.createElement('tr');
69
69
  element.classList.add('affected-resource-cookie');
70
+ element.setAttribute('jslog', `${VisualLogging.tableRow('affected-cookie')}`);
70
71
  const name = document.createElement('td');
71
72
  if (hasAssociatedRequest) {
72
73
  const link = document.createElement('button');
@@ -121,6 +122,7 @@ export class AffectedRawCookieLinesView extends AffectedResourcesView {
121
122
  for (const cookie of cookieLinesWithRequestIndicator) {
122
123
  const row = document.createElement('tr');
123
124
  row.classList.add('affected-resource-directive');
125
+ row.setAttribute('jslog', `${VisualLogging.tableRow('affected-raw-cookie')}`);
124
126
  if (cookie.hasRequest) {
125
127
  const cookieLine = document.createElement('td');
126
128
  const link = document.createElement('button');
@@ -6,6 +6,7 @@
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
7
  import type * as Platform from '../../core/platform/platform.js';
8
8
  import type * as IssuesManager from '../../models/issues_manager/issues_manager.js';
9
+ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
9
10
 
10
11
  import {AffectedResourcesView} from './AffectedResourcesView.js';
11
12
 
@@ -34,6 +35,10 @@ export class AffectedElementsView extends AffectedResourcesView {
34
35
  async #appendAffectedElement(element: IssuesManager.Issue.AffectedElement): Promise<void> {
35
36
  const cellElement = await this.createElementCell(element, this.issue.getCategory());
36
37
  const rowElement = document.createElement('tr');
38
+ rowElement.setAttribute('jslog', `${VisualLogging.tableRow('affected-element')}`);
39
+ if (element.backendNodeId) {
40
+ rowElement.setAttribute('data-backend-node-id', String(element.backendNodeId));
41
+ }
37
42
  rowElement.appendChild(cellElement);
38
43
  this.affectedResources.appendChild(rowElement);
39
44
  }
@@ -8,7 +8,6 @@ import * as Host from '../../core/host/host.js';
8
8
  import * as i18n from '../../core/i18n/i18n.js';
9
9
  import * as Platform from '../../core/platform/platform.js';
10
10
  import * as Protocol from '../../generated/protocol.js';
11
- import type {AggregatedIssue} from '../../models/issues_manager/IssueAggregator.js';
12
11
  import * as IssuesManager from '../../models/issues_manager/issues_manager.js';
13
12
  import * as NetworkForward from '../../panels/network/forward/forward.js';
14
13
  import * as Adorners from '../../ui/components/adorners/adorners.js';
@@ -17,6 +16,7 @@ import * as MarkdownView from '../../ui/components/markdown_view/markdown_view.j
17
16
  import {Icon} from '../../ui/kit/kit.js';
18
17
  import * as UI from '../../ui/legacy/legacy.js';
19
18
  import {html, render} from '../../ui/lit/lit.js';
19
+ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
20
20
 
21
21
  import {AffectedBlockedByResponseView} from './AffectedBlockedByResponseView.js';
22
22
  import {AffectedCookiesView, AffectedRawCookieLinesView} from './AffectedCookiesView.js';
@@ -35,7 +35,6 @@ import {AffectedSharedArrayBufferIssueDetailsView} from './AffectedSharedArrayBu
35
35
  import {AffectedSourcesView} from './AffectedSourcesView.js';
36
36
  import {AffectedTrackingSitesView} from './AffectedTrackingSitesView.js';
37
37
  import * as Components from './components/components.js';
38
- import type {HiddenIssuesMenuData} from './components/HideIssuesMenu.js';
39
38
  import {CorsIssueDetailsView} from './CorsIssueDetailsView.js';
40
39
  import {GenericIssueDetailsView} from './GenericIssueDetailsView.js';
41
40
 
@@ -95,6 +94,10 @@ class AffectedRequestsView extends AffectedResourcesView {
95
94
  for (const affectedRequest of affectedRequests) {
96
95
  const element = document.createElement('tr');
97
96
  element.classList.add('affected-resource-request');
97
+ element.setAttribute('jslog', `${VisualLogging.tableRow('affected-request')}`);
98
+ if (affectedRequest.requestId) {
99
+ element.setAttribute('data-network-request-id', affectedRequest.requestId);
100
+ }
98
101
  const category = this.issue.getCategory();
99
102
  const tab =
100
103
  issueTypeToNetworkHeaderMap.get(category) || NetworkForward.UIRequestLocation.UIRequestTabs.HEADERS_COMPONENT;
@@ -215,7 +218,7 @@ class AffectedMixedContentView extends AffectedResourcesView {
215
218
  }
216
219
 
217
220
  export class IssueView extends UI.TreeOutline.TreeElement {
218
- #issue: AggregatedIssue;
221
+ #issue: IssuesManager.IssueAggregator.AggregatedIssue;
219
222
  #description: IssuesManager.MarkdownIssueDescription.IssueDescription;
220
223
  override toggleOnClick: boolean;
221
224
  affectedResources: UI.TreeOutline.TreeElement;
@@ -228,7 +231,8 @@ export class IssueView extends UI.TreeOutline.TreeElement {
228
231
  #hiddenIssuesMenu?: Components.HideIssuesMenu.HideIssuesMenu;
229
232
  #contentCreated = false;
230
233
 
231
- constructor(issue: AggregatedIssue, description: IssuesManager.MarkdownIssueDescription.IssueDescription) {
234
+ constructor(issue: IssuesManager.IssueAggregator.AggregatedIssue,
235
+ description: IssuesManager.MarkdownIssueDescription.IssueDescription) {
232
236
  super(undefined, undefined, Platform.StringUtilities.toKebabCase(issue.getCategory()));
233
237
  this.#issue = issue;
234
238
  this.#description = description;
@@ -272,7 +276,7 @@ export class IssueView extends UI.TreeOutline.TreeElement {
272
276
  * this IssueView was initialized with fits the new issue as well, i.e.
273
277
  * title and issue description will not be updated.
274
278
  */
275
- setIssue(issue: AggregatedIssue): void {
279
+ setIssue(issue: IssuesManager.IssueAggregator.AggregatedIssue): void {
276
280
  if (this.#issue !== issue) {
277
281
  this.#needsUpdateOnExpand = true;
278
282
  }
@@ -392,7 +396,7 @@ export class IssueView extends UI.TreeOutline.TreeElement {
392
396
  }
393
397
  this.listItemElement.classList.toggle('hidden-issue', this.#issue.isHidden());
394
398
  if (this.#hiddenIssuesMenu) {
395
- const data: HiddenIssuesMenuData = {
399
+ const data: Components.HideIssuesMenu.HiddenIssuesMenuData = {
396
400
  menuItemLabel: this.#issue.isHidden() ? i18nString(UIStrings.unhideIssuesLikeThis) :
397
401
  i18nString(UIStrings.hideIssuesLikeThis),
398
402
  menuItemAction: () => {
@@ -413,7 +417,7 @@ export class IssueView extends UI.TreeOutline.TreeElement {
413
417
  }
414
418
 
415
419
  #createAffectedResources(): UI.TreeOutline.TreeElement {
416
- const wrapper = new UI.TreeOutline.TreeElement();
420
+ const wrapper = new UI.TreeOutline.TreeElement(undefined, false, 'affected-resources');
417
421
  wrapper.setCollapsible(false);
418
422
  wrapper.setExpandable(true);
419
423
  wrapper.expand();
@@ -427,7 +431,7 @@ export class IssueView extends UI.TreeOutline.TreeElement {
427
431
  }
428
432
 
429
433
  #createBody(): void {
430
- const messageElement = new UI.TreeOutline.TreeElement();
434
+ const messageElement = new UI.TreeOutline.TreeElement(undefined, false, 'issue-description');
431
435
  messageElement.setCollapsible(false);
432
436
  messageElement.selectable = false;
433
437
  const markdownComponent = new MarkdownView.MarkdownView.MarkdownView();
@@ -215,34 +215,38 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: Docu
215
215
  // clang-format on
216
216
  };
217
217
 
218
+ const domNode = layer.nodeForSelfOrAncestor();
219
+
218
220
  // clang-format off
219
221
  Lit.render(
220
222
  html`
221
- <div class="layer-details-container">
223
+ <div class="layer-details-container"
224
+ data-backend-node-id=${domNode ? domNode.backendNodeId() : nothing}
225
+ jslog=${VisualLogging.section('layer-details')}>
222
226
  <table>
223
227
  <tbody>
224
- <tr>
228
+ <tr jslog=${VisualLogging.tableRow('detail-row')}>
225
229
  <td>${i18nString(UIStrings.size)}</td>
226
230
  <td>${i18nString(
227
231
  UIStrings.updateRectangleDimensions,
228
232
  {PH1: layer.width(), PH2: layer.height(), PH3: layer.offsetX(), PH4: layer.offsetY()})}</td>
229
233
  </tr>
230
- <tr>
234
+ <tr jslog=${VisualLogging.tableRow('detail-row')}>
231
235
  <td>${i18nString(UIStrings.compositingReasons)}</td>
232
236
  <td>
233
237
  ${!compositingReasons.length ? 'n/a' :
234
238
  html`<ul>${compositingReasons.map(reason => html`<li>${reason}</li>`)}</ul>`}
235
239
  </td>
236
240
  </tr>
237
- <tr>
241
+ <tr jslog=${VisualLogging.tableRow('detail-row')}>
238
242
  <td>${i18nString(UIStrings.memoryEstimate)}</td>
239
243
  <td>${i18n.ByteUtilities.bytesToString(layer.gpuMemoryUsage())}</td>
240
244
  </tr>
241
- <tr>
245
+ <tr jslog=${VisualLogging.tableRow('detail-row')}>
242
246
  <td>${i18nString(UIStrings.paintCount)}</td>
243
247
  <td>${layer.paintCount()}</td>
244
248
  </tr>
245
- <tr>
249
+ <tr jslog=${VisualLogging.tableRow('detail-row')}>
246
250
  <td>${i18nString(UIStrings.slowScrollRegions)}</td>
247
251
  <td>
248
252
  ${slowScrollRects.map((scrollRect, index) => html`
@@ -259,7 +263,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: Docu
259
263
  </span>`)}
260
264
  </td>
261
265
  </tr>
262
- <tr>
266
+ <tr jslog=${VisualLogging.tableRow('detail-row')}>
263
267
  <td>${i18nString(UIStrings.stickyPositionConstraint)}</td>
264
268
  <td>${renderStickyPositionConstraint(stickyPositionConstraint)}</td>
265
269
  </tr>