chrome-devtools-frontend 1.0.944427 → 1.0.945677

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 (327) hide show
  1. package/config/gni/devtools_grd_files.gni +4 -0
  2. package/config/gni/devtools_image_files.gni +1 -0
  3. package/front_end/Images/src/circled_exclamation_icon.svg +3 -0
  4. package/front_end/core/common/ParsedURL.ts +1 -1
  5. package/front_end/core/host/UserMetrics.ts +3 -1
  6. package/front_end/core/i18n/i18nImpl.ts +7 -4
  7. package/front_end/core/i18n/locales/en-US.json +3 -60
  8. package/front_end/core/i18n/locales/en-XL.json +15 -72
  9. package/front_end/core/protocol_client/NodeURL.ts +1 -0
  10. package/front_end/core/sdk/CSSMetadata.ts +0 -1
  11. package/front_end/core/sdk/CSSStyleSheetHeader.ts +2 -3
  12. package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +2 -3
  13. package/front_end/core/sdk/Cookie.ts +17 -0
  14. package/front_end/core/sdk/CookieModel.ts +1 -0
  15. package/front_end/core/sdk/DebuggerModel.ts +5 -4
  16. package/front_end/core/sdk/NetworkManager.ts +4 -1
  17. package/front_end/core/sdk/NetworkRequest.ts +2 -2
  18. package/front_end/core/sdk/Resource.ts +2 -2
  19. package/front_end/core/sdk/Script.ts +2 -3
  20. package/front_end/entrypoints/main/MainImpl.ts +6 -0
  21. package/front_end/generated/protocol.d.ts +0 -4
  22. package/front_end/models/bindings/BreakpointManager.ts +3 -4
  23. package/front_end/models/bindings/ResourceMapping.ts +1 -2
  24. package/front_end/models/bindings/StylesSourceMapping.ts +1 -2
  25. package/front_end/models/emulation/EmulatedDevices.ts +2 -4
  26. package/front_end/models/persistence/IsolatedFileSystem.ts +7 -6
  27. package/front_end/models/persistence/PersistenceActions.ts +4 -1
  28. package/front_end/models/persistence/PlatformFileSystem.ts +3 -4
  29. package/front_end/models/text_utils/ContentProvider.ts +1 -2
  30. package/front_end/models/text_utils/StaticContentProvider.ts +2 -3
  31. package/front_end/models/timeline_model/TimelineJSProfile.ts +16 -3
  32. package/front_end/models/timeline_model/TimelineModel.ts +1 -0
  33. package/front_end/models/workspace/UISourceCode.ts +2 -2
  34. package/front_end/models/workspace_diff/WorkspaceDiff.ts +20 -6
  35. package/front_end/panels/animation/AnimationTimeline.ts +1 -1
  36. package/front_end/panels/animation/animationTimeline.css +2 -0
  37. package/front_end/panels/application/BackForwardCacheStrings.ts +15 -75
  38. package/front_end/panels/application/BackForwardCacheView.ts +8 -1
  39. package/front_end/panels/application/ReportingApiView.ts +15 -1
  40. package/front_end/panels/application/components/EndpointsGrid.ts +63 -4
  41. package/front_end/panels/application/components/FrameDetailsView.ts +21 -34
  42. package/front_end/panels/changes/ChangesView.ts +8 -7
  43. package/front_end/panels/elements/StyleEditorWidget.ts +7 -7
  44. package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -15
  45. package/front_end/panels/elements/StylesSidebarPane.ts +35 -9
  46. package/front_end/panels/emulation/DeviceModeView.ts +3 -0
  47. package/front_end/panels/help/ReleaseNoteText.ts +3 -1
  48. package/front_end/panels/network/NetworkItemView.ts +7 -1
  49. package/front_end/panels/profiler/heapProfiler.css +2 -5
  50. package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +1 -1
  51. package/front_end/panels/sources/DebuggerPlugin.ts +1 -1
  52. package/front_end/panels/sources/NavigatorView.ts +1 -1
  53. package/front_end/panels/sources/UISourceCodeFrame.ts +0 -1
  54. package/front_end/panels/timeline/TimelineController.ts +3 -0
  55. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +3 -34
  56. package/front_end/panels/timeline/TimelineUIUtils.ts +51 -3
  57. package/front_end/panels/webauthn/WebauthnPane.ts +31 -32
  58. package/front_end/services/window_bounds/WindowBoundsService.ts +27 -0
  59. package/front_end/services/window_bounds/window_bounds.ts +9 -0
  60. package/front_end/third_party/acorn/README.chromium +2 -2
  61. package/front_end/third_party/acorn/acorn.ts +1 -1
  62. package/front_end/third_party/acorn/package/CHANGELOG.md +31 -1
  63. package/front_end/third_party/acorn/package/README.md +1 -1
  64. package/front_end/third_party/acorn/package/dist/acorn.d.ts +3 -0
  65. package/front_end/third_party/acorn/package/dist/acorn.js +772 -708
  66. package/front_end/third_party/acorn/package/dist/acorn.mjs +767 -703
  67. package/front_end/third_party/acorn/package/dist/bin.js +47 -21
  68. package/front_end/third_party/acorn/package/package.json +1 -1
  69. package/front_end/third_party/acorn-loose/README.chromium +2 -2
  70. package/front_end/third_party/acorn-loose/package/CHANGELOG.md +12 -0
  71. package/front_end/third_party/acorn-loose/package/dist/acorn-loose.js +27 -7
  72. package/front_end/third_party/acorn-loose/package/dist/acorn-loose.mjs +28 -8
  73. package/front_end/third_party/acorn-loose/package/package.json +2 -2
  74. package/front_end/third_party/codemirror.next/bundle.ts +1 -1
  75. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  76. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +8 -1
  77. package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
  78. package/front_end/third_party/codemirror.next/package.json +1 -1
  79. package/front_end/third_party/i18n/i18n-impl.ts +1 -1
  80. package/front_end/third_party/lit-html/README.chromium +2 -2
  81. package/front_end/third_party/lit-html/package/CHANGELOG.md +216 -28
  82. package/front_end/third_party/lit-html/package/LICENSE +9 -9
  83. package/front_end/third_party/lit-html/package/README.md +12 -162
  84. package/front_end/third_party/lit-html/package/async-directive.d.ts +23 -54
  85. package/front_end/third_party/lit-html/package/async-directive.d.ts.map +1 -1
  86. package/front_end/third_party/lit-html/package/async-directive.js +2 -7
  87. package/front_end/third_party/lit-html/package/async-directive.js.map +1 -1
  88. package/front_end/third_party/lit-html/package/development/async-directive.d.ts +23 -54
  89. package/front_end/third_party/lit-html/package/development/async-directive.d.ts.map +1 -1
  90. package/front_end/third_party/lit-html/package/development/async-directive.js +44 -194
  91. package/front_end/third_party/lit-html/package/development/async-directive.js.map +1 -1
  92. package/front_end/third_party/lit-html/package/development/directive-helpers.d.ts +6 -5
  93. package/front_end/third_party/lit-html/package/development/directive-helpers.d.ts.map +1 -1
  94. package/front_end/third_party/lit-html/package/development/directive-helpers.js +25 -9
  95. package/front_end/third_party/lit-html/package/development/directive-helpers.js.map +1 -1
  96. package/front_end/third_party/lit-html/package/development/directive.d.ts +3 -16
  97. package/front_end/third_party/lit-html/package/development/directive.d.ts.map +1 -1
  98. package/front_end/third_party/lit-html/package/development/directive.js +6 -1
  99. package/front_end/third_party/lit-html/package/development/directive.js.map +1 -1
  100. package/front_end/third_party/lit-html/package/development/directives/async-append.d.ts +7 -14
  101. package/front_end/third_party/lit-html/package/development/directives/async-append.d.ts.map +1 -1
  102. package/front_end/third_party/lit-html/package/development/directives/async-append.js +17 -58
  103. package/front_end/third_party/lit-html/package/development/directives/async-append.js.map +1 -1
  104. package/front_end/third_party/lit-html/package/development/directives/async-replace.d.ts +9 -14
  105. package/front_end/third_party/lit-html/package/development/directives/async-replace.d.ts.map +1 -1
  106. package/front_end/third_party/lit-html/package/development/directives/async-replace.js +57 -37
  107. package/front_end/third_party/lit-html/package/development/directives/async-replace.js.map +1 -1
  108. package/front_end/third_party/lit-html/package/development/directives/cache.d.ts +2 -3
  109. package/front_end/third_party/lit-html/package/development/directives/cache.d.ts.map +1 -1
  110. package/front_end/third_party/lit-html/package/development/directives/cache.js +4 -6
  111. package/front_end/third_party/lit-html/package/development/directives/cache.js.map +1 -1
  112. package/front_end/third_party/lit-html/package/development/directives/class-map.d.ts +2 -2
  113. package/front_end/third_party/lit-html/package/development/directives/class-map.d.ts.map +1 -1
  114. package/front_end/third_party/lit-html/package/development/directives/class-map.js +17 -7
  115. package/front_end/third_party/lit-html/package/development/directives/class-map.js.map +1 -1
  116. package/front_end/third_party/lit-html/package/development/directives/guard.d.ts +3 -2
  117. package/front_end/third_party/lit-html/package/development/directives/guard.d.ts.map +1 -1
  118. package/front_end/third_party/lit-html/package/development/directives/guard.js +3 -2
  119. package/front_end/third_party/lit-html/package/development/directives/guard.js.map +1 -1
  120. package/front_end/third_party/lit-html/package/development/directives/live.d.ts +4 -3
  121. package/front_end/third_party/lit-html/package/development/directives/live.d.ts.map +1 -1
  122. package/front_end/third_party/lit-html/package/development/directives/live.js +5 -7
  123. package/front_end/third_party/lit-html/package/development/directives/live.js.map +1 -1
  124. package/front_end/third_party/lit-html/package/development/directives/private-async-helpers.d.ts +58 -0
  125. package/front_end/third_party/lit-html/package/development/directives/private-async-helpers.d.ts.map +1 -0
  126. package/front_end/third_party/lit-html/package/development/directives/private-async-helpers.js +85 -0
  127. package/front_end/third_party/lit-html/package/development/directives/private-async-helpers.js.map +1 -0
  128. package/front_end/third_party/lit-html/package/development/directives/ref.d.ts +14 -11
  129. package/front_end/third_party/lit-html/package/development/directives/ref.d.ts.map +1 -1
  130. package/front_end/third_party/lit-html/package/development/directives/ref.js +13 -11
  131. package/front_end/third_party/lit-html/package/development/directives/ref.js.map +1 -1
  132. package/front_end/third_party/lit-html/package/development/directives/repeat.d.ts +8 -4
  133. package/front_end/third_party/lit-html/package/development/directives/repeat.d.ts.map +1 -1
  134. package/front_end/third_party/lit-html/package/development/directives/repeat.js +23 -9
  135. package/front_end/third_party/lit-html/package/development/directives/repeat.js.map +1 -1
  136. package/front_end/third_party/lit-html/package/development/directives/style-map.d.ts +1 -2
  137. package/front_end/third_party/lit-html/package/development/directives/style-map.d.ts.map +1 -1
  138. package/front_end/third_party/lit-html/package/development/directives/style-map.js +1 -2
  139. package/front_end/third_party/lit-html/package/development/directives/style-map.js.map +1 -1
  140. package/front_end/third_party/lit-html/package/development/directives/template-content.d.ts +1 -2
  141. package/front_end/third_party/lit-html/package/development/directives/template-content.js +1 -2
  142. package/front_end/third_party/lit-html/package/development/directives/unsafe-html.d.ts +6 -4
  143. package/front_end/third_party/lit-html/package/development/directives/unsafe-html.d.ts.map +1 -1
  144. package/front_end/third_party/lit-html/package/development/directives/unsafe-html.js +7 -5
  145. package/front_end/third_party/lit-html/package/development/directives/unsafe-html.js.map +1 -1
  146. package/front_end/third_party/lit-html/package/development/directives/unsafe-svg.d.ts +4 -1
  147. package/front_end/third_party/lit-html/package/development/directives/unsafe-svg.d.ts.map +1 -1
  148. package/front_end/third_party/lit-html/package/development/directives/unsafe-svg.js +3 -0
  149. package/front_end/third_party/lit-html/package/development/directives/unsafe-svg.js.map +1 -1
  150. package/front_end/third_party/lit-html/package/development/directives/until.d.ts +12 -8
  151. package/front_end/third_party/lit-html/package/development/directives/until.d.ts.map +1 -1
  152. package/front_end/third_party/lit-html/package/development/directives/until.js +63 -23
  153. package/front_end/third_party/lit-html/package/development/directives/until.js.map +1 -1
  154. package/front_end/third_party/lit-html/package/development/experimental-hydrate.d.ts.map +1 -1
  155. package/front_end/third_party/lit-html/package/development/experimental-hydrate.js +9 -8
  156. package/front_end/third_party/lit-html/package/development/experimental-hydrate.js.map +1 -1
  157. package/front_end/third_party/lit-html/package/development/lit-html.d.ts +81 -136
  158. package/front_end/third_party/lit-html/package/development/lit-html.d.ts.map +1 -1
  159. package/front_end/third_party/lit-html/package/development/lit-html.js +249 -76
  160. package/front_end/third_party/lit-html/package/development/lit-html.js.map +1 -1
  161. package/front_end/third_party/lit-html/package/development/polyfill-support.d.ts +1 -41
  162. package/front_end/third_party/lit-html/package/development/polyfill-support.d.ts.map +1 -1
  163. package/front_end/third_party/lit-html/package/development/polyfill-support.js +40 -21
  164. package/front_end/third_party/lit-html/package/development/polyfill-support.js.map +1 -1
  165. package/front_end/third_party/lit-html/package/development/private-ssr-support.d.ts +12 -10
  166. package/front_end/third_party/lit-html/package/development/private-ssr-support.d.ts.map +1 -1
  167. package/front_end/third_party/lit-html/package/development/private-ssr-support.js +11 -3
  168. package/front_end/third_party/lit-html/package/development/private-ssr-support.js.map +1 -1
  169. package/front_end/third_party/lit-html/package/development/static.d.ts.map +1 -1
  170. package/front_end/third_party/lit-html/package/development/static.js +6 -5
  171. package/front_end/third_party/lit-html/package/development/static.js.map +1 -1
  172. package/front_end/third_party/lit-html/package/directive-helpers.d.ts +6 -5
  173. package/front_end/third_party/lit-html/package/directive-helpers.d.ts.map +1 -1
  174. package/front_end/third_party/lit-html/package/directive-helpers.js +2 -2
  175. package/front_end/third_party/lit-html/package/directive-helpers.js.map +1 -1
  176. package/front_end/third_party/lit-html/package/directive.d.ts +3 -16
  177. package/front_end/third_party/lit-html/package/directive.d.ts.map +1 -1
  178. package/front_end/third_party/lit-html/package/directive.js +1 -1
  179. package/front_end/third_party/lit-html/package/directive.js.map +1 -1
  180. package/front_end/third_party/lit-html/package/directives/async-append.d.ts +7 -14
  181. package/front_end/third_party/lit-html/package/directives/async-append.d.ts.map +1 -1
  182. package/front_end/third_party/lit-html/package/directives/async-append.js +2 -6
  183. package/front_end/third_party/lit-html/package/directives/async-append.js.map +1 -1
  184. package/front_end/third_party/lit-html/package/directives/async-replace.d.ts +9 -14
  185. package/front_end/third_party/lit-html/package/directives/async-replace.d.ts.map +1 -1
  186. package/front_end/third_party/lit-html/package/directives/async-replace.js +2 -5
  187. package/front_end/third_party/lit-html/package/directives/async-replace.js.map +1 -1
  188. package/front_end/third_party/lit-html/package/directives/cache.d.ts +2 -3
  189. package/front_end/third_party/lit-html/package/directives/cache.d.ts.map +1 -1
  190. package/front_end/third_party/lit-html/package/directives/cache.js +2 -5
  191. package/front_end/third_party/lit-html/package/directives/cache.js.map +1 -1
  192. package/front_end/third_party/lit-html/package/directives/class-map.d.ts +2 -2
  193. package/front_end/third_party/lit-html/package/directives/class-map.d.ts.map +1 -1
  194. package/front_end/third_party/lit-html/package/directives/class-map.js +2 -4
  195. package/front_end/third_party/lit-html/package/directives/class-map.js.map +1 -1
  196. package/front_end/third_party/lit-html/package/directives/guard.d.ts +3 -2
  197. package/front_end/third_party/lit-html/package/directives/guard.d.ts.map +1 -1
  198. package/front_end/third_party/lit-html/package/directives/guard.js +2 -4
  199. package/front_end/third_party/lit-html/package/directives/guard.js.map +1 -1
  200. package/front_end/third_party/lit-html/package/directives/live.d.ts +4 -3
  201. package/front_end/third_party/lit-html/package/directives/live.d.ts.map +1 -1
  202. package/front_end/third_party/lit-html/package/directives/live.js +1 -4
  203. package/front_end/third_party/lit-html/package/directives/live.js.map +1 -1
  204. package/front_end/third_party/lit-html/package/directives/private-async-helpers.d.ts +58 -0
  205. package/front_end/third_party/lit-html/package/directives/private-async-helpers.d.ts.map +1 -0
  206. package/front_end/third_party/lit-html/package/directives/private-async-helpers.js +7 -0
  207. package/front_end/third_party/lit-html/package/directives/private-async-helpers.js.map +1 -0
  208. package/front_end/third_party/lit-html/package/directives/ref.d.ts +14 -11
  209. package/front_end/third_party/lit-html/package/directives/ref.d.ts.map +1 -1
  210. package/front_end/third_party/lit-html/package/directives/ref.js +2 -5
  211. package/front_end/third_party/lit-html/package/directives/ref.js.map +1 -1
  212. package/front_end/third_party/lit-html/package/directives/repeat.d.ts +8 -4
  213. package/front_end/third_party/lit-html/package/directives/repeat.d.ts.map +1 -1
  214. package/front_end/third_party/lit-html/package/directives/repeat.js +2 -5
  215. package/front_end/third_party/lit-html/package/directives/repeat.js.map +1 -1
  216. package/front_end/third_party/lit-html/package/directives/style-map.d.ts +1 -2
  217. package/front_end/third_party/lit-html/package/directives/style-map.d.ts.map +1 -1
  218. package/front_end/third_party/lit-html/package/directives/style-map.js +2 -4
  219. package/front_end/third_party/lit-html/package/directives/style-map.js.map +1 -1
  220. package/front_end/third_party/lit-html/package/directives/template-content.d.ts +1 -2
  221. package/front_end/third_party/lit-html/package/directives/template-content.js +2 -4
  222. package/front_end/third_party/lit-html/package/directives/template-content.js.map +1 -1
  223. package/front_end/third_party/lit-html/package/directives/unsafe-html.d.ts +6 -4
  224. package/front_end/third_party/lit-html/package/directives/unsafe-html.d.ts.map +1 -1
  225. package/front_end/third_party/lit-html/package/directives/unsafe-html.js +2 -4
  226. package/front_end/third_party/lit-html/package/directives/unsafe-html.js.map +1 -1
  227. package/front_end/third_party/lit-html/package/directives/unsafe-svg.d.ts +4 -1
  228. package/front_end/third_party/lit-html/package/directives/unsafe-svg.d.ts.map +1 -1
  229. package/front_end/third_party/lit-html/package/directives/unsafe-svg.js.map +1 -1
  230. package/front_end/third_party/lit-html/package/directives/until.d.ts +12 -8
  231. package/front_end/third_party/lit-html/package/directives/until.d.ts.map +1 -1
  232. package/front_end/third_party/lit-html/package/directives/until.js +2 -6
  233. package/front_end/third_party/lit-html/package/directives/until.js.map +1 -1
  234. package/front_end/third_party/lit-html/package/experimental-hydrate.d.ts.map +1 -1
  235. package/front_end/third_party/lit-html/package/experimental-hydrate.js +2 -5
  236. package/front_end/third_party/lit-html/package/experimental-hydrate.js.map +1 -1
  237. package/front_end/third_party/lit-html/package/lit-html.d.ts +81 -136
  238. package/front_end/third_party/lit-html/package/lit-html.d.ts.map +1 -1
  239. package/front_end/third_party/lit-html/package/lit-html.js +1 -1
  240. package/front_end/third_party/lit-html/package/lit-html.js.map +1 -1
  241. package/front_end/third_party/lit-html/package/package.json +75 -24
  242. package/front_end/third_party/lit-html/package/polyfill-support.d.ts +1 -41
  243. package/front_end/third_party/lit-html/package/polyfill-support.d.ts.map +1 -1
  244. package/front_end/third_party/lit-html/package/polyfill-support.js +1 -1
  245. package/front_end/third_party/lit-html/package/polyfill-support.js.map +1 -1
  246. package/front_end/third_party/lit-html/package/private-ssr-support.d.ts +12 -10
  247. package/front_end/third_party/lit-html/package/private-ssr-support.d.ts.map +1 -1
  248. package/front_end/third_party/lit-html/package/private-ssr-support.js +2 -2
  249. package/front_end/third_party/lit-html/package/private-ssr-support.js.map +1 -1
  250. package/front_end/third_party/lit-html/package/static.d.ts.map +1 -1
  251. package/front_end/third_party/lit-html/package/static.js +1 -1
  252. package/front_end/third_party/lit-html/package/static.js.map +1 -1
  253. package/front_end/third_party/marked/README.chromium +2 -2
  254. package/front_end/third_party/marked/marked.ts +2 -2
  255. package/front_end/third_party/marked/package/README.md +7 -1
  256. package/front_end/third_party/marked/package/bin/marked.js +214 -0
  257. package/front_end/third_party/marked/package/lib/marked.cjs +2907 -0
  258. package/front_end/third_party/marked/package/lib/marked.esm.d.ts +1 -3
  259. package/front_end/third_party/marked/package/lib/marked.esm.js +627 -586
  260. package/front_end/third_party/marked/package/lib/marked.umd.js +2913 -0
  261. package/front_end/third_party/marked/package/man/marked.1 +5 -24
  262. package/front_end/third_party/marked/package/man/marked.1.txt +21 -31
  263. package/front_end/third_party/marked/package/marked.min.js +1 -1
  264. package/front_end/third_party/marked/package/package.json +41 -32
  265. package/front_end/third_party/marked/package/src/Lexer.js +109 -108
  266. package/front_end/third_party/marked/package/src/Parser.js +38 -15
  267. package/front_end/third_party/marked/package/src/Renderer.js +5 -5
  268. package/front_end/third_party/marked/package/src/Slugger.js +2 -2
  269. package/front_end/third_party/marked/package/src/TextRenderer.js +2 -2
  270. package/front_end/third_party/marked/package/src/Tokenizer.js +215 -190
  271. package/front_end/third_party/marked/package/src/defaults.js +6 -9
  272. package/front_end/third_party/marked/package/src/helpers.js +16 -27
  273. package/front_end/third_party/marked/package/src/marked.js +146 -63
  274. package/front_end/third_party/marked/package/src/rules.js +20 -45
  275. package/front_end/third_party/wasmparser/README.chromium +2 -2
  276. package/front_end/third_party/wasmparser/package/.github/workflows/main.yml +47 -0
  277. package/front_end/third_party/wasmparser/package/CHANGELOG.md +12 -0
  278. package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.js +53 -53
  279. package/front_end/third_party/wasmparser/package/dist/cjs/WasmParser.js.map +1 -1
  280. package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.js +53 -53
  281. package/front_end/third_party/wasmparser/package/dist/esm/WasmParser.js.map +1 -1
  282. package/front_end/third_party/wasmparser/package/package.json +1 -1
  283. package/front_end/third_party/wasmparser/package/src/WasmParser.ts +53 -53
  284. package/front_end/ui/components/adorners/Adorner.ts +14 -14
  285. package/front_end/ui/components/buttons/Button.ts +133 -42
  286. package/front_end/ui/components/buttons/button.css +31 -0
  287. package/front_end/ui/components/data_grid/DataGrid.ts +131 -122
  288. package/front_end/ui/components/data_grid/DataGridController.ts +42 -42
  289. package/front_end/ui/components/diff_view/DiffView.ts +4 -4
  290. package/front_end/ui/components/docs/button/basic.html +3 -0
  291. package/front_end/ui/components/docs/button/basic.ts +58 -0
  292. package/front_end/ui/components/expandable_list/ExpandableList.ts +11 -11
  293. package/front_end/ui/components/icon_button/Icon.ts +24 -21
  294. package/front_end/ui/components/icon_button/IconButton.ts +31 -31
  295. package/front_end/ui/components/issue_counter/IssueCounter.ts +52 -52
  296. package/front_end/ui/components/issue_counter/IssueLinkIcon.ts +42 -42
  297. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspector.ts +67 -67
  298. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +22 -22
  299. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorPane.ts +36 -36
  300. package/front_end/ui/components/linear_memory_inspector/LinearMemoryNavigator.ts +19 -19
  301. package/front_end/ui/components/linear_memory_inspector/LinearMemoryValueInterpreter.ts +25 -25
  302. package/front_end/ui/components/linear_memory_inspector/LinearMemoryViewer.ts +52 -52
  303. package/front_end/ui/components/linear_memory_inspector/ValueInterpreterDisplay.ts +21 -21
  304. package/front_end/ui/components/linear_memory_inspector/ValueInterpreterSettings.ts +6 -6
  305. package/front_end/ui/components/markdown_view/MarkdownImage.ts +14 -14
  306. package/front_end/ui/components/markdown_view/MarkdownLink.ts +8 -8
  307. package/front_end/ui/components/markdown_view/MarkdownView.ts +6 -6
  308. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +33 -33
  309. package/front_end/ui/components/report_view/ReportView.ts +18 -18
  310. package/front_end/ui/components/request_link_icon/RequestLinkIcon.ts +53 -53
  311. package/front_end/ui/components/settings/SettingCheckbox.ts +15 -15
  312. package/front_end/ui/components/survey_link/SurveyLink.ts +28 -28
  313. package/front_end/ui/components/text_editor/TextEditor.ts +68 -36
  314. package/front_end/ui/components/text_editor/config.ts +4 -2
  315. package/front_end/ui/components/text_editor/javascript.ts +6 -6
  316. package/front_end/ui/components/text_prompt/TextPrompt.ts +19 -19
  317. package/front_end/ui/components/tree_outline/TreeOutline.ts +56 -56
  318. package/front_end/ui/legacy/Infobar.ts +9 -0
  319. package/front_end/ui/legacy/InspectorView.ts +1 -1
  320. package/front_end/ui/legacy/ListWidget.ts +2 -2
  321. package/front_end/ui/legacy/ViewManager.ts +6 -0
  322. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +20 -0
  323. package/front_end/ui/legacy/tabbedPane.css +1 -1
  324. package/inspector_overlay/main.ts +3 -0
  325. package/package.json +1 -1
  326. package/scripts/eslint_rules/lib/l10n_filename_matches.js +17 -4
  327. package/scripts/eslint_rules/tests/l10n_filename_matches_test.js +21 -0
@@ -32,7 +32,6 @@
32
32
 
33
33
  import * as Common from '../../core/common/common.js';
34
34
  import * as SDK from '../../core/sdk/sdk.js';
35
- import type * as Platform from '../../core/platform/platform.js';
36
35
  import type * as Protocol from '../../generated/protocol.js';
37
36
  import type * as TextUtils from '../text_utils/text_utils.js';
38
37
  import * as Workspace from '../workspace/workspace.js';
@@ -630,7 +629,7 @@ export class ModelBreakpoint {
630
629
  const positions = debuggerLocations.map(loc => {
631
630
  const script = loc.script() as SDK.Script.Script;
632
631
  return {
633
- url: script.sourceURL as Platform.DevToolsPath.RawPathString,
632
+ url: script.sourceURL,
634
633
  scriptId: script.scriptId,
635
634
  scriptHash: script.hash,
636
635
  lineNumber: loc.lineNumber,
@@ -645,7 +644,7 @@ export class ModelBreakpoint {
645
644
  // at least signal a warning to the developer that this #breakpoint wasn't
646
645
  // really resolved.
647
646
  const position = {
648
- url: this.#breakpoint.url() as Platform.DevToolsPath.RawPathString,
647
+ url: this.#breakpoint.url(),
649
648
  scriptId: '' as Protocol.Runtime.ScriptId,
650
649
  scriptHash: '',
651
650
  lineNumber,
@@ -794,7 +793,7 @@ export class ModelBreakpoint {
794
793
  }
795
794
 
796
795
  interface Position {
797
- url: Platform.DevToolsPath.RawPathString;
796
+ url: string;
798
797
  scriptId: Protocol.Runtime.ScriptId;
799
798
  scriptHash: string;
800
799
  lineNumber: number;
@@ -3,7 +3,6 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as Common from '../../core/common/common.js';
6
- import type * as Platform from '../../core/platform/platform.js';
7
6
  import * as SDK from '../../core/sdk/sdk.js';
8
7
  import * as TextUtils from '../text_utils/text_utils.js';
9
8
  import * as Workspace from '../workspace/workspace.js';
@@ -421,7 +420,7 @@ class Binding implements TextUtils.ContentProvider.ContentProvider {
421
420
  return this.resources.values().next().value;
422
421
  }
423
422
 
424
- contentURL(): Platform.DevToolsPath.RawPathString {
423
+ contentURL(): string {
425
424
  return this.firstResource().contentURL();
426
425
  }
427
426
 
@@ -29,7 +29,6 @@
29
29
  */
30
30
 
31
31
  import * as Common from '../../core/common/common.js';
32
- import type * as Platform from '../../core/platform/platform.js';
33
32
  import * as SDK from '../../core/sdk/sdk.js';
34
33
  import type * as TextUtils from '../text_utils/text_utils.js';
35
34
  import * as Workspace from '../workspace/workspace.js';
@@ -298,7 +297,7 @@ export class StyleFile implements TextUtils.ContentProvider.ContentProvider {
298
297
  Common.EventTarget.removeEventListeners(this.#eventListeners);
299
298
  }
300
299
 
301
- contentURL(): Platform.DevToolsPath.RawPathString {
300
+ contentURL(): string {
302
301
  console.assert(this.headers.size > 0);
303
302
  return this.headers.values().next().value.originalContentProvider().contentURL();
304
303
  }
@@ -502,14 +502,12 @@ export class EmulatedDevicesList extends Common.ObjectWrapper.ObjectWrapper<Even
502
502
  constructor() {
503
503
  super();
504
504
 
505
- this.#standardSetting = Common.Settings.Settings.instance().createSetting(
506
- 'standardEmulatedDeviceList', [], Common.Settings.SettingStorageType.Synced);
505
+ this.#standardSetting = Common.Settings.Settings.instance().createSetting('standardEmulatedDeviceList', []);
507
506
  this.#standardInternal = new Set();
508
507
  this.listFromJSONV1(this.#standardSetting.get(), this.#standardInternal);
509
508
  this.updateStandardDevices();
510
509
 
511
- this.#customSetting = Common.Settings.Settings.instance().createSetting(
512
- 'customEmulatedDeviceList', [], Common.Settings.SettingStorageType.Synced);
510
+ this.#customSetting = Common.Settings.Settings.instance().createSetting('customEmulatedDeviceList', []);
513
511
  this.#customInternal = new Set();
514
512
  if (!this.listFromJSONV1(this.#customSetting.get(), this.#customInternal)) {
515
513
  this.saveCustomDevices();
@@ -28,6 +28,8 @@
28
28
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
29
  */
30
30
 
31
+ // TODO(crbug.com/1253323): All casts to UrlString will be removed from this file when migration to branded types is complete.
32
+
31
33
  import * as Common from '../../core/common/common.js';
32
34
  import * as Host from '../../core/host/host.js';
33
35
  import * as i18n from '../../core/i18n/i18n.js';
@@ -82,7 +84,7 @@ export class IsolatedFileSystem extends PlatformFileSystem {
82
84
  constructor(
83
85
  manager: IsolatedFileSystemManager, path: string, embedderPath: string, domFileSystem: FileSystem, type: string) {
84
86
  // TODO(crbug.com/1253323): Cast to UrlString will be removed when migration to branded types is complete.
85
- super(path as Platform.DevToolsPath.UrlString, type);
87
+ super(path, type);
86
88
  this.manager = manager;
87
89
  this.embedderPathInternal = embedderPath;
88
90
  this.domFileSystem = domFileSystem;
@@ -174,9 +176,8 @@ export class IsolatedFileSystem extends PlatformFileSystem {
174
176
  this.initialGitFoldersInternal.add(parentFolder);
175
177
  }
176
178
  if (this.isFileExcluded(entry.fullPath + '/')) {
177
- // TODO(crbug.com/1253323): Cast to RawPathString will be removed when migration to branded types is complete.
178
179
  this.excludedEmbedderFolders.push(Common.ParsedURL.ParsedURL.capFilePrefix(
179
- this.path() + entry.fullPath as Platform.DevToolsPath.RawPathString, Host.Platform.isWin()));
180
+ this.path() + entry.fullPath as Platform.DevToolsPath.UrlString, Host.Platform.isWin()));
180
181
  continue;
181
182
  }
182
183
  ++pendingRequests;
@@ -552,9 +553,9 @@ export class IsolatedFileSystem extends PlatformFileSystem {
552
553
  Common.ResourceType.resourceTypes.Document;
553
554
  }
554
555
 
555
- tooltipForURL(url: Platform.DevToolsPath.RawPathString): string {
556
- const path =
557
- Platform.StringUtilities.trimMiddle(Common.ParsedURL.ParsedURL.capFilePrefix(url, Host.Platform.isWin()), 150);
556
+ tooltipForURL(url: string): string {
557
+ const path = Platform.StringUtilities.trimMiddle(
558
+ Common.ParsedURL.ParsedURL.capFilePrefix(url as Platform.DevToolsPath.UrlString, Host.Platform.isWin()), 150);
558
559
  return i18nString(UIStrings.linkedToS, {PH1: path});
559
560
  }
560
561
 
@@ -5,6 +5,7 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import * as i18n from '../../core/i18n/i18n.js';
8
+ import type * as Platform from '../../core/platform/platform.js';
8
9
  import * as SDK from '../../core/sdk/sdk.js';
9
10
 
10
11
  import type * as TextUtils from '../text_utils/text_utils.js';
@@ -92,7 +93,9 @@ export class ContextMenuProvider implements UI.ContextMenu.Provider {
92
93
  const binding = uiSourceCode && PersistenceImpl.instance().binding(uiSourceCode);
93
94
  const fileURL = binding ? binding.fileSystem.contentURL() : contentProvider.contentURL();
94
95
  if (fileURL.startsWith('file://')) {
95
- const path = Common.ParsedURL.ParsedURL.capFilePrefix(fileURL, Host.Platform.isWin());
96
+ // TODO(crbug.com/1253323): Cast to UrlString will be removed when migration to branded types is complete.
97
+ const path =
98
+ Common.ParsedURL.ParsedURL.capFilePrefix(fileURL as Platform.DevToolsPath.UrlString, Host.Platform.isWin());
96
99
  contextMenu.revealSection().appendItem(
97
100
  i18nString(UIStrings.openInContainingFolder),
98
101
  () => Host.InspectorFrontendHost.InspectorFrontendHostInstance.showItemInFolder(path));
@@ -3,7 +3,6 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import type * as Common from '../../core/common/common.js';
6
- import type * as Platform from '../../core/platform/platform.js';
7
6
  import * as i18n from '../../core/i18n/i18n.js';
8
7
  import type * as TextUtils from '../text_utils/text_utils.js';
9
8
 
@@ -16,9 +15,9 @@ const UIStrings = {
16
15
  const str_ = i18n.i18n.registerUIStrings('models/persistence/PlatformFileSystem.ts', UIStrings);
17
16
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
18
17
  export class PlatformFileSystem {
19
- private readonly pathInternal: Platform.DevToolsPath.UrlString;
18
+ private readonly pathInternal: string;
20
19
  private readonly typeInternal: string;
21
- constructor(path: Platform.DevToolsPath.UrlString, type: string) {
20
+ constructor(path: string, type: string) {
22
21
  this.pathInternal = path;
23
22
  this.typeInternal = type;
24
23
  }
@@ -35,7 +34,7 @@ export class PlatformFileSystem {
35
34
  return [];
36
35
  }
37
36
 
38
- path(): Platform.DevToolsPath.UrlString {
37
+ path(): string {
39
38
  return this.pathInternal;
40
39
  }
41
40
 
@@ -29,10 +29,9 @@
29
29
  */
30
30
 
31
31
  import type * as Common from '../../core/common/common.js';
32
- import type * as Platform from '../../core/platform/platform.js';
33
32
 
34
33
  export abstract class ContentProvider {
35
- abstract contentURL(): Platform.DevToolsPath.RawPathString;
34
+ abstract contentURL(): string;
36
35
  abstract contentType(): Common.ResourceType.ResourceType;
37
36
  abstract contentEncoded(): Promise<boolean>;
38
37
  abstract requestContent(): Promise<DeferredContent>;
@@ -3,7 +3,6 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import type * as Common from '../../core/common/common.js';
6
- import type * as Platform from '../../core/platform/platform.js';
7
6
 
8
7
  import type {ContentProvider, DeferredContent, SearchMatch} from './ContentProvider.js';
9
8
  import {performSearchInContent} from './TextUtils.js';
@@ -30,8 +29,8 @@ export class StaticContentProvider implements ContentProvider {
30
29
  }
31
30
 
32
31
  // TODO(crbug.com/1253323): Cast to PawPathString will be removed when migration to branded types is complete.
33
- contentURL(): Platform.DevToolsPath.RawPathString {
34
- return this.contentURLInternal as Platform.DevToolsPath.RawPathString;
32
+ contentURL(): string {
33
+ return this.contentURLInternal;
35
34
  }
36
35
 
37
36
  contentType(): Common.ResourceType.ResourceType {
@@ -59,6 +59,7 @@ export class TimelineJSProfileProcessor {
59
59
 
60
60
  static generateJSFrameEvents(events: SDK.TracingModel.Event[], config: {
61
61
  showAllEvents: boolean,
62
+ showRuntimeCallStats: boolean,
62
63
  showNativeFunctions: boolean,
63
64
  }): SDK.TracingModel.Event[] {
64
65
  function equalFrames(frame1: Protocol.Runtime.CallFrame, frame2: Protocol.Runtime.CallFrame): boolean {
@@ -84,7 +85,7 @@ export class TimelineJSProfileProcessor {
84
85
  const lockedJsStackDepth: number[] = [];
85
86
  let ordinal = 0;
86
87
  let fakeJSInvocation = false;
87
- const {showAllEvents, showNativeFunctions} = config;
88
+ const {showAllEvents, showRuntimeCallStats, showNativeFunctions} = config;
88
89
 
89
90
  function onStartEvent(e: SDK.TracingModel.Event): void {
90
91
  if (fakeJSInvocation) {
@@ -134,10 +135,15 @@ export class TimelineJSProfileProcessor {
134
135
  jsFramesStack.length = depth;
135
136
  }
136
137
 
138
+ function showNativeName(name: string): boolean {
139
+ return showRuntimeCallStats && Boolean(TimelineJSProfileProcessor.nativeGroup(name));
140
+ }
141
+
137
142
  function filterStackFrames(stack: Protocol.Runtime.CallFrame[]): void {
138
143
  if (showAllEvents) {
139
144
  return;
140
145
  }
146
+ let previousNativeFrameName: (string|null)|null = null;
141
147
  let j = 0;
142
148
  for (let i = 0; i < stack.length; ++i) {
143
149
  const frame = stack[i];
@@ -147,9 +153,16 @@ export class TimelineJSProfileProcessor {
147
153
  continue;
148
154
  }
149
155
  const isNativeRuntimeFrame = TimelineJSProfileProcessor.isNativeRuntimeFrame(frame);
150
- if (!isNativeRuntimeFrame) {
151
- stack[j++] = frame;
156
+ if (isNativeRuntimeFrame && !showNativeName(frame.functionName)) {
157
+ continue;
158
+ }
159
+ const nativeFrameName =
160
+ isNativeRuntimeFrame ? TimelineJSProfileProcessor.nativeGroup(frame.functionName) : null;
161
+ if (previousNativeFrameName && previousNativeFrameName === nativeFrameName) {
162
+ continue;
152
163
  }
164
+ previousNativeFrameName = nativeFrameName;
165
+ stack[j++] = frame;
153
166
  }
154
167
  stack.length = j;
155
168
  }
@@ -678,6 +678,7 @@ export class TimelineModelImpl {
678
678
  if (jsSamples || events.some(e => e.name === RecordType.JSSample)) {
679
679
  const jsFrameEvents = TimelineJSProfileProcessor.generateJSFrameEvents(events, {
680
680
  showAllEvents: Root.Runtime.experiments.isEnabled('timelineShowAllEvents'),
681
+ showRuntimeCallStats: Root.Runtime.experiments.isEnabled('timelineV8RuntimeCallStats'),
681
682
  showNativeFunctions: Common.Settings.Settings.instance().moduleSetting('showNativeFunctionsInJSProfile').get(),
682
683
  });
683
684
  if (jsFrameEvents && jsFrameEvents.length) {
@@ -192,8 +192,8 @@ export class UISourceCode extends Common.ObjectWrapper.ObjectWrapper<EventTypes>
192
192
  }
193
193
 
194
194
  // TODO(crbug.com/1253323): Cast to RawPathString will be removed when migration to branded types is complete.
195
- contentURL(): Platform.DevToolsPath.RawPathString {
196
- return this.url() as Platform.DevToolsPath.RawPathString;
195
+ contentURL(): string {
196
+ return this.url();
197
197
  }
198
198
 
199
199
  contentType(): Common.ResourceType.ResourceType {
@@ -5,9 +5,14 @@
5
5
  import * as Common from '../../core/common/common.js';
6
6
  import * as Host from '../../core/host/host.js';
7
7
  import * as Diff from '../../third_party/diff/diff.js';
8
+ import * as FormatterModule from '../formatter/formatter.js';
8
9
  import * as Persistence from '../persistence/persistence.js';
9
10
  import * as Workspace from '../workspace/workspace.js';
10
11
 
12
+ interface DiffRequestOptions {
13
+ shouldFormatDiff: boolean;
14
+ }
15
+
11
16
  export class WorkspaceDiffImpl extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
12
17
  private readonly uiSourceCodeDiffs: WeakMap<Workspace.UISourceCode.UISourceCode, UISourceCodeDiff>;
13
18
  private readonly loadingUISourceCodes:
@@ -29,8 +34,9 @@ export class WorkspaceDiffImpl extends Common.ObjectWrapper.ObjectWrapper<EventT
29
34
  workspace.uiSourceCodes().forEach(this.updateModifiedState.bind(this));
30
35
  }
31
36
 
32
- requestDiff(uiSourceCode: Workspace.UISourceCode.UISourceCode): Promise<Diff.Diff.DiffArray|null> {
33
- return this.uiSourceCodeDiff(uiSourceCode).requestDiff();
37
+ requestDiff(uiSourceCode: Workspace.UISourceCode.UISourceCode, diffRequestOptions: DiffRequestOptions):
38
+ Promise<Diff.Diff.DiffArray|null> {
39
+ return this.uiSourceCodeDiff(uiSourceCode).requestDiff(diffRequestOptions);
34
40
  }
35
41
 
36
42
  subscribeToDiffChange(uiSourceCode: Workspace.UISourceCode.UISourceCode, callback: () => void, thisObj?: Object):
@@ -212,9 +218,9 @@ export class UISourceCodeDiff extends Common.ObjectWrapper.ObjectWrapper<UISourc
212
218
  }
213
219
  }
214
220
 
215
- requestDiff(): Promise<Diff.Diff.DiffArray|null> {
221
+ requestDiff(diffRequestOptions: DiffRequestOptions): Promise<Diff.Diff.DiffArray|null> {
216
222
  if (!this.requestDiffPromise) {
217
- this.requestDiffPromise = this.innerRequestDiff();
223
+ this.requestDiffPromise = this.innerRequestDiff(diffRequestOptions);
218
224
  }
219
225
  return this.requestDiffPromise;
220
226
  }
@@ -231,12 +237,12 @@ export class UISourceCodeDiff extends Common.ObjectWrapper.ObjectWrapper<UISourc
231
237
  return content.content || ('error' in content && content.error) || '';
232
238
  }
233
239
 
234
- private async innerRequestDiff(): Promise<Diff.Diff.DiffArray|null> {
240
+ private async innerRequestDiff({shouldFormatDiff}: DiffRequestOptions): Promise<Diff.Diff.DiffArray|null> {
235
241
  if (this.dispose) {
236
242
  return null;
237
243
  }
238
244
 
239
- const baseline = await this.originalContent();
245
+ let baseline = await this.originalContent();
240
246
  if (baseline === null) {
241
247
  return null;
242
248
  }
@@ -264,6 +270,14 @@ export class UISourceCodeDiff extends Common.ObjectWrapper.ObjectWrapper<UISourc
264
270
  if (current === null || baseline === null) {
265
271
  return null;
266
272
  }
273
+ if (shouldFormatDiff) {
274
+ baseline = (await FormatterModule.ScriptFormatter.format(
275
+ this.uiSourceCode.contentType(), this.uiSourceCode.mimeType(), baseline))
276
+ .formattedContent;
277
+ current = (await FormatterModule.ScriptFormatter.format(
278
+ this.uiSourceCode.contentType(), this.uiSourceCode.mimeType(), current))
279
+ .formattedContent;
280
+ }
267
281
  return Diff.Diff.DiffWrapper.lineDiff(baseline.split(/\r\n|\n|\r/), current.split(/\r\n|\n|\r/));
268
282
  }
269
283
  }
@@ -332,7 +332,7 @@ export class AnimationTimeline extends UI.Widget.VBox implements SDK.TargetManag
332
332
  show: (popover: UI.GlassPane.GlassPane): Promise<boolean> => {
333
333
  let animGroup;
334
334
  for (const [group, previewUI] of this.#previewMap) {
335
- if (previewUI.element === element.parentElement) {
335
+ if (previewUI.element === element || previewUI.element === element.parentElement) {
336
336
  animGroup = group;
337
337
  }
338
338
  }
@@ -24,6 +24,8 @@
24
24
  margin-bottom: -1px;
25
25
  background-color: var(--color-background-elevation-1);
26
26
  display: flex;
27
+ flex-direction: column;
28
+ justify-content: space-around;
27
29
  align-items: center;
28
30
  flex: 0 0 150px;
29
31
  }
@@ -424,66 +424,6 @@ const UIStrings = {
424
424
  * @description Description text for not restored reason ContentMediaPlay.
425
425
  */
426
426
  contentMediaPlay: 'A media player was playing upon navigating away.',
427
- /**
428
- * @description Description text for not restored reason EmbedderPopupBlockerTabHelper.
429
- */
430
- embedderPopupBlockerTabHelper: 'EmbedderPopupBlockerTabHelper',
431
- /**
432
- * @description Description text for not restored reason EmbedderSafeBrowsingTriggeredPopupBlocker.
433
- */
434
- embedderSafeBrowsingTriggeredPopupBlocker: 'EmbedderSafeBrowsingTriggeredPopupBlocker',
435
- /**
436
- * @description Description text for not restored reason EmbedderSafeBrowsingThreatDetails.
437
- */
438
- embedderSafeBrowsingThreatDetails: 'EmbedderSafeBrowsingThreatDetails',
439
- /**
440
- * @description Description text for not restored reason EmbedderAppBannerManager.
441
- */
442
- embedderAppBannerManager: 'EmbedderAppBannerManager',
443
- /**
444
- * @description Description text for not restored reason EmbedderDomDistillerViewerSource.
445
- */
446
- embedderDomDistillerViewerSource: 'EmbedderDomDistillerViewerSource',
447
- /**
448
- * @description Description text for not restored reason EmbedderDomDistillerSelfDeletingRequestDelegate.
449
- */
450
- embedderDomDistillerSelfDeletingRequestDelegate: 'EmbedderDomDistillerSelfDeletingRequestDelegate',
451
- /**
452
- * @description Description text for not restored reason EmbedderOomInterventionTabHelper.
453
- */
454
- embedderOomInterventionTabHelper: 'EmbedderOomInterventionTabHelper',
455
- /**
456
- * @description Description text for not restored reason EmbedderOfflinePage.
457
- */
458
- embedderOfflinePage: 'EmbedderOfflinePage',
459
- /**
460
- * @description Description text for not restored reason EmbedderChromePasswordManagerClientBindCredentialManager.
461
- */
462
- embedderChromePasswordManagerClientBindCredentialManager: 'EmbedderChromePasswordManagerClientBindCredentialManager',
463
- /**
464
- * @description Description text for not restored reason EmbedderPermissionRequestManager.
465
- */
466
- embedderPermissionRequestManager: 'EmbedderPermissionRequestManager',
467
- /**
468
- * @description Description text for not restored reason EmbedderModalDialog.
469
- */
470
- embedderModalDialog: 'EmbedderModalDialog',
471
- /**
472
- * @description Description text for not restored reason EmbedderExtensions.
473
- */
474
- embedderExtensions: 'EmbedderExtensions',
475
- /**
476
- * @description Description text for not restored reason EmbedderExtensionMessaging.
477
- */
478
- embedderExtensionMessaging: 'EmbedderExtensionMessaging',
479
- /**
480
- * @description Description text for not restored reason EmbedderExtensionMessagingForOpenPort.
481
- */
482
- embedderExtensionMessagingForOpenPort: 'EmbedderExtensionMessagingForOpenPort',
483
- /**
484
- * @description Description text for not restored reason EmbedderExtensionSentMessageToCachedFrame.
485
- */
486
- embedderExtensionSentMessageToCachedFrame: 'EmbedderExtensionSentMessageToCachedFrame',
487
427
  };
488
428
 
489
429
  const str_ = i18n.i18n.registerUIStrings('panels/application/BackForwardCacheStrings.ts', UIStrings);
@@ -601,23 +541,23 @@ export const NotRestoredReasonDescription = {
601
541
  'ContentMediaSession': {name: i18nLazyString(UIStrings.contentMediaSession)},
602
542
  'ContentMediaSessionService': {name: i18nLazyString(UIStrings.contentMediaSessionService)},
603
543
  'ContentMediaPlay': {name: i18nLazyString(UIStrings.contentMediaPlay)},
604
- 'EmbedderPopupBlockerTabHelper': {name: i18nLazyString(UIStrings.embedderPopupBlockerTabHelper)},
544
+ 'EmbedderPopupBlockerTabHelper': {name: i18n.i18n.lockedLazyString('EmbedderPopupBlockerTabHelper')},
605
545
  'EmbedderSafeBrowsingTriggeredPopupBlocker':
606
- {name: i18nLazyString(UIStrings.embedderSafeBrowsingTriggeredPopupBlocker)},
607
- 'EmbedderSafeBrowsingThreatDetails': {name: i18nLazyString(UIStrings.embedderSafeBrowsingThreatDetails)},
608
- 'EmbedderAppBannerManager': {name: i18nLazyString(UIStrings.embedderAppBannerManager)},
609
- 'EmbedderDomDistillerViewerSource': {name: i18nLazyString(UIStrings.embedderDomDistillerViewerSource)},
546
+ {name: i18n.i18n.lockedLazyString('EmbedderSafeBrowsingTriggeredPopupBlocker')},
547
+ 'EmbedderSafeBrowsingThreatDetails': {name: i18n.i18n.lockedLazyString('EmbedderSafeBrowsingThreatDetails')},
548
+ 'EmbedderAppBannerManager': {name: i18n.i18n.lockedLazyString('EmbedderAppBannerManager')},
549
+ 'EmbedderDomDistillerViewerSource': {name: i18n.i18n.lockedLazyString('EmbedderDomDistillerViewerSource')},
610
550
  'EmbedderDomDistillerSelfDeletingRequestDelegate':
611
- {name: i18nLazyString(UIStrings.embedderDomDistillerSelfDeletingRequestDelegate)},
612
- 'EmbedderOomInterventionTabHelper': {name: i18nLazyString(UIStrings.embedderOomInterventionTabHelper)},
613
- 'EmbedderOfflinePage': {name: i18nLazyString(UIStrings.embedderOfflinePage)},
551
+ {name: i18n.i18n.lockedLazyString('EmbedderDomDistillerSelfDeletingRequestDelegate')},
552
+ 'EmbedderOomInterventionTabHelper': {name: i18n.i18n.lockedLazyString('EmbedderOomInterventionTabHelper')},
553
+ 'EmbedderOfflinePage': {name: i18n.i18n.lockedLazyString('EmbedderOfflinePage')},
614
554
  'EmbedderChromePasswordManagerClientBindCredentialManager':
615
- {name: i18nLazyString(UIStrings.embedderChromePasswordManagerClientBindCredentialManager)},
616
- 'EmbedderPermissionRequestManager': {name: i18nLazyString(UIStrings.embedderPermissionRequestManager)},
617
- 'EmbedderModalDialog': {name: i18nLazyString(UIStrings.embedderModalDialog)},
618
- 'EmbedderExtensions': {name: i18nLazyString(UIStrings.embedderExtensions)},
619
- 'EmbedderExtensionMessaging': {name: i18nLazyString(UIStrings.embedderExtensionMessaging)},
620
- 'EmbedderExtensionMessagingForOpenPort': {name: i18nLazyString(UIStrings.embedderExtensionMessagingForOpenPort)},
555
+ {name: i18n.i18n.lockedLazyString('EmbedderChromePasswordManagerClientBindCredentialManager')},
556
+ 'EmbedderPermissionRequestManager': {name: i18n.i18n.lockedLazyString('EmbedderPermissionRequestManager')},
557
+ 'EmbedderModalDialog': {name: i18n.i18n.lockedLazyString('EmbedderModalDialog')},
558
+ 'EmbedderExtensions': {name: i18n.i18n.lockedLazyString('EmbedderExtensions')},
559
+ 'EmbedderExtensionMessaging': {name: i18n.i18n.lockedLazyString('EmbedderExtensionMessaging')},
560
+ 'EmbedderExtensionMessagingForOpenPort': {name: i18n.i18n.lockedLazyString('EmbedderExtensionMessagingForOpenPort')},
621
561
  'EmbedderExtensionSentMessageToCachedFrame':
622
- {name: i18nLazyString(UIStrings.embedderExtensionSentMessageToCachedFrame)},
562
+ {name: i18n.i18n.lockedLazyString('EmbedderExtensionSentMessageToCachedFrame')},
623
563
  };
@@ -262,7 +262,14 @@ export class BackForwardCacheView extends UI.ThrottledWidget.ThrottledWidget {
262
262
 
263
263
  private renderReason(explanation: Protocol.Page.BackForwardCacheNotRestoredExplanation): LitHtml.TemplateResult {
264
264
  return LitHtml.html`
265
- <li>${explanation.reason} : ${
265
+ <li>
266
+ <${IconButton.Icon.Icon.litTagName} class="inline-icon" .data=${{
267
+ iconName: 'circled_exclamation_icon',
268
+ color: 'orange',
269
+ width: '16px',
270
+ height: '16px',
271
+ } as IconButton.Icon.IconData}></${IconButton.Icon.Icon.litTagName}>
272
+ ${explanation.reason} : ${
266
273
  (explanation.reason in NotRestoredReasonDescription) ?
267
274
  LitHtml.html`${NotRestoredReasonDescription[explanation.reason].name()}` :
268
275
  LitHtml.nothing} </li>
@@ -5,22 +5,36 @@
5
5
  import * as SDK from '../../core/sdk/sdk.js';
6
6
  import * as UI from '../../ui/legacy/legacy.js';
7
7
  import * as ApplicationComponents from './components/components.js';
8
+ import type * as Protocol from '../../generated/protocol.js';
8
9
 
9
10
  import {ReportingApiReportsView} from './ReportingApiReportsView.js';
10
11
 
11
12
  export class ReportingApiView extends UI.SplitWidget.SplitWidget {
13
+ private readonly endpointsGrid = new ApplicationComponents.EndpointsGrid.EndpointsGrid();
14
+ private endpoints: Map<string, Protocol.Network.ReportingApiEndpoint[]>;
15
+
12
16
  constructor() {
13
17
  super(/* isVertical: */ false, /* secondIsSidebar: */ true);
18
+ this.endpoints = new Map();
14
19
  const mainTarget = SDK.TargetManager.TargetManager.instance().mainTarget();
15
20
  const networkManager = mainTarget && mainTarget.model(SDK.NetworkManager.NetworkManager);
16
21
  if (networkManager) {
22
+ networkManager.addEventListener(
23
+ SDK.NetworkManager.Events.ReportingApiEndpointsChangedForOrigin,
24
+ event => this.onEndpointsChangedForOrigin(event.data), this);
25
+
17
26
  const reportingApiReportsView = new ReportingApiReportsView(networkManager);
18
27
  const reportingApiEndpointsView = new UI.Widget.VBox();
19
28
  reportingApiEndpointsView.setMinimumSize(0, 40);
20
- reportingApiEndpointsView.contentElement.appendChild(new ApplicationComponents.EndpointsGrid.EndpointsGrid());
29
+ reportingApiEndpointsView.contentElement.appendChild(this.endpointsGrid);
21
30
  this.setMainWidget(reportingApiReportsView);
22
31
  this.setSidebarWidget(reportingApiEndpointsView);
23
32
  networkManager.enableReportingApi();
24
33
  }
25
34
  }
35
+
36
+ private onEndpointsChangedForOrigin(data: Protocol.Network.ReportingApiEndpointsChangedForOriginEvent): void {
37
+ this.endpoints.set(data.origin, data.endpoints);
38
+ this.endpointsGrid.data = {endpoints: this.endpoints};
39
+ }
26
40
  }
@@ -3,9 +3,12 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as i18n from '../../../core/i18n/i18n.js';
6
+ import * as DataGrid from '../../../ui/components/data_grid/data_grid.js';
6
7
  import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
7
8
  import * as LitHtml from '../../../ui/lit-html/lit-html.js';
8
9
 
10
+ import type * as Protocol from '../../../generated/protocol.js';
11
+
9
12
  import reportingApiGridStyles from './reportingApiGrid.css.js';
10
13
 
11
14
  const UIStrings = {
@@ -20,30 +23,86 @@ export const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
20
23
 
21
24
  const {render, html} = LitHtml;
22
25
 
26
+ export interface EndpointsGridData {
27
+ endpoints: Map<string, Protocol.Network.ReportingApiEndpoint[]>;
28
+ }
29
+
23
30
  export class EndpointsGrid extends HTMLElement {
24
31
  static readonly litTagName = LitHtml.literal`devtools-resources-endpoints-grid`;
25
32
 
26
33
  private readonly shadow = this.attachShadow({mode: 'open'});
34
+ private endpoints: Map<string, Protocol.Network.ReportingApiEndpoint[]> = new Map();
27
35
 
28
36
  connectedCallback(): void {
29
37
  this.shadow.adoptedStyleSheets = [reportingApiGridStyles];
30
38
  this.render();
31
39
  }
32
40
 
33
- // TODO(crbug.com/1200732): Display info about currently configured endpoints
41
+ set data(data: EndpointsGridData) {
42
+ this.endpoints = data.endpoints;
43
+ this.render();
44
+ }
45
+
34
46
  private render(): void {
47
+ const endpointsGridData: DataGrid.DataGridController.DataGridControllerData = {
48
+ columns: [
49
+ {
50
+ id: 'origin',
51
+ title: i18n.i18n.lockedString('Origin'),
52
+ widthWeighting: 30,
53
+ hideable: false,
54
+ visible: true,
55
+ },
56
+ {
57
+ id: 'name',
58
+ title: i18n.i18n.lockedString('Name'),
59
+ widthWeighting: 20,
60
+ hideable: false,
61
+ visible: true,
62
+ },
63
+ {
64
+ id: 'url',
65
+ title: i18n.i18n.lockedString('URL'),
66
+ widthWeighting: 30,
67
+ hideable: false,
68
+ visible: true,
69
+ },
70
+ ],
71
+ rows: this.buildReportRows(),
72
+ };
73
+
35
74
  // Disabled until https://crbug.com/1079231 is fixed.
36
75
  // clang-format off
37
76
  render(html`
38
77
  <div class="reporting-container">
39
78
  <div class="reporting-header">${i18n.i18n.lockedString('Endpoints')}</div>
40
- <div class="reporting-placeholder">
41
- <div>${i18nString(UIStrings.noEndpointsToDisplay)}</div>
42
- </div>
79
+ ${this.endpoints.size > 0 ? html`
80
+ <${DataGrid.DataGridController.DataGridController.litTagName} .data=${
81
+ endpointsGridData as DataGrid.DataGridController.DataGridControllerData}>
82
+ </${DataGrid.DataGridController.DataGridController.litTagName}>
83
+ ` : html`
84
+ <div class="reporting-placeholder">
85
+ <div>${i18nString(UIStrings.noEndpointsToDisplay)}</div>
86
+ </div>
87
+ `}
43
88
  </div>
44
89
  `, this.shadow);
45
90
  // clang-format on
46
91
  }
92
+
93
+ private buildReportRows(): DataGrid.DataGridUtils.Row[] {
94
+ return Array.from(this.endpoints)
95
+ .map(([origin, endpointArray]) => endpointArray.map(endpoint => {
96
+ return {
97
+ cells: [
98
+ {columnId: 'origin', value: origin},
99
+ {columnId: 'name', value: endpoint.groupName},
100
+ {columnId: 'url', value: endpoint.url},
101
+ ],
102
+ };
103
+ }))
104
+ .flat();
105
+ }
47
106
  }
48
107
 
49
108
  ComponentHelpers.CustomElements.defineComponent('devtools-resources-endpoints-grid', EndpointsGrid);