chrome-devtools-frontend 1.0.981537 → 1.0.995491

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 (503) hide show
  1. package/AUTHORS +2 -0
  2. package/config/gni/devtools_grd_files.gni +8 -7
  3. package/config/gni/devtools_image_files.gni +1 -0
  4. package/front_end/.eslintrc.js +10 -0
  5. package/front_end/Images/src/ic_rendering.svg +3 -0
  6. package/front_end/core/common/ParsedURL.ts +44 -28
  7. package/front_end/core/common/ResourceType.ts +1 -1
  8. package/front_end/core/common/SettingRegistration.ts +1 -0
  9. package/front_end/core/host/InspectorFrontendHost.ts +11 -10
  10. package/front_end/core/host/InspectorFrontendHostAPI.ts +15 -14
  11. package/front_end/core/host/Platform.ts +11 -2
  12. package/front_end/core/host/UserMetrics.ts +27 -2
  13. package/front_end/core/i18n/DevToolsLocale.ts +4 -0
  14. package/front_end/core/i18n/locales/af.json +76 -16
  15. package/front_end/core/i18n/locales/am.json +76 -16
  16. package/front_end/core/i18n/locales/ar.json +77 -17
  17. package/front_end/core/i18n/locales/as.json +76 -16
  18. package/front_end/core/i18n/locales/az.json +76 -16
  19. package/front_end/core/i18n/locales/be.json +75 -15
  20. package/front_end/core/i18n/locales/bg.json +76 -16
  21. package/front_end/core/i18n/locales/bn.json +76 -16
  22. package/front_end/core/i18n/locales/bs.json +88 -28
  23. package/front_end/core/i18n/locales/ca.json +76 -16
  24. package/front_end/core/i18n/locales/cs.json +76 -16
  25. package/front_end/core/i18n/locales/cy.json +76 -16
  26. package/front_end/core/i18n/locales/da.json +77 -17
  27. package/front_end/core/i18n/locales/de.json +178 -118
  28. package/front_end/core/i18n/locales/el.json +76 -16
  29. package/front_end/core/i18n/locales/en-GB.json +76 -16
  30. package/front_end/core/i18n/locales/en-US.json +205 -52
  31. package/front_end/core/i18n/locales/en-XL.json +205 -52
  32. package/front_end/core/i18n/locales/es-419.json +76 -16
  33. package/front_end/core/i18n/locales/es.json +76 -16
  34. package/front_end/core/i18n/locales/et.json +76 -16
  35. package/front_end/core/i18n/locales/eu.json +76 -16
  36. package/front_end/core/i18n/locales/fa.json +83 -23
  37. package/front_end/core/i18n/locales/fi.json +76 -16
  38. package/front_end/core/i18n/locales/fil.json +76 -16
  39. package/front_end/core/i18n/locales/fr-CA.json +76 -16
  40. package/front_end/core/i18n/locales/fr.json +76 -16
  41. package/front_end/core/i18n/locales/gl.json +76 -16
  42. package/front_end/core/i18n/locales/gu.json +76 -16
  43. package/front_end/core/i18n/locales/he.json +76 -16
  44. package/front_end/core/i18n/locales/hi.json +76 -16
  45. package/front_end/core/i18n/locales/hr.json +76 -16
  46. package/front_end/core/i18n/locales/hu.json +76 -16
  47. package/front_end/core/i18n/locales/hy.json +76 -16
  48. package/front_end/core/i18n/locales/id.json +79 -19
  49. package/front_end/core/i18n/locales/is.json +75 -15
  50. package/front_end/core/i18n/locales/it.json +124 -64
  51. package/front_end/core/i18n/locales/ja.json +76 -16
  52. package/front_end/core/i18n/locales/ka.json +76 -16
  53. package/front_end/core/i18n/locales/kk.json +76 -16
  54. package/front_end/core/i18n/locales/km.json +76 -16
  55. package/front_end/core/i18n/locales/kn.json +76 -16
  56. package/front_end/core/i18n/locales/ko.json +76 -16
  57. package/front_end/core/i18n/locales/ky.json +76 -16
  58. package/front_end/core/i18n/locales/lo.json +76 -16
  59. package/front_end/core/i18n/locales/lt.json +76 -16
  60. package/front_end/core/i18n/locales/lv.json +76 -16
  61. package/front_end/core/i18n/locales/mk.json +76 -16
  62. package/front_end/core/i18n/locales/ml.json +76 -16
  63. package/front_end/core/i18n/locales/mn.json +76 -16
  64. package/front_end/core/i18n/locales/mr.json +76 -16
  65. package/front_end/core/i18n/locales/ms.json +76 -16
  66. package/front_end/core/i18n/locales/my.json +78 -18
  67. package/front_end/core/i18n/locales/ne.json +76 -16
  68. package/front_end/core/i18n/locales/nl.json +77 -17
  69. package/front_end/core/i18n/locales/no.json +76 -16
  70. package/front_end/core/i18n/locales/or.json +76 -16
  71. package/front_end/core/i18n/locales/pa.json +76 -16
  72. package/front_end/core/i18n/locales/pl.json +78 -18
  73. package/front_end/core/i18n/locales/pt-PT.json +123 -63
  74. package/front_end/core/i18n/locales/pt.json +78 -18
  75. package/front_end/core/i18n/locales/ro.json +76 -16
  76. package/front_end/core/i18n/locales/ru.json +77 -17
  77. package/front_end/core/i18n/locales/si.json +76 -16
  78. package/front_end/core/i18n/locales/sk.json +76 -16
  79. package/front_end/core/i18n/locales/sl.json +76 -16
  80. package/front_end/core/i18n/locales/sq.json +76 -16
  81. package/front_end/core/i18n/locales/sr-Latn.json +76 -16
  82. package/front_end/core/i18n/locales/sr.json +76 -16
  83. package/front_end/core/i18n/locales/sv.json +76 -16
  84. package/front_end/core/i18n/locales/sw.json +76 -16
  85. package/front_end/core/i18n/locales/ta.json +77 -17
  86. package/front_end/core/i18n/locales/te.json +76 -16
  87. package/front_end/core/i18n/locales/th.json +76 -16
  88. package/front_end/core/i18n/locales/tr.json +76 -16
  89. package/front_end/core/i18n/locales/uk.json +76 -16
  90. package/front_end/core/i18n/locales/ur.json +76 -16
  91. package/front_end/core/i18n/locales/uz.json +77 -17
  92. package/front_end/core/i18n/locales/vi.json +76 -16
  93. package/front_end/core/i18n/locales/zh-HK.json +76 -16
  94. package/front_end/core/i18n/locales/zh-TW.json +76 -16
  95. package/front_end/core/i18n/locales/zh.json +76 -16
  96. package/front_end/core/i18n/locales/zu.json +76 -16
  97. package/front_end/core/platform/dom-utilities.ts +16 -0
  98. package/front_end/core/platform/platform.ts +2 -0
  99. package/front_end/core/protocol_client/InspectorBackend.ts +2 -1
  100. package/front_end/core/protocol_client/NodeURL.ts +1 -1
  101. package/front_end/core/root/Runtime.ts +6 -0
  102. package/front_end/core/sdk/AccessibilityModel.ts +7 -6
  103. package/front_end/core/sdk/CSSMatchedStyles.ts +71 -17
  104. package/front_end/core/sdk/CSSMetadata.ts +15 -0
  105. package/front_end/core/sdk/CSSModel.ts +9 -7
  106. package/front_end/core/sdk/CSSProperty.ts +97 -11
  107. package/front_end/core/sdk/CSSStyleSheetHeader.ts +9 -5
  108. package/front_end/core/sdk/CSSSupports.ts +4 -1
  109. package/front_end/core/sdk/ChildTargetManager.ts +3 -1
  110. package/front_end/core/sdk/Connections.ts +3 -2
  111. package/front_end/core/sdk/ConsoleModel.ts +6 -5
  112. package/front_end/core/sdk/Cookie.ts +4 -2
  113. package/front_end/core/sdk/DOMDebuggerModel.ts +10 -6
  114. package/front_end/core/sdk/DOMModel.ts +2 -2
  115. package/front_end/core/sdk/DebuggerModel.ts +27 -5
  116. package/front_end/core/sdk/HeapProfilerModel.ts +2 -1
  117. package/front_end/core/sdk/NetworkManager.ts +13 -12
  118. package/front_end/core/sdk/NetworkRequest.ts +1 -1
  119. package/front_end/core/sdk/PageLoad.ts +3 -1
  120. package/front_end/core/sdk/PageResourceLoader.ts +9 -7
  121. package/front_end/core/sdk/ProfileTreeModel.ts +3 -2
  122. package/front_end/core/sdk/RemoteObject.ts +18 -6
  123. package/front_end/core/sdk/ResourceTreeModel.ts +17 -11
  124. package/front_end/core/sdk/ScreenCaptureModel.ts +3 -0
  125. package/front_end/core/sdk/Script.ts +4 -3
  126. package/front_end/core/sdk/ServiceWorkerCacheModel.ts +2 -1
  127. package/front_end/core/sdk/SourceMap.ts +10 -6
  128. package/front_end/core/sdk/SourceMapManager.ts +47 -5
  129. package/front_end/core/sdk/Target.ts +2 -1
  130. package/front_end/core/sdk/TracingModel.ts +0 -9
  131. package/front_end/devtools_compatibility.js +1 -0
  132. package/front_end/entrypoints/formatter_worker/CSSRuleParser.ts +1 -1
  133. package/front_end/entrypoints/lighthouse_worker/LighthouseWorkerService.ts +10 -3
  134. package/front_end/entrypoints/main/MainImpl.ts +22 -2
  135. package/front_end/generated/InspectorBackendCommands.js +79 -14
  136. package/front_end/generated/SupportedCSSProperties.js +21 -8
  137. package/front_end/generated/protocol-mapping.d.ts +4 -0
  138. package/front_end/generated/protocol-proxy-api.d.ts +5 -0
  139. package/front_end/generated/protocol.ts +158 -28
  140. package/front_end/legacy/legacy-defs.d.ts +0 -4
  141. package/front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js +1 -1
  142. package/front_end/legacy_test_runner/test_runner/TestRunner.js +1 -0
  143. package/front_end/models/bindings/BreakpointManager.ts +68 -11
  144. package/front_end/models/bindings/CSSWorkspaceBinding.ts +9 -2
  145. package/front_end/models/bindings/CompilerScriptMapping.ts +3 -2
  146. package/front_end/models/bindings/ContentProviderBasedProject.ts +12 -9
  147. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +10 -8
  148. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +8 -1
  149. package/front_end/models/bindings/DefaultScriptMapping.ts +8 -2
  150. package/front_end/models/bindings/FileUtils.ts +3 -2
  151. package/front_end/models/bindings/IgnoreListManager.ts +5 -5
  152. package/front_end/models/bindings/ResourceUtils.ts +5 -4
  153. package/front_end/models/emulation/EmulatedDevices.ts +17 -0
  154. package/front_end/models/extensions/ExtensionAPI.ts +5 -2
  155. package/front_end/models/extensions/ExtensionPanel.ts +2 -1
  156. package/front_end/models/extensions/ExtensionServer.ts +13 -8
  157. package/front_end/models/issues_manager/AttributionReportingIssue.ts +0 -63
  158. package/front_end/models/issues_manager/CookieIssue.ts +7 -0
  159. package/front_end/models/issues_manager/DeprecationIssue.ts +326 -8
  160. package/front_end/models/issues_manager/IssuesManager.ts +4 -0
  161. package/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  162. package/front_end/models/issues_manager/descriptions/deprecation.md +1 -1
  163. package/front_end/models/logs/LogManager.ts +2 -1
  164. package/front_end/models/logs/NetworkLog.ts +14 -12
  165. package/front_end/models/persistence/Automapping.ts +17 -16
  166. package/front_end/models/persistence/EditFileSystemView.ts +5 -4
  167. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +24 -24
  168. package/front_end/models/persistence/IsolatedFileSystem.ts +2 -2
  169. package/front_end/models/persistence/IsolatedFileSystemManager.ts +7 -6
  170. package/front_end/models/persistence/NetworkPersistenceManager.ts +92 -54
  171. package/front_end/models/persistence/PersistenceImpl.ts +7 -7
  172. package/front_end/models/persistence/PlatformFileSystem.ts +7 -8
  173. package/front_end/models/persistence/WorkspaceSettingsTab.ts +3 -2
  174. package/front_end/models/text_utils/CodeMirrorUtils.ts +53 -0
  175. package/front_end/models/text_utils/text_utils.ts +2 -0
  176. package/front_end/models/timeline_model/TimelineModel.ts +31 -30
  177. package/front_end/models/timeline_model/TimelineProfileTree.ts +3 -2
  178. package/front_end/models/workspace/FileManager.ts +9 -6
  179. package/front_end/models/workspace/UISourceCode.ts +16 -14
  180. package/front_end/models/workspace/WorkspaceImpl.ts +40 -16
  181. package/front_end/panels/accessibility/AccessibilitySubPane.ts +2 -1
  182. package/front_end/panels/application/AppManifestView.ts +1 -1
  183. package/front_end/panels/application/ApplicationPanelCacheSection.ts +5 -4
  184. package/front_end/panels/application/ApplicationPanelSidebar.ts +34 -30
  185. package/front_end/panels/application/ApplicationPanelTreeElement.ts +5 -4
  186. package/front_end/panels/application/BackgroundServiceView.ts +2 -1
  187. package/front_end/panels/application/DatabaseQueryView.ts +2 -1
  188. package/front_end/panels/application/InterestGroupTreeElement.ts +3 -2
  189. package/front_end/panels/application/ReportingApiTreeElement.ts +3 -2
  190. package/front_end/panels/application/ResourcesPanel.ts +4 -3
  191. package/front_end/panels/application/ServiceWorkerCacheViews.ts +6 -1
  192. package/front_end/panels/application/TrustTokensTreeElement.ts +3 -2
  193. package/front_end/panels/application/components/BackForwardCacheStrings.ts +10 -1
  194. package/front_end/panels/application/components/BackForwardCacheView.ts +163 -13
  195. package/front_end/panels/application/components/backForwardCacheView.css +15 -4
  196. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +19 -19
  197. package/front_end/panels/changes/ChangesView.ts +38 -0
  198. package/front_end/panels/console/ConsolePinPane.ts +7 -0
  199. package/front_end/panels/console/ConsolePrompt.ts +11 -1
  200. package/front_end/panels/console/ConsoleSidebar.ts +2 -1
  201. package/front_end/panels/console/ConsoleView.ts +60 -32
  202. package/front_end/panels/console/ConsoleViewMessage.ts +12 -9
  203. package/front_end/panels/console/ConsoleViewport.ts +2 -1
  204. package/front_end/panels/console/ErrorStackParser.ts +8 -4
  205. package/front_end/panels/console/consoleView.css +0 -1
  206. package/front_end/panels/coverage/CoverageListView.ts +1 -1
  207. package/front_end/panels/coverage/CoverageModel.ts +6 -6
  208. package/front_end/panels/coverage/CoverageView.ts +2 -1
  209. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +2 -1
  210. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +7 -6
  211. package/front_end/panels/css_overview/components/cssOverviewStartView.css +0 -48
  212. package/front_end/panels/css_overview/cssOverviewCompletedView.css +5 -0
  213. package/front_end/panels/css_overview/cssOverviewSidebarPanel.css +2 -0
  214. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +2 -1
  215. package/front_end/panels/elements/ComputedStyleWidget.ts +2 -1
  216. package/front_end/panels/elements/ElementStatePaneWidget.ts +4 -6
  217. package/front_end/panels/elements/ElementsPanel.ts +16 -5
  218. package/front_end/panels/elements/ImagePreviewPopover.ts +6 -4
  219. package/front_end/panels/elements/PropertiesWidget.ts +4 -24
  220. package/front_end/panels/elements/StyleEditorWidget.ts +2 -1
  221. package/front_end/panels/elements/StylePropertiesSection.ts +1614 -0
  222. package/front_end/panels/elements/StylePropertyHighlighter.ts +2 -1
  223. package/front_end/panels/elements/StylePropertyTreeElement.ts +20 -1
  224. package/front_end/panels/elements/StylesSidebarPane.ts +97 -1675
  225. package/front_end/panels/elements/elements-legacy.ts +3 -3
  226. package/front_end/panels/elements/elements.ts +3 -0
  227. package/front_end/panels/elements/stylesSidebarPane.css +3 -1
  228. package/front_end/panels/emulation/DeviceModeToolbar.ts +2 -1
  229. package/front_end/panels/input/InputTimeline.ts +3 -2
  230. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -50
  231. package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +14 -2
  232. package/front_end/panels/issues/IssueAggregator.ts +8 -0
  233. package/front_end/panels/issues/issues.ts +2 -0
  234. package/front_end/panels/lighthouse/LighthouseController.ts +5 -1
  235. package/front_end/panels/lighthouse/LighthousePanel.ts +3 -1
  236. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
  237. package/front_end/panels/lighthouse/LighthouseTimespanView.ts +3 -3
  238. package/front_end/panels/network/BlockedURLsPane.ts +3 -2
  239. package/front_end/panels/network/NetworkConfigView.ts +6 -0
  240. package/front_end/panels/network/NetworkDataGridNode.ts +4 -0
  241. package/front_end/panels/network/NetworkLogView.ts +3 -3
  242. package/front_end/panels/network/RequestHTMLView.ts +1 -0
  243. package/front_end/panels/network/RequestHeadersView.ts +71 -10
  244. package/front_end/panels/network/networkLogView.css +9 -17
  245. package/front_end/panels/network/requestHeadersTree.css +16 -0
  246. package/front_end/panels/profiler/HeapSnapshotView.ts +5 -2
  247. package/front_end/panels/profiler/LiveHeapProfileView.ts +3 -1
  248. package/front_end/panels/profiler/ProfileView.ts +2 -2
  249. package/front_end/panels/profiler/ProfilesPanel.ts +2 -1
  250. package/front_end/panels/profiler/heapProfiler.css +15 -3
  251. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +4 -2
  252. package/front_end/panels/screencast/ScreencastView.ts +5 -2
  253. package/front_end/panels/search/SearchConfig.ts +2 -1
  254. package/front_end/panels/settings/KeybindsSettingsTab.ts +3 -2
  255. package/front_end/panels/settings/SettingsScreen.ts +4 -1
  256. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +1 -2
  257. package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +4 -4
  258. package/front_end/panels/sources/BreakpointEditDialog.ts +0 -1
  259. package/front_end/panels/sources/CSSPlugin.ts +6 -6
  260. package/front_end/panels/sources/CoveragePlugin.ts +2 -1
  261. package/front_end/panels/sources/DebuggerPlugin.ts +4 -4
  262. package/front_end/panels/sources/EditingLocationHistoryManager.ts +4 -1
  263. package/front_end/panels/sources/NavigatorView.ts +28 -20
  264. package/front_end/panels/sources/SearchSourcesView.ts +2 -2
  265. package/front_end/panels/sources/SourcesNavigator.ts +4 -2
  266. package/front_end/panels/sources/SourcesPanel.ts +4 -4
  267. package/front_end/panels/sources/SourcesSearchScope.ts +12 -8
  268. package/front_end/panels/sources/SourcesView.ts +3 -1
  269. package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
  270. package/front_end/panels/sources/components/HeadersView.css +17 -2
  271. package/front_end/panels/sources/components/HeadersView.ts +103 -1
  272. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +9 -9
  273. package/front_end/panels/timeline/TimelinePanel.ts +3 -2
  274. package/front_end/panels/timeline/timelinePanel.css +1 -2
  275. package/front_end/panels/utils/utils.ts +97 -0
  276. package/front_end/third_party/codemirror.next/bundle.ts +27 -25
  277. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  278. package/front_end/third_party/codemirror.next/chunk/cpp.js +2 -2
  279. package/front_end/third_party/codemirror.next/chunk/java.js +2 -1
  280. package/front_end/third_party/codemirror.next/chunk/json.js +2 -2
  281. package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
  282. package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -2
  283. package/front_end/third_party/codemirror.next/chunk/php.js +2 -1
  284. package/front_end/third_party/codemirror.next/chunk/python.js +2 -2
  285. package/front_end/third_party/codemirror.next/chunk/wast.js +2 -1
  286. package/front_end/third_party/codemirror.next/chunk/xml.js +2 -1
  287. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +1884 -2281
  288. package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
  289. package/front_end/third_party/codemirror.next/package.json +21 -32
  290. package/front_end/third_party/lit-html/README.chromium +3 -3
  291. package/front_end/third_party/lit-html/package/README.md +1 -1
  292. package/front_end/third_party/lit-html/package/async-directive.d.ts +1 -1
  293. package/front_end/third_party/lit-html/package/async-directive.js.map +1 -1
  294. package/front_end/third_party/lit-html/package/development/async-directive.d.ts +1 -1
  295. package/front_end/third_party/lit-html/package/development/async-directive.js.map +1 -1
  296. package/front_end/third_party/lit-html/package/development/directives/choose.d.ts +32 -0
  297. package/front_end/third_party/lit-html/package/development/directives/choose.d.ts.map +1 -0
  298. package/front_end/third_party/lit-html/package/development/directives/choose.js +41 -0
  299. package/front_end/third_party/lit-html/package/development/directives/choose.js.map +1 -0
  300. package/front_end/third_party/lit-html/package/development/directives/join.d.ts +21 -0
  301. package/front_end/third_party/lit-html/package/development/directives/join.d.ts.map +1 -0
  302. package/front_end/third_party/lit-html/package/development/directives/join.js +19 -0
  303. package/front_end/third_party/lit-html/package/development/directives/join.js.map +1 -0
  304. package/front_end/third_party/lit-html/package/development/directives/keyed.d.ts +23 -0
  305. package/front_end/third_party/lit-html/package/development/directives/keyed.d.ts.map +1 -0
  306. package/front_end/third_party/lit-html/package/development/directives/keyed.js +39 -0
  307. package/front_end/third_party/lit-html/package/development/directives/keyed.js.map +1 -0
  308. package/front_end/third_party/lit-html/package/development/directives/map.d.ts +23 -0
  309. package/front_end/third_party/lit-html/package/development/directives/map.d.ts.map +1 -0
  310. package/front_end/third_party/lit-html/package/development/directives/map.js +30 -0
  311. package/front_end/third_party/lit-html/package/development/directives/map.js.map +1 -0
  312. package/front_end/third_party/lit-html/package/development/directives/range.d.ts +24 -0
  313. package/front_end/third_party/lit-html/package/development/directives/range.d.ts.map +1 -0
  314. package/front_end/third_party/lit-html/package/development/directives/range.js +13 -0
  315. package/front_end/third_party/lit-html/package/development/directives/range.js.map +1 -0
  316. package/front_end/third_party/lit-html/package/development/directives/template-content.d.ts +1 -1
  317. package/front_end/third_party/lit-html/package/development/directives/when.d.ts +26 -0
  318. package/front_end/third_party/lit-html/package/development/directives/when.d.ts.map +1 -0
  319. package/front_end/third_party/lit-html/package/development/directives/when.js +9 -0
  320. package/front_end/third_party/lit-html/package/development/directives/when.js.map +1 -0
  321. package/front_end/third_party/lit-html/package/development/lit-html.d.ts +182 -1
  322. package/front_end/third_party/lit-html/package/development/lit-html.d.ts.map +1 -1
  323. package/front_end/third_party/lit-html/package/development/lit-html.js +187 -4
  324. package/front_end/third_party/lit-html/package/development/lit-html.js.map +1 -1
  325. package/front_end/third_party/lit-html/package/development/static.d.ts.map +1 -1
  326. package/front_end/third_party/lit-html/package/development/static.js +7 -0
  327. package/front_end/third_party/lit-html/package/development/static.js.map +1 -1
  328. package/front_end/third_party/lit-html/package/directives/choose.d.ts +32 -0
  329. package/front_end/third_party/lit-html/package/directives/choose.d.ts.map +1 -0
  330. package/front_end/third_party/lit-html/package/directives/choose.js +7 -0
  331. package/front_end/third_party/lit-html/package/directives/choose.js.map +1 -0
  332. package/front_end/third_party/lit-html/package/directives/class-map.js +1 -1
  333. package/front_end/third_party/lit-html/package/directives/guard.js +1 -1
  334. package/front_end/third_party/lit-html/package/directives/join.d.ts +21 -0
  335. package/front_end/third_party/lit-html/package/directives/join.d.ts.map +1 -0
  336. package/front_end/third_party/lit-html/package/directives/join.js +7 -0
  337. package/front_end/third_party/lit-html/package/directives/join.js.map +1 -0
  338. package/front_end/third_party/lit-html/package/directives/keyed.d.ts +23 -0
  339. package/front_end/third_party/lit-html/package/directives/keyed.d.ts.map +1 -0
  340. package/front_end/third_party/lit-html/package/directives/keyed.js +7 -0
  341. package/front_end/third_party/lit-html/package/directives/keyed.js.map +1 -0
  342. package/front_end/third_party/lit-html/package/directives/map.d.ts +23 -0
  343. package/front_end/third_party/lit-html/package/directives/map.d.ts.map +1 -0
  344. package/front_end/third_party/lit-html/package/directives/map.js +7 -0
  345. package/front_end/third_party/lit-html/package/directives/map.js.map +1 -0
  346. package/front_end/third_party/lit-html/package/directives/range.d.ts +24 -0
  347. package/front_end/third_party/lit-html/package/directives/range.d.ts.map +1 -0
  348. package/front_end/third_party/lit-html/package/directives/range.js +7 -0
  349. package/front_end/third_party/lit-html/package/directives/range.js.map +1 -0
  350. package/front_end/third_party/lit-html/package/directives/ref.js +1 -1
  351. package/front_end/third_party/lit-html/package/directives/repeat.js +1 -1
  352. package/front_end/third_party/lit-html/package/directives/style-map.js +1 -1
  353. package/front_end/third_party/lit-html/package/directives/template-content.d.ts +1 -1
  354. package/front_end/third_party/lit-html/package/directives/template-content.js +1 -1
  355. package/front_end/third_party/lit-html/package/directives/unsafe-html.js +1 -1
  356. package/front_end/third_party/lit-html/package/directives/until.js +1 -1
  357. package/front_end/third_party/lit-html/package/directives/when.d.ts +26 -0
  358. package/front_end/third_party/lit-html/package/directives/when.d.ts.map +1 -0
  359. package/front_end/third_party/lit-html/package/directives/when.js +7 -0
  360. package/front_end/third_party/lit-html/package/directives/when.js.map +1 -0
  361. package/front_end/third_party/lit-html/package/lit-html.d.ts +182 -1
  362. package/front_end/third_party/lit-html/package/lit-html.d.ts.map +1 -1
  363. package/front_end/third_party/lit-html/package/lit-html.js +1 -1
  364. package/front_end/third_party/lit-html/package/lit-html.js.map +1 -1
  365. package/front_end/third_party/lit-html/package/package.json +25 -1
  366. package/front_end/third_party/lit-html/package/private-ssr-support.js +1 -1
  367. package/front_end/third_party/lit-html/package/static.d.ts.map +1 -1
  368. package/front_end/third_party/lit-html/package/static.js +1 -1
  369. package/front_end/third_party/lit-html/package/static.js.map +1 -1
  370. package/front_end/third_party/puppeteer/README.chromium +1 -1
  371. package/front_end/third_party/puppeteer/package/README.md +12 -13
  372. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.js +5 -1
  373. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.js.map +1 -1
  374. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +5 -1
  375. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  376. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts +2 -2
  377. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +2 -2
  378. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +2 -2
  379. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  380. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +13 -6
  381. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
  382. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js +5 -1
  383. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
  384. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts +1 -0
  385. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts.map +1 -1
  386. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js +4 -1
  387. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js.map +1 -1
  388. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts +1 -0
  389. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts.map +1 -1
  390. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js +10 -0
  391. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js.map +1 -1
  392. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts +4 -2
  393. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts.map +1 -1
  394. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.js.map +1 -1
  395. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts.map +1 -1
  396. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js +12 -1
  397. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js.map +1 -1
  398. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.js +5 -1
  399. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.js.map +1 -1
  400. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.d.ts.map +1 -1
  401. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js +7 -6
  402. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js.map +1 -1
  403. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +8 -1
  404. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
  405. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js +6 -2
  406. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js.map +1 -1
  407. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +6 -2
  408. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
  409. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +1 -1
  410. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +2 -2
  411. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +2 -2
  412. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +2 -2
  413. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  414. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +13 -6
  415. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
  416. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts +1 -0
  417. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts.map +1 -1
  418. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js +4 -1
  419. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js.map +1 -1
  420. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +1 -0
  421. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -1
  422. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +10 -0
  423. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js.map +1 -1
  424. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +4 -2
  425. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -1
  426. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js.map +1 -1
  427. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -1
  428. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +12 -1
  429. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js.map +1 -1
  430. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -1
  431. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +2 -5
  432. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js.map +1 -1
  433. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +3 -0
  434. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
  435. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +1 -1
  436. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js.map +1 -1
  437. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +1 -1
  438. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
  439. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +1 -1
  440. package/front_end/third_party/puppeteer/package/lib/types.d.ts +10 -6
  441. package/front_end/third_party/puppeteer/package/package.json +17 -17
  442. package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +1 -1
  443. package/front_end/ui/components/data_grid/DataGrid.ts +8 -9
  444. package/front_end/ui/components/data_grid/DataGridController.ts +3 -1
  445. package/front_end/ui/components/docs/panel_introduction_steps/basic.html +25 -0
  446. package/front_end/ui/components/docs/panel_introduction_steps/basic.ts +25 -0
  447. package/front_end/ui/components/input/input.ts +2 -2
  448. package/front_end/ui/components/linkifier/LinkifierUtils.ts +3 -1
  449. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +4 -1
  450. package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +44 -0
  451. package/front_end/ui/components/panel_introduction_steps/panelIntroductionSteps.css +56 -0
  452. package/front_end/ui/components/panel_introduction_steps/panel_introduction_steps.ts +5 -0
  453. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +3 -4
  454. package/front_end/ui/components/text_editor/TextEditor.ts +1 -1
  455. package/front_end/ui/components/text_editor/config.ts +1 -35
  456. package/front_end/ui/components/text_editor/javascript.ts +8 -8
  457. package/front_end/ui/components/tree_outline/TreeOutline.ts +10 -9
  458. package/front_end/ui/components/tree_outline/treeOutline.css +1 -1
  459. package/front_end/ui/legacy/ARIAUtils.ts +4 -2
  460. package/front_end/ui/legacy/ContextMenu.ts +14 -0
  461. package/front_end/ui/legacy/DockController.ts +2 -1
  462. package/front_end/ui/legacy/SettingsUI.ts +3 -3
  463. package/front_end/ui/legacy/SoftContextMenu.ts +43 -14
  464. package/front_end/ui/legacy/Toolbar.ts +16 -0
  465. package/front_end/ui/legacy/Treeoutline.ts +17 -7
  466. package/front_end/ui/legacy/UIUtils.ts +2 -2
  467. package/front_end/ui/legacy/View.ts +14 -8
  468. package/front_end/ui/legacy/ViewManager.ts +2 -1
  469. package/front_end/ui/legacy/ViewRegistration.ts +6 -0
  470. package/front_end/ui/legacy/Widget.ts +2 -1
  471. package/front_end/ui/legacy/XLink.ts +8 -3
  472. package/front_end/ui/legacy/components/color_picker/ContrastDetails.ts +3 -1
  473. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +43 -11
  474. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +98 -48
  475. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +4 -3
  476. package/front_end/ui/legacy/components/data_grid/dataGrid.css +24 -28
  477. package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +5 -11
  478. package/front_end/ui/legacy/components/inline_editor/CSSLength.ts +8 -1
  479. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -7
  480. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +11 -10
  481. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +7 -1
  482. package/front_end/ui/legacy/components/utils/ImagePreview.ts +18 -9
  483. package/front_end/ui/legacy/components/utils/Linkifier.ts +13 -6
  484. package/front_end/ui/legacy/reportView.css +1 -0
  485. package/front_end/ui/legacy/splitWidget.css +1 -1
  486. package/front_end/ui/legacy/tabbedPane.css +2 -0
  487. package/front_end/ui/legacy/themeColors.css +1 -1
  488. package/front_end/ui/legacy/toolbar.css +17 -1
  489. package/front_end/ui/legacy/utils/focus-changed.ts +3 -1
  490. package/inspector_overlay/.eslintrc.js +9 -0
  491. package/package.json +17 -17
  492. package/scripts/eslint_rules/lib/check_component_naming.js +4 -0
  493. package/scripts/eslint_rules/lib/es_modules_import.js +6 -0
  494. package/scripts/eslint_rules/lib/inject_checkbox_styles.js +121 -0
  495. package/scripts/eslint_rules/tests/es_modules_import_test.js +12 -0
  496. package/scripts/eslint_rules/tests/inject_checkbox_styles_test.js +127 -0
  497. package/front_end/models/issues_manager/descriptions/arAttributionEventSourceTriggerDataTooLarge.md +0 -4
  498. package/front_end/models/issues_manager/descriptions/arAttributionTriggerDataTooLarge.md +0 -4
  499. package/front_end/models/issues_manager/descriptions/arInvalidAttributionData.md +0 -8
  500. package/front_end/models/issues_manager/descriptions/arInvalidEventSourceTriggerData.md +0 -9
  501. package/front_end/models/issues_manager/descriptions/arInvalidTriggerDedupKey.md +0 -5
  502. package/front_end/models/issues_manager/descriptions/arInvalidTriggerPriority.md +0 -5
  503. package/front_end/models/issues_manager/descriptions/arMissingAttributionData.md +0 -7
@@ -126,8 +126,7 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
126
126
  private editCallback: ((arg0: any, arg1: string, arg2: any, arg3: any) => void)|undefined;
127
127
  private readonly deleteCallback: ((arg0: any) => void)|undefined;
128
128
  private readonly refreshCallback: (() => void)|undefined;
129
- private readonly headerTable: Element;
130
- private headerTableHeaders: {
129
+ private dataTableHeaders: {
131
130
  [x: string]: Element,
132
131
  };
133
132
  scrollContainerInternal: Element;
@@ -139,8 +138,7 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
139
138
  };
140
139
  visibleColumnsArray: ColumnDescriptor[];
141
140
  cellClass: string|null;
142
- private readonly headerTableColumnGroup: Element;
143
- private headerTableBodyInternal: HTMLTableSectionElement;
141
+ private dataTableHeadInternal: HTMLTableSectionElement;
144
142
  private readonly headerRow: Element;
145
143
  private readonly dataTableColumnGroup: Element;
146
144
  dataTableBody: Element;
@@ -190,9 +188,8 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
190
188
  this.deleteCallback = deleteCallback;
191
189
  this.refreshCallback = refreshCallback;
192
190
 
193
- const headerContainer = this.element.createChild('div', 'header-container');
194
- this.headerTable = headerContainer.createChild('table', 'header');
195
- this.headerTableHeaders = {};
191
+ this.dataTableHeaders = {};
192
+
196
193
  this.scrollContainerInternal = this.element.createChild('div', 'data-container');
197
194
  this.dataTable = this.scrollContainerInternal.createChild('table', 'data');
198
195
 
@@ -214,14 +211,16 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
214
211
 
215
212
  this.cellClass = null;
216
213
 
217
- this.headerTableColumnGroup = this.headerTable.createChild('colgroup');
218
- this.headerTableBodyInternal = (this.headerTable.createChild('tbody') as HTMLTableSectionElement);
219
- this.headerRow = this.headerTableBodyInternal.createChild('tr');
220
-
221
214
  this.dataTableColumnGroup = this.dataTable.createChild('colgroup');
215
+
216
+ this.dataTableHeadInternal = this.dataTable.createChild('thead') as HTMLTableSectionElement;
217
+ this.headerRow = this.dataTableHeadInternal.createChild('tr');
218
+
222
219
  this.dataTableBody = this.dataTable.createChild('tbody');
223
220
  this.topFillerRow = (this.dataTableBody.createChild('tr', 'data-grid-filler-row revealed') as HTMLElement);
221
+ UI.ARIAUtils.setHidden(this.topFillerRow, true);
224
222
  this.bottomFillerRow = (this.dataTableBody.createChild('tr', 'data-grid-filler-row revealed') as HTMLElement);
223
+ UI.ARIAUtils.setHidden(this.bottomFillerRow, true);
225
224
 
226
225
  this.setVerticalPadding(0, 0, true);
227
226
  this.refreshHeader();
@@ -265,20 +264,25 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
265
264
  return lastSelectableNode;
266
265
  }
267
266
 
268
- setElementContent(element: Element, value: any): void {
267
+ setElementContent(element: Element, value: string): void {
269
268
  const columnId = this.columnIdFromNode(element);
270
269
  if (!columnId) {
271
270
  return;
272
271
  }
273
272
  const column = this.columns[columnId];
273
+ const parentElement = element.parentElement;
274
+ let gridNode;
275
+ if (parentElement) {
276
+ gridNode = this.elementToDataGridNode.get(parentElement);
277
+ }
274
278
  if (column.dataType === DataType.Boolean) {
275
- DataGridImpl.setElementBoolean(element, (Boolean(value) as boolean));
279
+ DataGridImpl.setElementBoolean(element, Boolean(value), gridNode);
276
280
  } else if (value !== null) {
277
- DataGridImpl.setElementText(element, (value as string), Boolean(column.longText));
281
+ DataGridImpl.setElementText(element, value, Boolean(column.longText), gridNode);
278
282
  }
279
283
  }
280
284
 
281
- static setElementText(element: Element, newText: string, longText: boolean): void {
285
+ static setElementText(element: Element, newText: string, longText: boolean, gridNode?: DataGridNode<string>): void {
282
286
  if (longText && newText.length > 1000) {
283
287
  element.textContent = Platform.StringUtilities.trimEndWithMaxLength(newText, 1000);
284
288
  UI.Tooltip.Tooltip.install(element as HTMLElement, newText);
@@ -288,11 +292,48 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
288
292
  UI.Tooltip.Tooltip.install(element as HTMLElement, '');
289
293
  elementToLongTextMap.delete(element);
290
294
  }
295
+ if (gridNode) {
296
+ DataGridImpl.updateNodeAccessibleText(gridNode);
297
+ }
291
298
  }
292
299
 
293
- static setElementBoolean(element: Element, value: boolean): void {
300
+ static setElementBoolean(element: Element, value: boolean, gridNode?: DataGridNode<string>): void {
294
301
  element.textContent = value ? '\u2713' : '';
295
302
  UI.Tooltip.Tooltip.install(element as HTMLElement, '');
303
+ if (gridNode) {
304
+ DataGridImpl.updateNodeAccessibleText(gridNode);
305
+ }
306
+ }
307
+
308
+ static updateNodeAccessibleText(gridNode: DataGridNode<string>): void {
309
+ let accessibleText = '';
310
+ let colElement: Element|null = gridNode.elementInternal?.children[0] || null;
311
+ if (!colElement) {
312
+ return;
313
+ }
314
+
315
+ while (colElement && !colElement.classList.contains('corner')) {
316
+ let columnClass = null;
317
+ for (const cssClass of colElement.classList) {
318
+ if (cssClass.includes('-column')) {
319
+ columnClass = cssClass.substring(0, cssClass.indexOf('-column'));
320
+ break;
321
+ }
322
+ }
323
+ if (columnClass && gridNode.dataGrid) {
324
+ const colName = gridNode.dataGrid.columns[columnClass];
325
+ if (colName) {
326
+ accessibleText += `${colName.title}: ${colElement.textContent}, `;
327
+ }
328
+ }
329
+ colElement = colElement.nextElementSibling;
330
+ }
331
+
332
+ if (accessibleText.length > 0) {
333
+ // Trim off comma and space at the end.
334
+ accessibleText = accessibleText.substring(0, accessibleText.length - 2);
335
+ }
336
+ gridNode.nodeAccessibleText = accessibleText;
296
337
  }
297
338
 
298
339
  setStriped(isStriped: boolean): void {
@@ -315,7 +356,7 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
315
356
  // Update the label with the provided text or the current selected node
316
357
  const accessibleText =
317
358
  (this.selectedNode && this.selectedNode.existingElement()) ? this.selectedNode.nodeAccessibleText : '';
318
- if (this.element === this.element.ownerDocument.deepActiveElement()) {
359
+ if (this.element === Platform.DOMUtilities.deepActiveElement(this.element.ownerDocument)) {
319
360
  // Only alert if the datagrid has focus
320
361
  UI.ARIAUtils.alert(text ? text : accessibleText);
321
362
  }
@@ -345,10 +386,6 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
345
386
  UI.ARIAUtils.alert(accessibleText);
346
387
  }
347
388
 
348
- headerTableBody(): Element {
349
- return this.headerTableBodyInternal;
350
- }
351
-
352
389
  private innerAddColumn(column: ColumnDescriptor, position?: number): void {
353
390
  column.defaultWeight = column.weight;
354
391
 
@@ -370,7 +407,7 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
370
407
  const cell = document.createElement('th');
371
408
  cell.className = columnId + '-column';
372
409
  nodeToColumnIdMap.set(cell, columnId);
373
- this.headerTableHeaders[columnId] = cell;
410
+ this.dataTableHeaders[columnId] = cell;
374
411
 
375
412
  const div = document.createElement('div');
376
413
  if (column.titleDOMFragment) {
@@ -406,11 +443,11 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
406
443
  delete this.columns[columnId];
407
444
  const index = this.columnsArray.findIndex(columnConfig => columnConfig.id === columnId);
408
445
  this.columnsArray.splice(index, 1);
409
- const cell = this.headerTableHeaders[columnId];
446
+ const cell = this.dataTableHeaders[columnId];
410
447
  if (cell.parentElement) {
411
448
  cell.parentElement.removeChild(cell);
412
449
  }
413
- delete this.headerTableHeaders[columnId];
450
+ delete this.dataTableHeaders[columnId];
414
451
  }
415
452
 
416
453
  removeColumn(columnId: string): void {
@@ -422,7 +459,6 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
422
459
  }
423
460
 
424
461
  private refreshHeader(): void {
425
- this.headerTableColumnGroup.removeChildren();
426
462
  this.dataTableColumnGroup.removeChildren();
427
463
  this.headerRow.removeChildren();
428
464
  this.topFillerRow.removeChildren();
@@ -431,13 +467,11 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
431
467
  for (let i = 0; i < this.visibleColumnsArray.length; ++i) {
432
468
  const column = this.visibleColumnsArray[i];
433
469
  const columnId = column.id;
434
- const headerColumn = (this.headerTableColumnGroup.createChild('col') as HTMLElement);
435
470
  const dataColumn = (this.dataTableColumnGroup.createChild('col') as HTMLElement);
436
471
  if (column.width) {
437
- headerColumn.style.width = column.width;
438
472
  dataColumn.style.width = column.width;
439
473
  }
440
- this.headerRow.appendChild(this.headerTableHeaders[columnId]);
474
+ this.headerRow.appendChild(this.dataTableHeaders[columnId]);
441
475
  const topFillerRowCell = (this.topFillerRow.createChild('th', 'top-filler-td') as HTMLTableCellElement);
442
476
  topFillerRowCell.textContent = column.title || null;
443
477
  topFillerRowCell.scope = 'col';
@@ -445,12 +479,15 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
445
479
  nodeToColumnIdMap.set(bottomFillerRowChild, columnId);
446
480
  }
447
481
 
448
- this.headerRow.createChild('th', 'corner');
482
+ const headerCorner = this.headerRow.createChild('th', 'corner');
483
+ UI.ARIAUtils.setHidden(headerCorner, true);
484
+
449
485
  const topFillerRowCornerCell = (this.topFillerRow.createChild('th', 'corner') as HTMLTableCellElement);
450
486
  topFillerRowCornerCell.classList.add('top-filler-td');
451
487
  topFillerRowCornerCell.scope = 'col';
488
+
452
489
  this.bottomFillerRow.createChild('td', 'corner').classList.add('bottom-filler-td');
453
- this.headerTableColumnGroup.createChild('col', 'corner');
490
+
454
491
  this.dataTableColumnGroup.createChild('col', 'corner');
455
492
  }
456
493
 
@@ -864,7 +901,7 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
864
901
 
865
902
  // Use container size to avoid changes of table width caused by change of column widths.
866
903
  const tableWidth = this.element.offsetWidth - this.cornerWidth;
867
- const cells = this.headerTableBodyInternal.rows[0].cells;
904
+ const cells = this.dataTableHeadInternal.rows[0].cells;
868
905
  const numColumns = cells.length - 1; // Do not process corner column.
869
906
  for (let i = 0; i < numColumns; i++) {
870
907
  const column = this.visibleColumnsArray[i];
@@ -935,8 +972,8 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
935
972
  }
936
973
 
937
974
  private getPreferredWidth(columnIndex: number): number {
938
- return elementToPreferedWidthMap.get(this.headerTableColumnGroup.children[columnIndex]) ||
939
- this.headerTableBodyInternal.rows[0].cells[columnIndex].offsetWidth;
975
+ return elementToPreferedWidthMap.get(this.dataTableColumnGroup.children[columnIndex]) ||
976
+ this.dataTableHeadInternal.rows[0].cells[columnIndex].offsetWidth;
940
977
  }
941
978
 
942
979
  private applyColumnWeights(): void {
@@ -998,7 +1035,7 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
998
1035
  }
999
1036
 
1000
1037
  private positionResizers(): void {
1001
- const headerTableColumns = this.headerTableColumnGroup.children;
1038
+ const headerTableColumns = this.dataTableColumnGroup.children;
1002
1039
  const numColumns = headerTableColumns.length - 1; // Do not process corner column.
1003
1040
  const left: number[] = [];
1004
1041
  const resizers = this.resizers;
@@ -1014,7 +1051,7 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
1014
1051
  // Get the width of the cell in the first (and only) row of the
1015
1052
  // header table in order to determine the width of the column, since
1016
1053
  // it is not possible to query a column for its width.
1017
- left[i] = (left[i - 1] || 0) + this.headerTableBodyInternal.rows[0].cells[i].offsetWidth;
1054
+ left[i] = (left[i - 1] || 0) + this.dataTableHeadInternal.rows[0].cells[i].offsetWidth;
1018
1055
  }
1019
1056
 
1020
1057
  // Make n - 1 resizers for n columns.
@@ -1241,12 +1278,12 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
1241
1278
  if (this.sortColumnCell) {
1242
1279
  this.sortColumnCell.classList.remove(Order.Ascending, Order.Descending);
1243
1280
  }
1244
- this.sortColumnCell = this.headerTableHeaders[columnId];
1281
+ this.sortColumnCell = this.dataTableHeaders[columnId];
1245
1282
  this.sortColumnCell.classList.add(sortOrder);
1246
1283
  }
1247
1284
 
1248
1285
  headerTableHeader(columnId: string): Element {
1249
- return this.headerTableHeaders[columnId];
1286
+ return this.dataTableHeaders[columnId];
1250
1287
  }
1251
1288
 
1252
1289
  private mouseDownInDataTable(event: Event): void {
@@ -1299,13 +1336,13 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
1299
1336
  if (sortableColumns.length > 0) {
1300
1337
  const sortMenu = contextMenu.defaultSection().appendSubMenuItem(i18nString(UIStrings.sortByString));
1301
1338
  for (const column of sortableColumns) {
1302
- const headerCell = this.headerTableHeaders[column.id];
1339
+ const headerCell = this.dataTableHeaders[column.id];
1303
1340
  sortMenu.defaultSection().appendItem(
1304
1341
  (column.title as string), this.sortByColumnHeaderCell.bind(this, headerCell));
1305
1342
  }
1306
1343
  }
1307
1344
 
1308
- if (target.isSelfOrDescendant(this.headerTableBodyInternal)) {
1345
+ if (target.isSelfOrDescendant(this.dataTableHeadInternal)) {
1309
1346
  if (this.headerContextMenuCallback) {
1310
1347
  this.headerContextMenuCallback(contextMenu);
1311
1348
  }
@@ -1472,13 +1509,9 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
1472
1509
  }
1473
1510
 
1474
1511
  private setPreferredWidth(columnIndex: number, width: number): void {
1475
- const pxWidth = width + 'px';
1476
- const headerTableChildElement = (this.headerTableColumnGroup.children[columnIndex] as HTMLElement);
1477
- elementToPreferedWidthMap.set(headerTableChildElement, width);
1478
- headerTableChildElement.style.width = pxWidth;
1479
-
1480
1512
  const dataTableChildElement = (this.dataTableColumnGroup.children[columnIndex] as HTMLElement);
1481
- dataTableChildElement.style.width = pxWidth;
1513
+ elementToPreferedWidthMap.set(dataTableChildElement, width);
1514
+ dataTableChildElement.style.width = width + 'px';
1482
1515
  }
1483
1516
 
1484
1517
  columnOffset(columnId: string): number {
@@ -1505,6 +1538,20 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
1505
1538
  topFillerRowElement(): HTMLElement {
1506
1539
  return this.topFillerRow;
1507
1540
  }
1541
+
1542
+ protected headerHeight(): number {
1543
+ return this.dataTableHeadInternal.offsetHeight;
1544
+ }
1545
+
1546
+ revealNode(element: HTMLElement): void {
1547
+ element.scrollIntoViewIfNeeded(false);
1548
+ // The header row is a child of the scrollable container, and uses position: sticky
1549
+ // so scrollIntoViewIfNeeded may place the element behind it. If the element is
1550
+ // obscured by the header, adjust the scrollTop so that the element is fully revealed.
1551
+ if (element.offsetTop - this.scrollContainer.scrollTop < this.headerHeight()) {
1552
+ this.scrollContainer.scrollTop = element.offsetTop - this.headerHeight();
1553
+ }
1554
+ }
1508
1555
  }
1509
1556
 
1510
1557
  // Keep in sync with .data-grid col.corner style rule.
@@ -1690,7 +1737,10 @@ export class DataGridNode<T> {
1690
1737
  accessibleTextArray.push(`${column.title}: ${this.cellAccessibleTextMap.get(column.id) || cell.textContent}`);
1691
1738
  }
1692
1739
  this.nodeAccessibleText = accessibleTextArray.join(', ');
1693
- element.appendChild(this.createTDWithClass('corner'));
1740
+
1741
+ const cornerCell = this.createTDWithClass('corner');
1742
+ UI.ARIAUtils.setHidden(cornerCell, true);
1743
+ element.appendChild(cornerCell);
1694
1744
  }
1695
1745
 
1696
1746
  get data(): DataGridData {
@@ -2125,7 +2175,7 @@ export class DataGridNode<T> {
2125
2175
  }
2126
2176
 
2127
2177
  reveal(): void {
2128
- if (this.isRoot) {
2178
+ if (this.isRoot || !this.dataGrid) {
2129
2179
  return;
2130
2180
  }
2131
2181
  let currentAncestor: (DataGridNode<T>|null) = this.parent;
@@ -2136,7 +2186,7 @@ export class DataGridNode<T> {
2136
2186
  currentAncestor = currentAncestor.parent;
2137
2187
  }
2138
2188
 
2139
- this.element().scrollIntoViewIfNeeded(false);
2189
+ this.dataGrid.revealNode(this.element() as HTMLElement);
2140
2190
  }
2141
2191
 
2142
2192
  select(supressSelectedEvent?: boolean): void {
@@ -172,7 +172,7 @@ export class ViewportDataGrid<T> extends Common.ObjectWrapper.eventMixin<EventTy
172
172
  delete this.updateAnimationFrameId;
173
173
  }
174
174
 
175
- const clientHeight = this.scrollContainer.clientHeight;
175
+ const clientHeight = this.scrollContainer.clientHeight - this.headerHeight();
176
176
  let scrollTop: number = this.scrollContainer.scrollTop;
177
177
  const currentScrollTop = scrollTop;
178
178
  const maxScrollTop = Math.max(0, this.contentHeight() - clientHeight);
@@ -249,11 +249,12 @@ export class ViewportDataGrid<T> extends Common.ObjectWrapper.eventMixin<EventTy
249
249
  }
250
250
  const toY = fromY + node.nodeSelfHeight();
251
251
  let scrollTop: number = this.scrollContainer.scrollTop;
252
+ const visibleHeight = this.scrollContainer.offsetHeight - this.headerHeight();
252
253
  if (scrollTop > fromY) {
253
254
  scrollTop = fromY;
254
255
  this.stickToBottom = false;
255
- } else if (scrollTop + (this.scrollContainer as HTMLElement).offsetHeight < toY) {
256
- scrollTop = toY - (this.scrollContainer as HTMLElement).offsetHeight;
256
+ } else if (scrollTop + visibleHeight < toY) {
257
+ scrollTop = toY - visibleHeight;
257
258
  }
258
259
  this.scrollContainer.scrollTop = scrollTop;
259
260
  }
@@ -19,25 +19,22 @@
19
19
  width: 100%;
20
20
  }
21
21
 
22
- .data-grid .header-container,
23
22
  .data-grid .data-container {
24
23
  position: absolute;
24
+ top: 0;
25
+ bottom: 0;
25
26
  left: 0;
26
27
  right: 0;
27
- overflow-x: hidden;
28
+ overflow: overlay;
29
+ transform: translateZ(0);
28
30
  background-color: var(--color-background);
29
31
  }
30
32
 
31
- .data-grid .header-container {
33
+ .data-grid thead {
34
+ position: sticky;
32
35
  top: 0;
33
36
  height: 21px;
34
- }
35
-
36
- .data-grid .data-container {
37
- top: 21px;
38
- bottom: 0;
39
- overflow-y: overlay;
40
- transform: translateZ(0);
37
+ z-index: 1;
41
38
  }
42
39
 
43
40
  .data-grid .aria-live-label {
@@ -46,7 +43,6 @@
46
43
  overflow: hidden;
47
44
  }
48
45
 
49
- .data-grid.inline .header-container,
50
46
  .data-grid.inline .data-container {
51
47
  position: static;
52
48
  }
@@ -86,12 +82,12 @@
86
82
  position: static;
87
83
  }
88
84
 
89
- .data-grid table.data tr {
85
+ .data-grid tbody tr {
90
86
  display: none;
91
87
  height: 20px;
92
88
  }
93
89
 
94
- .data-grid table.data tr.revealed {
90
+ .data-grid tbody tr.revealed {
95
91
  display: table-row;
96
92
  }
97
93
 
@@ -220,12 +216,12 @@
220
216
  -webkit-mask-position: -16px 0;
221
217
  }
222
218
 
223
- .data-grid table.data tr.revealed.selected {
219
+ .data-grid tbody tr.revealed.selected {
224
220
  background-color: var(--color-background-highlight);
225
221
  color: inherit;
226
222
  }
227
223
 
228
- .data-grid table.data tr.revealed.selected.dirty {
224
+ .data-grid tbody tr.revealed.selected.dirty {
229
225
  color: var(--color-selected-option);
230
226
  }
231
227
 
@@ -233,21 +229,21 @@
233
229
  border: 1px solid var(--color-primary) !important; /* stylelint-disable-line declaration-no-important */
234
230
  }
235
231
 
236
- .data-grid:focus table.data tr.selected {
232
+ .data-grid:focus tbody tr.selected {
237
233
  background-color: var(--color-selected-option-background);
238
234
  color: var(--color-selected-option);
239
235
  }
240
236
 
241
- .data-grid:focus tr.selected.dirty {
242
- --override-data-grid-dirty-background-color: hsl(0deg 100% 70%);
243
- }
244
-
245
- .data-grid table.data tr.selected.dirty {
237
+ .data-grid tbody tr.selected.dirty {
246
238
  --override-data-grid-dirty-background-color: hsl(0deg 100% 30%);
247
239
 
248
240
  background-color: var(--override-data-grid-dirty-background-color);
249
241
  }
250
242
 
243
+ .data-grid:focus tr.selected.dirty {
244
+ --override-data-grid-dirty-background-color: hsl(0deg 100% 70%);
245
+ }
246
+
251
247
  .data-grid:focus tr.selected .devtools-link {
252
248
  color: var(--color-selected-option);
253
249
  }
@@ -306,7 +302,7 @@
306
302
  .data-grid th.sortable:hover .sort-order-icon-container [is="ui-icon"].icon-mask,
307
303
  .data-grid tr.parent.selected td.disclosure::before,
308
304
  .data-grid:focus tr.parent.selected td.disclosure::before,
309
- .data-grid table.data tr.parent.revealed:hover td.disclosure::before {
305
+ .data-grid tbody tr.parent.revealed:hover td.disclosure::before {
310
306
  background-color: HighlightText;
311
307
  }
312
308
 
@@ -323,8 +319,8 @@
323
319
  }
324
320
 
325
321
  .data-grid th.sortable:hover,
326
- .data-grid table.data tr.revealed:hover,
327
- .data-grid table.data tr.revealed.selected,
322
+ .data-grid tbody tr.revealed:hover,
323
+ .data-grid tbody tr.revealed.selected,
328
324
  .striped-data-grid .revealed:hover.data-grid-data-grid-node:nth-child(odd),
329
325
  .striped-data-grid-starts-with-odd .revealed:hover.data-grid-data-grid-node:nth-child(even),
330
326
  .request-cookies-view tr.revealed:hover.data-grid-data-grid-node.flagged-cookie-attribute-row:not(.selected):nth-child(2n),
@@ -333,10 +329,10 @@
333
329
  background-color: Highlight;
334
330
  }
335
331
 
336
- .data-grid table.data tr.revealed:hover *,
337
- .data-grid table.data tr.revealed.selected *,
338
- .data-grid table.data tr.revealed:focus *,
339
- .data-grid table.data tr.revealed:hover .heap-object-tag {
332
+ .data-grid tbody tr.revealed:hover *,
333
+ .data-grid tbody tr.revealed.selected *,
334
+ .data-grid tbody tr.revealed:focus *,
335
+ .data-grid tbody tr.revealed:hover .heap-object-tag {
340
336
  color: HighlightText;
341
337
  }
342
338
 
@@ -66,7 +66,6 @@ export class CSSAngle extends HTMLElement {
66
66
  private popoverStyleTop = '';
67
67
  private popoverStyleLeft = '';
68
68
  private onMinifyingAction = this.minify.bind(this);
69
- private onAngleUpdate = this.updateAngle.bind(this);
70
69
 
71
70
  connectedCallback(): void {
72
71
  this.shadow.adoptedStyleSheets = [cssAngleStyles];
@@ -113,15 +112,8 @@ export class CSSAngle extends HTMLElement {
113
112
  const miniIconBottom = this.swatchElement.getBoundingClientRect().bottom;
114
113
  const miniIconLeft = this.swatchElement.getBoundingClientRect().left;
115
114
  if (miniIconBottom && miniIconLeft) {
116
- // We offset mini icon's X and Y positions with the containing styles
117
- // pane's positions because DevTools' root SplitWidget's
118
- // insertion-point-sidebar slot, where most of the DevTools content lives,
119
- // has an offset of positions, which makes all of its children's DOMRect
120
- // positions to have this offset.
121
- const offsetTop = this.containingPane.getBoundingClientRect().top;
122
- const offsetLeft = this.containingPane.getBoundingClientRect().left;
123
- this.popoverStyleTop = `${miniIconBottom - offsetTop}px`;
124
- this.popoverStyleLeft = `${miniIconLeft - offsetLeft}px`;
115
+ this.popoverStyleTop = `${miniIconBottom}px`;
116
+ this.popoverStyleLeft = `${miniIconLeft}px`;
125
117
  }
126
118
 
127
119
  this.popoverOpen = true;
@@ -247,7 +239,9 @@ export class CSSAngle extends HTMLElement {
247
239
  style=${styleMap({top: this.popoverStyleTop, left: this.popoverStyleLeft})}
248
240
  .data=${{
249
241
  angle: this.angle,
250
- onAngleUpdate: this.onAngleUpdate,
242
+ onAngleUpdate: (angle: Angle):void => {
243
+ this.updateAngle(angle);
244
+ },
251
245
  background: contextualBackground,
252
246
  } as CSSAngleEditorData}
253
247
  ></${CSSAngleEditor.litTagName}>
@@ -37,6 +37,7 @@ export class CSSLength extends HTMLElement {
37
37
  private isEditingSlot = false;
38
38
  private isDraggingValue = false;
39
39
  private currentMouseClientX = 0;
40
+ #valueMousedownTime = 0;
40
41
 
41
42
  set data(data: CSSLengthData) {
42
43
  const parsedResult = parseText(data.lengthText);
@@ -61,8 +62,12 @@ export class CSSLength extends HTMLElement {
61
62
  private dragValue(event: MouseEvent): void {
62
63
  event.preventDefault();
63
64
  event.stopPropagation();
64
- this.isDraggingValue = true;
65
+ if (Date.now() - this.#valueMousedownTime <= 300) {
66
+ // Delay drag callback by 300ms to prioritize click over drag.
67
+ return;
68
+ }
65
69
 
70
+ this.isDraggingValue = true;
66
71
  let displacement = event.clientX - this.currentMouseClientX;
67
72
  this.currentMouseClientX = event.clientX;
68
73
  if (event.shiftKey) {
@@ -81,6 +86,8 @@ export class CSSLength extends HTMLElement {
81
86
  return;
82
87
  }
83
88
 
89
+ this.#valueMousedownTime = Date.now();
90
+
84
91
  this.currentMouseClientX = event.clientX;
85
92
  const targetDocument = event.target instanceof Node && event.target.ownerDocument;
86
93
  if (targetDocument) {
@@ -123,6 +123,7 @@ const UIStrings = {
123
123
  const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/object_ui/ObjectPropertiesSection.ts', UIStrings);
124
124
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
125
125
  const EXPANDABLE_MAX_LENGTH = 50;
126
+ const EXPANDABLE_MAX_DEPTH = 100;
126
127
 
127
128
  const parentMap = new WeakMap<SDK.RemoteObject.RemoteObjectProperty, SDK.RemoteObject.RemoteObject|null>();
128
129
 
@@ -548,7 +549,7 @@ export class ObjectPropertiesSection extends UI.TreeOutline.TreeOutlineInShadow
548
549
  if (this.object instanceof SDK.RemoteObject.LocalJSONObject) {
549
550
  contextMenu.viewSection().appendItem(
550
551
  i18nString(UIStrings.expandRecursively),
551
- this.objectTreeElementInternal.expandRecursively.bind(this.objectTreeElementInternal, Number.MAX_VALUE));
552
+ this.objectTreeElementInternal.expandRecursively.bind(this.objectTreeElementInternal, EXPANDABLE_MAX_DEPTH));
552
553
  contextMenu.viewSection().appendItem(
553
554
  i18nString(UIStrings.collapseChildren),
554
555
  this.objectTreeElementInternal.collapseChildren.bind(this.objectTreeElementInternal));
@@ -653,7 +654,7 @@ export class RootElement extends UI.TreeOutline.TreeElement {
653
654
  }
654
655
 
655
656
  contextMenu.viewSection().appendItem(
656
- i18nString(UIStrings.expandRecursively), this.expandRecursively.bind(this, Number.MAX_VALUE));
657
+ i18nString(UIStrings.expandRecursively), this.expandRecursively.bind(this, EXPANDABLE_MAX_DEPTH));
657
658
  contextMenu.viewSection().appendItem(i18nString(UIStrings.collapseChildren), this.collapseChildren.bind(this));
658
659
  void contextMenu.show();
659
660
  }
@@ -696,6 +697,7 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
696
697
  this.maxNumPropertiesToShow = InitialVisibleChildrenLimit;
697
698
  this.listItemElement.addEventListener('contextmenu', this.contextMenuFired.bind(this), false);
698
699
  this.listItemElement.dataset.objectPropertyNameForTest = property.name;
700
+ this.setExpandRecursively(property.name !== '[[Prototype]]');
699
701
  }
700
702
 
701
703
  static async populate(
@@ -1027,13 +1029,14 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
1027
1029
  const getter = this.property.getter;
1028
1030
  element.addEventListener('click', (event: Event) => {
1029
1031
  event.consume();
1032
+ const invokeGetter = `
1033
+ function invokeGetter(getter) {
1034
+ return Reflect.apply(getter, this, []);
1035
+ }`;
1030
1036
  // @ts-ignore No way to teach TypeScript to preserve the Function-ness of `getter`.
1037
+ // Also passing a string instead of a Function to avoid coverage implementation messing with it.
1031
1038
  void object.callFunction(invokeGetter, [SDK.RemoteObject.RemoteObject.toCallArgument(getter)])
1032
1039
  .then(this.onInvokeGetterClick.bind(this));
1033
-
1034
- function invokeGetter(this: Object, getter: Function): Object {
1035
- return Reflect.apply(getter, this, []);
1036
- }
1037
1040
  }, false);
1038
1041
  } else {
1039
1042
  this.valueElement = document.createElement('span');
@@ -1113,7 +1116,7 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
1113
1116
  }
1114
1117
  if (parentMap.get(this.property) instanceof SDK.RemoteObject.LocalJSONObject) {
1115
1118
  contextMenu.viewSection().appendItem(
1116
- i18nString(UIStrings.expandRecursively), this.expandRecursively.bind(this, Number.MAX_VALUE));
1119
+ i18nString(UIStrings.expandRecursively), this.expandRecursively.bind(this, EXPANDABLE_MAX_DEPTH));
1117
1120
  contextMenu.viewSection().appendItem(i18nString(UIStrings.collapseChildren), this.collapseChildren.bind(this));
1118
1121
  }
1119
1122
  if (this.propertyValue) {