chrome-devtools-frontend 1.0.982087 → 1.0.995227

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 (489) 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 +39 -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 +4 -4
  10. package/front_end/core/host/InspectorFrontendHostAPI.ts +7 -6
  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 +193 -52
  31. package/front_end/core/i18n/locales/en-XL.json +193 -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/TracingModel.ts +0 -9
  130. package/front_end/devtools_compatibility.js +1 -0
  131. package/front_end/entrypoints/formatter_worker/CSSRuleParser.ts +1 -1
  132. package/front_end/entrypoints/lighthouse_worker/LighthouseWorkerService.ts +10 -3
  133. package/front_end/entrypoints/main/MainImpl.ts +22 -2
  134. package/front_end/generated/InspectorBackendCommands.js +79 -14
  135. package/front_end/generated/SupportedCSSProperties.js +21 -8
  136. package/front_end/generated/protocol-mapping.d.ts +4 -0
  137. package/front_end/generated/protocol-proxy-api.d.ts +5 -0
  138. package/front_end/generated/protocol.ts +158 -28
  139. package/front_end/legacy/legacy-defs.d.ts +0 -4
  140. package/front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js +1 -1
  141. package/front_end/legacy_test_runner/test_runner/TestRunner.js +1 -0
  142. package/front_end/models/bindings/BreakpointManager.ts +68 -11
  143. package/front_end/models/bindings/CSSWorkspaceBinding.ts +9 -2
  144. package/front_end/models/bindings/CompilerScriptMapping.ts +3 -2
  145. package/front_end/models/bindings/ContentProviderBasedProject.ts +12 -9
  146. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +10 -8
  147. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +8 -1
  148. package/front_end/models/bindings/DefaultScriptMapping.ts +8 -2
  149. package/front_end/models/bindings/IgnoreListManager.ts +5 -5
  150. package/front_end/models/bindings/ResourceUtils.ts +5 -4
  151. package/front_end/models/emulation/EmulatedDevices.ts +17 -0
  152. package/front_end/models/extensions/ExtensionAPI.ts +5 -2
  153. package/front_end/models/extensions/ExtensionPanel.ts +2 -1
  154. package/front_end/models/extensions/ExtensionServer.ts +13 -8
  155. package/front_end/models/issues_manager/AttributionReportingIssue.ts +0 -63
  156. package/front_end/models/issues_manager/CookieIssue.ts +7 -0
  157. package/front_end/models/issues_manager/DeprecationIssue.ts +326 -8
  158. package/front_end/models/issues_manager/IssuesManager.ts +4 -0
  159. package/front_end/models/issues_manager/descriptions/CookieAttributeValueExceedsMaxSize.md +5 -0
  160. package/front_end/models/issues_manager/descriptions/deprecation.md +1 -1
  161. package/front_end/models/logs/LogManager.ts +2 -1
  162. package/front_end/models/logs/NetworkLog.ts +14 -12
  163. package/front_end/models/persistence/Automapping.ts +17 -16
  164. package/front_end/models/persistence/EditFileSystemView.ts +5 -4
  165. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +24 -24
  166. package/front_end/models/persistence/IsolatedFileSystem.ts +2 -2
  167. package/front_end/models/persistence/IsolatedFileSystemManager.ts +7 -6
  168. package/front_end/models/persistence/NetworkPersistenceManager.ts +92 -54
  169. package/front_end/models/persistence/PersistenceImpl.ts +7 -7
  170. package/front_end/models/persistence/PlatformFileSystem.ts +7 -8
  171. package/front_end/models/persistence/WorkspaceSettingsTab.ts +3 -2
  172. package/front_end/models/text_utils/CodeMirrorUtils.ts +53 -0
  173. package/front_end/models/text_utils/text_utils.ts +2 -0
  174. package/front_end/models/timeline_model/TimelineModel.ts +31 -30
  175. package/front_end/models/timeline_model/TimelineProfileTree.ts +3 -2
  176. package/front_end/models/workspace/UISourceCode.ts +16 -14
  177. package/front_end/models/workspace/WorkspaceImpl.ts +40 -16
  178. package/front_end/panels/accessibility/AccessibilitySubPane.ts +2 -1
  179. package/front_end/panels/application/AppManifestView.ts +1 -1
  180. package/front_end/panels/application/ApplicationPanelCacheSection.ts +5 -4
  181. package/front_end/panels/application/ApplicationPanelSidebar.ts +34 -30
  182. package/front_end/panels/application/ApplicationPanelTreeElement.ts +5 -4
  183. package/front_end/panels/application/DatabaseQueryView.ts +2 -1
  184. package/front_end/panels/application/InterestGroupTreeElement.ts +3 -2
  185. package/front_end/panels/application/ReportingApiTreeElement.ts +3 -2
  186. package/front_end/panels/application/ResourcesPanel.ts +4 -3
  187. package/front_end/panels/application/ServiceWorkerCacheViews.ts +6 -1
  188. package/front_end/panels/application/TrustTokensTreeElement.ts +3 -2
  189. package/front_end/panels/application/components/BackForwardCacheStrings.ts +10 -1
  190. package/front_end/panels/application/components/BackForwardCacheView.ts +163 -13
  191. package/front_end/panels/application/components/backForwardCacheView.css +15 -4
  192. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +19 -19
  193. package/front_end/panels/changes/ChangesView.ts +38 -0
  194. package/front_end/panels/console/ConsolePinPane.ts +7 -0
  195. package/front_end/panels/console/ConsolePrompt.ts +11 -1
  196. package/front_end/panels/console/ConsoleSidebar.ts +2 -1
  197. package/front_end/panels/console/ConsoleView.ts +57 -31
  198. package/front_end/panels/console/ConsoleViewMessage.ts +12 -9
  199. package/front_end/panels/console/ConsoleViewport.ts +2 -1
  200. package/front_end/panels/console/ErrorStackParser.ts +8 -4
  201. package/front_end/panels/console/consoleView.css +0 -1
  202. package/front_end/panels/coverage/CoverageListView.ts +1 -1
  203. package/front_end/panels/coverage/CoverageModel.ts +6 -6
  204. package/front_end/panels/css_overview/CSSOverviewCompletedView.ts +2 -1
  205. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +7 -6
  206. package/front_end/panels/css_overview/components/cssOverviewStartView.css +0 -48
  207. package/front_end/panels/css_overview/cssOverviewCompletedView.css +5 -0
  208. package/front_end/panels/css_overview/cssOverviewSidebarPanel.css +2 -0
  209. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +2 -1
  210. package/front_end/panels/elements/ComputedStyleWidget.ts +2 -1
  211. package/front_end/panels/elements/ElementStatePaneWidget.ts +4 -6
  212. package/front_end/panels/elements/ElementsPanel.ts +16 -5
  213. package/front_end/panels/elements/ImagePreviewPopover.ts +6 -4
  214. package/front_end/panels/elements/PropertiesWidget.ts +4 -24
  215. package/front_end/panels/elements/StyleEditorWidget.ts +2 -1
  216. package/front_end/panels/elements/StylePropertiesSection.ts +1614 -0
  217. package/front_end/panels/elements/StylePropertyHighlighter.ts +2 -1
  218. package/front_end/panels/elements/StylePropertyTreeElement.ts +20 -1
  219. package/front_end/panels/elements/StylesSidebarPane.ts +97 -1675
  220. package/front_end/panels/elements/elements-legacy.ts +3 -3
  221. package/front_end/panels/elements/elements.ts +3 -0
  222. package/front_end/panels/elements/stylesSidebarPane.css +3 -1
  223. package/front_end/panels/input/InputTimeline.ts +1 -1
  224. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -50
  225. package/front_end/panels/issues/ComboBoxOfCheckBoxes.ts +14 -2
  226. package/front_end/panels/issues/IssueAggregator.ts +8 -0
  227. package/front_end/panels/issues/issues.ts +2 -0
  228. package/front_end/panels/lighthouse/LighthouseController.ts +5 -1
  229. package/front_end/panels/lighthouse/LighthousePanel.ts +3 -1
  230. package/front_end/panels/lighthouse/LighthouseTimespanView.ts +3 -3
  231. package/front_end/panels/network/BlockedURLsPane.ts +3 -2
  232. package/front_end/panels/network/NetworkConfigView.ts +6 -0
  233. package/front_end/panels/network/NetworkDataGridNode.ts +4 -0
  234. package/front_end/panels/network/NetworkLogView.ts +1 -1
  235. package/front_end/panels/network/RequestHTMLView.ts +1 -0
  236. package/front_end/panels/network/RequestHeadersView.ts +71 -10
  237. package/front_end/panels/network/networkLogView.css +9 -17
  238. package/front_end/panels/network/requestHeadersTree.css +16 -0
  239. package/front_end/panels/profiler/HeapSnapshotView.ts +2 -0
  240. package/front_end/panels/profiler/LiveHeapProfileView.ts +3 -1
  241. package/front_end/panels/profiler/ProfilesPanel.ts +2 -1
  242. package/front_end/panels/profiler/heapProfiler.css +15 -3
  243. package/front_end/panels/screencast/ScreencastView.ts +1 -1
  244. package/front_end/panels/search/SearchConfig.ts +2 -1
  245. package/front_end/panels/settings/KeybindsSettingsTab.ts +3 -2
  246. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +1 -2
  247. package/front_end/panels/snippets/ScriptSnippetFileSystem.ts +4 -4
  248. package/front_end/panels/sources/BreakpointEditDialog.ts +0 -1
  249. package/front_end/panels/sources/CSSPlugin.ts +6 -6
  250. package/front_end/panels/sources/CoveragePlugin.ts +2 -1
  251. package/front_end/panels/sources/DebuggerPlugin.ts +4 -4
  252. package/front_end/panels/sources/EditingLocationHistoryManager.ts +4 -1
  253. package/front_end/panels/sources/NavigatorView.ts +28 -20
  254. package/front_end/panels/sources/SearchSourcesView.ts +2 -2
  255. package/front_end/panels/sources/SourcesNavigator.ts +4 -2
  256. package/front_end/panels/sources/SourcesPanel.ts +4 -4
  257. package/front_end/panels/sources/SourcesSearchScope.ts +12 -8
  258. package/front_end/panels/sources/SourcesView.ts +3 -1
  259. package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
  260. package/front_end/panels/sources/components/HeadersView.ts +1 -1
  261. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +9 -9
  262. package/front_end/panels/timeline/TimelinePanel.ts +1 -1
  263. package/front_end/panels/timeline/timelinePanel.css +1 -2
  264. package/front_end/panels/utils/utils.ts +97 -0
  265. package/front_end/third_party/codemirror.next/bundle.ts +27 -25
  266. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  267. package/front_end/third_party/codemirror.next/chunk/cpp.js +2 -2
  268. package/front_end/third_party/codemirror.next/chunk/java.js +2 -1
  269. package/front_end/third_party/codemirror.next/chunk/json.js +2 -2
  270. package/front_end/third_party/codemirror.next/chunk/legacy.js +1 -1
  271. package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -2
  272. package/front_end/third_party/codemirror.next/chunk/php.js +2 -1
  273. package/front_end/third_party/codemirror.next/chunk/python.js +2 -2
  274. package/front_end/third_party/codemirror.next/chunk/wast.js +2 -1
  275. package/front_end/third_party/codemirror.next/chunk/xml.js +2 -1
  276. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +1884 -2281
  277. package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
  278. package/front_end/third_party/codemirror.next/package.json +21 -32
  279. package/front_end/third_party/lit-html/README.chromium +3 -3
  280. package/front_end/third_party/lit-html/package/README.md +1 -1
  281. package/front_end/third_party/lit-html/package/async-directive.d.ts +1 -1
  282. package/front_end/third_party/lit-html/package/async-directive.js.map +1 -1
  283. package/front_end/third_party/lit-html/package/development/async-directive.d.ts +1 -1
  284. package/front_end/third_party/lit-html/package/development/async-directive.js.map +1 -1
  285. package/front_end/third_party/lit-html/package/development/directives/choose.d.ts +32 -0
  286. package/front_end/third_party/lit-html/package/development/directives/choose.d.ts.map +1 -0
  287. package/front_end/third_party/lit-html/package/development/directives/choose.js +41 -0
  288. package/front_end/third_party/lit-html/package/development/directives/choose.js.map +1 -0
  289. package/front_end/third_party/lit-html/package/development/directives/join.d.ts +21 -0
  290. package/front_end/third_party/lit-html/package/development/directives/join.d.ts.map +1 -0
  291. package/front_end/third_party/lit-html/package/development/directives/join.js +19 -0
  292. package/front_end/third_party/lit-html/package/development/directives/join.js.map +1 -0
  293. package/front_end/third_party/lit-html/package/development/directives/keyed.d.ts +23 -0
  294. package/front_end/third_party/lit-html/package/development/directives/keyed.d.ts.map +1 -0
  295. package/front_end/third_party/lit-html/package/development/directives/keyed.js +39 -0
  296. package/front_end/third_party/lit-html/package/development/directives/keyed.js.map +1 -0
  297. package/front_end/third_party/lit-html/package/development/directives/map.d.ts +23 -0
  298. package/front_end/third_party/lit-html/package/development/directives/map.d.ts.map +1 -0
  299. package/front_end/third_party/lit-html/package/development/directives/map.js +30 -0
  300. package/front_end/third_party/lit-html/package/development/directives/map.js.map +1 -0
  301. package/front_end/third_party/lit-html/package/development/directives/range.d.ts +24 -0
  302. package/front_end/third_party/lit-html/package/development/directives/range.d.ts.map +1 -0
  303. package/front_end/third_party/lit-html/package/development/directives/range.js +13 -0
  304. package/front_end/third_party/lit-html/package/development/directives/range.js.map +1 -0
  305. package/front_end/third_party/lit-html/package/development/directives/template-content.d.ts +1 -1
  306. package/front_end/third_party/lit-html/package/development/directives/when.d.ts +26 -0
  307. package/front_end/third_party/lit-html/package/development/directives/when.d.ts.map +1 -0
  308. package/front_end/third_party/lit-html/package/development/directives/when.js +9 -0
  309. package/front_end/third_party/lit-html/package/development/directives/when.js.map +1 -0
  310. package/front_end/third_party/lit-html/package/development/lit-html.d.ts +182 -1
  311. package/front_end/third_party/lit-html/package/development/lit-html.d.ts.map +1 -1
  312. package/front_end/third_party/lit-html/package/development/lit-html.js +187 -4
  313. package/front_end/third_party/lit-html/package/development/lit-html.js.map +1 -1
  314. package/front_end/third_party/lit-html/package/development/static.d.ts.map +1 -1
  315. package/front_end/third_party/lit-html/package/development/static.js +7 -0
  316. package/front_end/third_party/lit-html/package/development/static.js.map +1 -1
  317. package/front_end/third_party/lit-html/package/directives/choose.d.ts +32 -0
  318. package/front_end/third_party/lit-html/package/directives/choose.d.ts.map +1 -0
  319. package/front_end/third_party/lit-html/package/directives/choose.js +7 -0
  320. package/front_end/third_party/lit-html/package/directives/choose.js.map +1 -0
  321. package/front_end/third_party/lit-html/package/directives/class-map.js +1 -1
  322. package/front_end/third_party/lit-html/package/directives/guard.js +1 -1
  323. package/front_end/third_party/lit-html/package/directives/join.d.ts +21 -0
  324. package/front_end/third_party/lit-html/package/directives/join.d.ts.map +1 -0
  325. package/front_end/third_party/lit-html/package/directives/join.js +7 -0
  326. package/front_end/third_party/lit-html/package/directives/join.js.map +1 -0
  327. package/front_end/third_party/lit-html/package/directives/keyed.d.ts +23 -0
  328. package/front_end/third_party/lit-html/package/directives/keyed.d.ts.map +1 -0
  329. package/front_end/third_party/lit-html/package/directives/keyed.js +7 -0
  330. package/front_end/third_party/lit-html/package/directives/keyed.js.map +1 -0
  331. package/front_end/third_party/lit-html/package/directives/map.d.ts +23 -0
  332. package/front_end/third_party/lit-html/package/directives/map.d.ts.map +1 -0
  333. package/front_end/third_party/lit-html/package/directives/map.js +7 -0
  334. package/front_end/third_party/lit-html/package/directives/map.js.map +1 -0
  335. package/front_end/third_party/lit-html/package/directives/range.d.ts +24 -0
  336. package/front_end/third_party/lit-html/package/directives/range.d.ts.map +1 -0
  337. package/front_end/third_party/lit-html/package/directives/range.js +7 -0
  338. package/front_end/third_party/lit-html/package/directives/range.js.map +1 -0
  339. package/front_end/third_party/lit-html/package/directives/ref.js +1 -1
  340. package/front_end/third_party/lit-html/package/directives/repeat.js +1 -1
  341. package/front_end/third_party/lit-html/package/directives/style-map.js +1 -1
  342. package/front_end/third_party/lit-html/package/directives/template-content.d.ts +1 -1
  343. package/front_end/third_party/lit-html/package/directives/template-content.js +1 -1
  344. package/front_end/third_party/lit-html/package/directives/unsafe-html.js +1 -1
  345. package/front_end/third_party/lit-html/package/directives/until.js +1 -1
  346. package/front_end/third_party/lit-html/package/directives/when.d.ts +26 -0
  347. package/front_end/third_party/lit-html/package/directives/when.d.ts.map +1 -0
  348. package/front_end/third_party/lit-html/package/directives/when.js +7 -0
  349. package/front_end/third_party/lit-html/package/directives/when.js.map +1 -0
  350. package/front_end/third_party/lit-html/package/lit-html.d.ts +182 -1
  351. package/front_end/third_party/lit-html/package/lit-html.d.ts.map +1 -1
  352. package/front_end/third_party/lit-html/package/lit-html.js +1 -1
  353. package/front_end/third_party/lit-html/package/lit-html.js.map +1 -1
  354. package/front_end/third_party/lit-html/package/package.json +25 -1
  355. package/front_end/third_party/lit-html/package/private-ssr-support.js +1 -1
  356. package/front_end/third_party/lit-html/package/static.d.ts.map +1 -1
  357. package/front_end/third_party/lit-html/package/static.js +1 -1
  358. package/front_end/third_party/lit-html/package/static.js.map +1 -1
  359. package/front_end/third_party/puppeteer/README.chromium +1 -1
  360. package/front_end/third_party/puppeteer/package/README.md +12 -13
  361. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.js +5 -1
  362. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api-docs-entry.js.map +1 -1
  363. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +5 -1
  364. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  365. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.d.ts +2 -2
  366. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/FrameManager.js +2 -2
  367. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts +2 -2
  368. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  369. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js +13 -6
  370. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/HTTPRequest.js.map +1 -1
  371. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js +5 -1
  372. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/JSHandle.js.map +1 -1
  373. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts +1 -0
  374. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.d.ts.map +1 -1
  375. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js +4 -1
  376. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkEventManager.js.map +1 -1
  377. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts +1 -0
  378. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.d.ts.map +1 -1
  379. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js +10 -0
  380. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/NetworkManager.js.map +1 -1
  381. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts +4 -2
  382. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.d.ts.map +1 -1
  383. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/PDFOptions.js.map +1 -1
  384. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.d.ts.map +1 -1
  385. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js +12 -1
  386. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Page.js.map +1 -1
  387. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.js +5 -1
  388. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/fetch.js.map +1 -1
  389. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.d.ts.map +1 -1
  390. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js +7 -6
  391. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/helper.js.map +1 -1
  392. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js +8 -1
  393. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserFetcher.js.map +1 -1
  394. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js +6 -2
  395. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserRunner.js.map +1 -1
  396. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js +6 -2
  397. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/Launcher.js.map +1 -1
  398. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +1 -1
  399. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.d.ts +2 -2
  400. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/FrameManager.js +2 -2
  401. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts +2 -2
  402. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.d.ts.map +1 -1
  403. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js +13 -6
  404. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/HTTPRequest.js.map +1 -1
  405. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts +1 -0
  406. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.d.ts.map +1 -1
  407. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js +4 -1
  408. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkEventManager.js.map +1 -1
  409. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts +1 -0
  410. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.d.ts.map +1 -1
  411. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js +10 -0
  412. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/NetworkManager.js.map +1 -1
  413. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts +4 -2
  414. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.d.ts.map +1 -1
  415. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/PDFOptions.js.map +1 -1
  416. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.d.ts.map +1 -1
  417. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js +12 -1
  418. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Page.js.map +1 -1
  419. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.d.ts.map +1 -1
  420. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js +2 -5
  421. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/helper.js.map +1 -1
  422. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js +3 -0
  423. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserFetcher.js.map +1 -1
  424. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js +1 -1
  425. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserRunner.js.map +1 -1
  426. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js +1 -1
  427. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/Launcher.js.map +1 -1
  428. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +1 -1
  429. package/front_end/third_party/puppeteer/package/lib/types.d.ts +10 -6
  430. package/front_end/third_party/puppeteer/package/package.json +17 -17
  431. package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +1 -1
  432. package/front_end/ui/components/data_grid/DataGrid.ts +8 -9
  433. package/front_end/ui/components/data_grid/DataGridController.ts +3 -1
  434. package/front_end/ui/components/docs/panel_introduction_steps/basic.html +25 -0
  435. package/front_end/ui/components/docs/panel_introduction_steps/basic.ts +25 -0
  436. package/front_end/ui/components/input/input.ts +2 -2
  437. package/front_end/ui/components/linkifier/LinkifierUtils.ts +3 -1
  438. package/front_end/ui/components/panel_introduction_steps/PanelIntroductionSteps.ts +44 -0
  439. package/front_end/ui/components/panel_introduction_steps/panelIntroductionSteps.css +56 -0
  440. package/front_end/ui/components/panel_introduction_steps/panel_introduction_steps.ts +5 -0
  441. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +3 -4
  442. package/front_end/ui/components/text_editor/TextEditor.ts +1 -1
  443. package/front_end/ui/components/text_editor/config.ts +1 -35
  444. package/front_end/ui/components/text_editor/javascript.ts +8 -8
  445. package/front_end/ui/components/tree_outline/TreeOutline.ts +10 -9
  446. package/front_end/ui/components/tree_outline/treeOutline.css +1 -1
  447. package/front_end/ui/legacy/ARIAUtils.ts +4 -2
  448. package/front_end/ui/legacy/ContextMenu.ts +14 -0
  449. package/front_end/ui/legacy/DockController.ts +2 -1
  450. package/front_end/ui/legacy/SettingsUI.ts +3 -3
  451. package/front_end/ui/legacy/SoftContextMenu.ts +43 -14
  452. package/front_end/ui/legacy/Toolbar.ts +16 -0
  453. package/front_end/ui/legacy/Treeoutline.ts +17 -7
  454. package/front_end/ui/legacy/UIUtils.ts +2 -2
  455. package/front_end/ui/legacy/View.ts +14 -8
  456. package/front_end/ui/legacy/ViewManager.ts +2 -1
  457. package/front_end/ui/legacy/ViewRegistration.ts +6 -0
  458. package/front_end/ui/legacy/Widget.ts +2 -1
  459. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +43 -11
  460. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +98 -48
  461. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +4 -3
  462. package/front_end/ui/legacy/components/data_grid/dataGrid.css +24 -28
  463. package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +5 -11
  464. package/front_end/ui/legacy/components/inline_editor/CSSLength.ts +8 -1
  465. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +10 -7
  466. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +11 -10
  467. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +7 -1
  468. package/front_end/ui/legacy/components/utils/ImagePreview.ts +12 -7
  469. package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -5
  470. package/front_end/ui/legacy/reportView.css +1 -0
  471. package/front_end/ui/legacy/splitWidget.css +1 -1
  472. package/front_end/ui/legacy/tabbedPane.css +1 -0
  473. package/front_end/ui/legacy/themeColors.css +1 -1
  474. package/front_end/ui/legacy/toolbar.css +17 -1
  475. package/front_end/ui/legacy/utils/focus-changed.ts +3 -1
  476. package/inspector_overlay/.eslintrc.js +9 -0
  477. package/package.json +17 -17
  478. package/scripts/eslint_rules/lib/check_component_naming.js +4 -0
  479. package/scripts/eslint_rules/lib/es_modules_import.js +6 -0
  480. package/scripts/eslint_rules/lib/inject_checkbox_styles.js +121 -0
  481. package/scripts/eslint_rules/tests/es_modules_import_test.js +12 -0
  482. package/scripts/eslint_rules/tests/inject_checkbox_styles_test.js +127 -0
  483. package/front_end/models/issues_manager/descriptions/arAttributionEventSourceTriggerDataTooLarge.md +0 -4
  484. package/front_end/models/issues_manager/descriptions/arAttributionTriggerDataTooLarge.md +0 -4
  485. package/front_end/models/issues_manager/descriptions/arInvalidAttributionData.md +0 -8
  486. package/front_end/models/issues_manager/descriptions/arInvalidEventSourceTriggerData.md +0 -9
  487. package/front_end/models/issues_manager/descriptions/arInvalidTriggerDedupKey.md +0 -5
  488. package/front_end/models/issues_manager/descriptions/arInvalidTriggerPriority.md +0 -5
  489. package/front_end/models/issues_manager/descriptions/arMissingAttributionData.md +0 -7
@@ -6,8 +6,11 @@ import * as SDK from '../../../../core/sdk/sdk.js';
6
6
  import * as Bindings from '../../../../models/bindings/bindings.js';
7
7
  import * as Workspace from '../../../../models/workspace/workspace.js';
8
8
  import * as SourceFrame from '../source_frame/source_frame.js';
9
+ import type * as Platform from '../../../../core/platform/platform.js';
9
10
  import type * as Protocol from '../../../../generated/protocol.js';
10
11
 
12
+ // TODO(crbug.com/1253323): Casts to UrlString will be removed from this file when migration to branded types is complete.
13
+
11
14
  let performanceInstance: Performance;
12
15
 
13
16
  export class Performance {
@@ -78,7 +81,7 @@ export class Performance {
78
81
  if (!node) {
79
82
  continue;
80
83
  }
81
- const scriptIdOrUrl = node.scriptId || node.url;
84
+ const scriptIdOrUrl = Number(node.scriptId) || node.url;
82
85
  if (!scriptIdOrUrl) {
83
86
  continue;
84
87
  }
@@ -122,7 +125,7 @@ export class Memory {
122
125
  if (!node.selfSize) {
123
126
  return;
124
127
  }
125
- const script = Number(node.callFrame.scriptId) || node.callFrame.url;
128
+ const script = Number(node.callFrame.scriptId) || node.callFrame.url as Platform.DevToolsPath.UrlString;
126
129
  if (!script) {
127
130
  return;
128
131
  }
@@ -136,7 +139,7 @@ export class Helper {
136
139
  private readonly type: string;
137
140
  private readonly locationPool: Bindings.LiveLocation.LiveLocationPool;
138
141
  private updateTimer: number|null;
139
- private lineData!: Map<SDK.Target.Target|null, Map<string|number, Map<number, number>>>;
142
+ private lineData!: Map<SDK.Target.Target|null, Map<Platform.DevToolsPath.UrlString|number, Map<number, number>>>;
140
143
 
141
144
  constructor(type: string) {
142
145
  this.type = type;
@@ -151,7 +154,9 @@ export class Helper {
151
154
  this.scheduleUpdate();
152
155
  }
153
156
 
154
- addLineData(target: SDK.Target.Target|null, scriptIdOrUrl: string|number, line: number, data: number): void {
157
+ addLineData(
158
+ target: SDK.Target.Target|null, scriptIdOrUrl: Platform.DevToolsPath.UrlString|number, line: number,
159
+ data: number): void {
155
160
  let targetData = this.lineData.get(target);
156
161
  if (!targetData) {
157
162
  targetData = new Map();
@@ -181,13 +186,9 @@ export class Helper {
181
186
  const decorationsBySource = new Map<Workspace.UISourceCode.UISourceCode, Map<number, number>>();
182
187
  const pending: Promise<void>[] = [];
183
188
 
184
- for (const targetToScript of this.lineData) {
185
- const target = (targetToScript[0] as SDK.Target.Target | null);
189
+ for (const [target, scriptToLineMap] of this.lineData) {
186
190
  const debuggerModel = target ? target.model(SDK.DebuggerModel.DebuggerModel) : null;
187
- const scriptToLineMap = (targetToScript[1] as Map<string|number, Map<number, number>>);
188
- for (const scriptToLine of scriptToLineMap) {
189
- const scriptIdOrUrl = (scriptToLine[0] as string | number);
190
- const lineToDataMap = (scriptToLine[1] as Map<number, number>);
191
+ for (const [scriptIdOrUrl, lineToDataMap] of scriptToLineMap) {
191
192
  // debuggerModel is null when the profile is loaded from file.
192
193
  // Try to get UISourceCode by the URL in this case.
193
194
  const workspace = Workspace.Workspace.WorkspaceImpl.instance();
@@ -444,7 +444,13 @@ export class SourceFrameImpl extends Common.ObjectWrapper.eventMixin<EventTypes,
444
444
  this.rawContent = deferredContent.error;
445
445
  } else {
446
446
  content = deferredContent.content;
447
- this.rawContent = deferredContent.isEncoded ? window.atob(deferredContent.content) : deferredContent.content;
447
+ if (deferredContent.isEncoded) {
448
+ const view = new DataView(Common.Base64.decode(deferredContent.content));
449
+ const decoder = new TextDecoder();
450
+ this.rawContent = decoder.decode(view, {stream: true});
451
+ } else {
452
+ this.rawContent = deferredContent.content;
453
+ }
448
454
  }
449
455
 
450
456
  progressIndicator.setWorked(1);
@@ -54,7 +54,7 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
54
54
  export interface PrecomputedFeatures {
55
55
  renderedWidth: number;
56
56
  renderedHeight: number;
57
- currentSrc?: string;
57
+ currentSrc?: Platform.DevToolsPath.UrlString;
58
58
  }
59
59
 
60
60
  function isImageResource(resource: SDK.Resource.Resource|null): boolean {
@@ -62,17 +62,18 @@ function isImageResource(resource: SDK.Resource.Resource|null): boolean {
62
62
  }
63
63
 
64
64
  export class ImagePreview {
65
- static async build(target: SDK.Target.Target, originalImageURL: string, showDimensions: boolean, options: {
66
- precomputedFeatures: (PrecomputedFeatures|undefined),
67
- imageAltText: (string|undefined),
68
- }|undefined = {precomputedFeatures: undefined, imageAltText: undefined}): Promise<Element|null> {
65
+ static async build(
66
+ target: SDK.Target.Target, originalImageURL: Platform.DevToolsPath.UrlString, showDimensions: boolean, options: {
67
+ precomputedFeatures: (PrecomputedFeatures|undefined),
68
+ imageAltText: (string|undefined),
69
+ }|undefined = {precomputedFeatures: undefined, imageAltText: undefined}): Promise<Element|null> {
69
70
  const {precomputedFeatures, imageAltText} = options;
70
71
  const resourceTreeModel = target.model(SDK.ResourceTreeModel.ResourceTreeModel);
71
72
  if (!resourceTreeModel) {
72
73
  return null;
73
74
  }
74
75
  let resource = resourceTreeModel.resourceForURL(originalImageURL);
75
- let imageURL: string = originalImageURL;
76
+ let imageURL = originalImageURL;
76
77
  if (!isImageResource(resource) && precomputedFeatures && precomputedFeatures.currentSrc) {
77
78
  imageURL = precomputedFeatures.currentSrc;
78
79
  resource = resourceTreeModel.resourceForURL(imageURL);
@@ -187,7 +188,11 @@ export class ImagePreview {
187
188
  return featuresObject;
188
189
 
189
190
  function features(this: HTMLImageElement): PrecomputedFeatures {
190
- return {renderedWidth: this.width, renderedHeight: this.height, currentSrc: this.currentSrc};
191
+ return {
192
+ renderedWidth: this.width,
193
+ renderedHeight: this.height,
194
+ currentSrc: this.currentSrc as Platform.DevToolsPath.UrlString,
195
+ };
191
196
  }
192
197
  }
193
198
 
@@ -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): 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';
@@ -498,7 +500,7 @@ export class Linkifier implements SDK.TargetManager.Observer {
498
500
  return element;
499
501
  }
500
502
 
501
- let linkText = text || Bindings.ResourceUtils.displayNameForURL(url);
503
+ let linkText = text || Bindings.ResourceUtils.displayNameForURL(url as Platform.DevToolsPath.UrlString);
502
504
  if (typeof lineNumber === 'number' && !text) {
503
505
  linkText += ':' + (lineNumber + 1);
504
506
  if (showColumnNumber && typeof columnNumber === 'number') {
@@ -713,12 +715,13 @@ export class Linkifier implements SDK.TargetManager.Observer {
713
715
  url = uiLocation.uiSourceCode.contentURL();
714
716
  } else if (info.url) {
715
717
  url = info.url;
716
- const uiSourceCode = Workspace.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(url) ||
718
+ const uiSourceCode =
719
+ Workspace.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(url as Platform.DevToolsPath.UrlString) ||
717
720
  Workspace.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(
718
- Common.ParsedURL.ParsedURL.urlWithoutHash(url));
721
+ Common.ParsedURL.ParsedURL.urlWithoutHash(url) as Platform.DevToolsPath.UrlString);
719
722
  uiLocation = uiSourceCode ? uiSourceCode.uiLocation(info.lineNumber || 0, info.columnNumber || 0) : null;
720
723
  }
721
- const resource = url ? Bindings.ResourceUtils.resourceForURL(url) : null;
724
+ const resource = url ? Bindings.ResourceUtils.resourceForURL(url as Platform.DevToolsPath.UrlString) : null;
722
725
  const contentProvider = uiLocation ? uiLocation.uiSourceCode : resource;
723
726
 
724
727
  const revealable = info.revealable || uiLocation || resource;
@@ -750,7 +753,6 @@ export class Linkifier implements SDK.TargetManager.Observer {
750
753
  }
751
754
  }
752
755
  if (resource || info.url) {
753
- // TODO(crbug.com/1253323): Cast to UrlString will be removed when migration to branded types is complete.
754
756
  result.push({
755
757
  section: 'reveal',
756
758
  title: UI.UIUtils.openLinkExternallyLabel(),
@@ -33,6 +33,7 @@
33
33
  white-space: nowrap;
34
34
  overflow: hidden;
35
35
  text-overflow: ellipsis;
36
+ user-select: text;
36
37
  }
37
38
 
38
39
  .report-url,
@@ -35,7 +35,7 @@
35
35
  display: flex;
36
36
  position: relative;
37
37
  flex-direction: column;
38
- contain: layout size style;
38
+ contain: size style;
39
39
  }
40
40
 
41
41
  .shadow-split-widget-sidebar {
@@ -335,6 +335,7 @@
335
335
  align-items: center;
336
336
  justify-content: center;
337
337
  margin-left: 3px;
338
+ flex-shrink: 0;
338
339
  }
339
340
 
340
341
  .-theme-with-dark-background .preview-icon,
@@ -269,7 +269,7 @@
269
269
  --color-input-text-disabled: rgba(128 134 139 / 70%);
270
270
  /* Colors for styling buttons */
271
271
  --color-button-outline-focus: rgb(138 180 248 / 75%);
272
- --color-button-primary-background-hovering: rgb(128 167 229 / 100%);
272
+ --color-button-primary-background-hovering: rgb(174 203 250 / 100%);
273
273
  --color-button-primary-background-pressed: rgb(210 227 252 / 100%);
274
274
  --color-button-primary-text: rgb(0 0 0);
275
275
  --color-button-secondary-background-hovering: rgb(138 180 248 / 15%);
@@ -167,7 +167,7 @@ be fixed to the right so it never goes out of the viewport even if other items
167
167
  push it. And the main menu button next to it that needs to make some space for
168
168
  it. */
169
169
  .toolbar-button.close-devtools {
170
- position: fixed;
170
+ position: absolute;
171
171
  right: 0;
172
172
  }
173
173
 
@@ -208,6 +208,22 @@ it. */
208
208
  --icon-color: var(--color-primary);
209
209
  }
210
210
 
211
+ .toolbar-state-on.toolbar-toggle-with-dot .toolbar-icon::after,
212
+ .toolbar-state-on.toolbar-toggle-with-dot .toolbar-text::after {
213
+ content: "";
214
+ position: absolute;
215
+ bottom: 2px;
216
+ background-color: var(--color-primary);
217
+ width: 4.5px;
218
+ height: 4.5px;
219
+ border: 2px solid var(--override-toolbar-background-color, --color-background);
220
+ border-radius: 50%;
221
+ }
222
+
223
+ .toolbar-state-on.toolbar-toggle-with-dot .toolbar-text::after {
224
+ right: 0;
225
+ }
226
+
211
227
  .toolbar-button.toolbar-state-on.toolbar-toggle-with-red-color .toolbar-glyph,
212
228
  .toolbar-button.toolbar-state-off.toolbar-default-with-red-color .toolbar-glyph {
213
229
  background-color: var(--color-accent-red) !important; /* stylelint-disable-line declaration-no-important */
@@ -2,6 +2,8 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
+ import * as Platform from '../../../core/platform/platform.js';
6
+
5
7
  // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
6
8
  // eslint-disable-next-line @typescript-eslint/naming-convention
7
9
  function WidgetfocusWidgetForNode(node: Node|null): void {
@@ -50,7 +52,7 @@ function XWidgetfocusWidgetForNode(node: Node|null): void {
50
52
  export function focusChanged(event: Event): void {
51
53
  const target = event.target as HTMLElement;
52
54
  const document = target ? target.ownerDocument : null;
53
- const element = document ? document.deepActiveElement() : null;
55
+ const element = document ? Platform.DOMUtilities.deepActiveElement(document) : null;
54
56
  WidgetfocusWidgetForNode(element);
55
57
  XWidgetfocusWidgetForNode(element);
56
58
  }
@@ -38,6 +38,15 @@ module.exports = {
38
38
  'selector': 'parameter',
39
39
  'format': ['camelCase'],
40
40
  'leadingUnderscore': 'allow',
41
+ },
42
+ {
43
+ // Ignore type properties that require quotes
44
+ 'selector': [
45
+ 'typeProperty',
46
+ 'enumMember'
47
+ ],
48
+ 'format': null,
49
+ 'modifiers': ['requiresQuotes']
41
50
  }
42
51
  ]
43
52
  }
package/package.json CHANGED
@@ -28,31 +28,31 @@
28
28
  "build": "autoninja -C out/Default",
29
29
  "build-release": "autoninja -C out/Release",
30
30
  "check": "npm run check-lint && npm run check-loc",
31
- "check-external-links": "third_party/node/node.py --output scripts/check_external_links.js",
32
- "check-lint": "third_party/node/node.py --output scripts/test/run_lint_check_js.mjs && third_party/node/node.py --output scripts/test/run_lint_check_css.js",
33
- "check-lint-css": "third_party/node/node.py --output scripts/test/run_lint_check_css.js",
34
- "collect-strings": "third_party/node/node.py --output third_party/i18n/collect-strings.js front_end",
35
- "components-server": "third_party/node/node.py --output scripts/component_server/server.js",
31
+ "check-external-links": "vpython third_party/node/node.py --output scripts/check_external_links.js",
32
+ "check-lint": "vpython third_party/node/node.py --output scripts/test/run_lint_check_js.mjs && vpython third_party/node/node.py --output scripts/test/run_lint_check_css.js",
33
+ "check-lint-css": "vpython third_party/node/node.py --output scripts/test/run_lint_check_css.js",
34
+ "collect-strings": "vpython third_party/node/node.py --output third_party/i18n/collect-strings.js front_end",
35
+ "components-server": "vpython third_party/node/node.py --output scripts/component_server/server.js",
36
36
  "debug-e2etest": "DEBUG_TEST=1 npm run e2etest",
37
37
  "debug-interactionstest": "DEBUG_TEST=1 npm run interactionstest",
38
- "debug-test": "third_party/node/node.py --output scripts/npm_test.js --debug-devtools",
38
+ "debug-test": "vpython third_party/node/node.py --output scripts/npm_test.js --debug-devtools",
39
39
  "debug-unittest": "DEBUG_TEST=1 npm run unittest",
40
- "e2etest": "third_party/node/node.py --output scripts/test/run_test_suite.js --config=test/e2e/test-runner-config.json",
41
- "eslint-test": "third_party/node/node.py --output node_modules/mocha/bin/mocha \"./scripts/eslint_rules/tests/*_test.js\"",
42
- "build-test": "third_party/node/node.py --output node_modules/mocha/bin/mocha \"./scripts/build/tests/*_test.js\"",
43
- "generate-dark-mode-styles": "third_party/node/node.py --output scripts/dark_mode/generate_dark_theme_sheet.js",
40
+ "e2etest": "vpython third_party/node/node.py --output scripts/test/run_test_suite.js --config=test/e2e/test-runner-config.json",
41
+ "eslint-test": "vpython third_party/node/node.py --output node_modules/mocha/bin/mocha \"./scripts/eslint_rules/tests/*_test.js\"",
42
+ "build-test": "vpython third_party/node/node.py --output node_modules/mocha/bin/mocha \"./scripts/build/tests/*_test.js\"",
43
+ "generate-dark-mode-styles": "vpython third_party/node/node.py --output scripts/dark_mode/generate_dark_theme_sheet.js",
44
44
  "generate-protocol-resources": "scripts/deps/generate_protocol_resources.py && git cl format --js",
45
45
  "install-deps": "scripts/deps/manage_node_deps.py",
46
- "interactionstest": "third_party/node/node.py --output scripts/test/run_test_suite.js --config=test/interactions/test-runner-config.json",
47
- "perf": "third_party/node/node.py --output scripts/test/run_test_suite.js --config=test/perf/test-runner-config.json",
46
+ "interactionstest": "vpython third_party/node/node.py --output scripts/test/run_test_suite.js --config=test/interactions/test-runner-config.json",
47
+ "perf": "vpython third_party/node/node.py --output scripts/test/run_test_suite.js --config=test/perf/test-runner-config.json",
48
48
  "setup-dtrun": "cd scripts/devtools_run && npm link",
49
49
  "start": "node -e 'console.log(`This script has been removed in favor of --custom-devtools-frontend. For more information, see https://docs.google.com/document/d/1COgCBWWuTh2o-Zbp6h_z0h0LtlJaimaEDsION4RZPxc/edit?usp=sharing`);'",
50
- "stylelint-test": "third_party/node/node.py --output ./node_modules/.bin/mocha \"./scripts/stylelint_rules/tests/*_test.js\"",
51
- "test": "third_party/node/node.py --output scripts/npm_test.js",
52
- "test-local": "third_party/node/node.py --output scripts/npm_test.js --layout-tests-directory=test/webtests/",
50
+ "stylelint-test": "vpython third_party/node/node.py --output ./node_modules/.bin/mocha \"./scripts/stylelint_rules/tests/*_test.js\"",
51
+ "test": "vpython third_party/node/node.py --output scripts/npm_test.js",
52
+ "test-local": "vpython third_party/node/node.py --output scripts/npm_test.js --layout-tests-directory=test/webtests/",
53
53
  "ts_library-test": "./third_party/typescript/tests/verify_ts_libary.sh",
54
54
  "unittest": "scripts/test/run_unittests.py --no-text-coverage",
55
- "watch": "third_party/node/node.py --output scripts/watch_build.js"
55
+ "watch": "vpython third_party/node/node.py --output scripts/watch_build.js"
56
56
  },
57
- "version": "1.0.982087"
57
+ "version": "1.0.995227"
58
58
  }
@@ -54,6 +54,10 @@ module.exports = {
54
54
  return false;
55
55
  }
56
56
 
57
+ if (!node.expression.callee) {
58
+ return false;
59
+ }
60
+
57
61
  if (node.expression.callee.property) {
58
62
  // matches ComponentHelpers.CustomElements.defineComponent()
59
63
  return node.expression.callee.property.name === 'defineComponent';
@@ -94,6 +94,7 @@ function checkStarImport(context, node, importPath, importPathForErrorMessage, i
94
94
  // Therefore, they are allowed to import using a same-namespace star-import.
95
95
  const importingFileIsEntrypoint =
96
96
  importingFileName.endsWith('-entrypoint.ts') || importingFileName.endsWith('-meta.ts');
97
+
97
98
  if (!importingFileIsEntrypoint) {
98
99
  context.report({
99
100
  node,
@@ -211,6 +212,11 @@ module.exports = {
211
212
  */
212
213
  return;
213
214
  }
215
+
216
+ if (importPath.endsWith('.css.js')) {
217
+ // We allow files to import CSS files within the same module.
218
+ return;
219
+ }
214
220
  context.report({
215
221
  node,
216
222
  message:
@@ -0,0 +1,121 @@
1
+ // Copyright 2020 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ 'use strict';
5
+
6
+ const {isLitHtmlTemplateCall} = require('./utils.js');
7
+ const path = require('path');
8
+
9
+ const FRONT_END_DIRECTORY = path.join(__dirname, '..', '..', '..', 'front_end');
10
+
11
+ // NOTE: the actual file is input.ts, but for the sake of importing we want
12
+ // input.js as that's what the import statement would reference.
13
+ const COMMON_INPUT_STYLES = path.join(FRONT_END_DIRECTORY, 'ui', 'components', 'input', 'input.js');
14
+
15
+ module.exports = {
16
+ meta: {
17
+ type: 'problem',
18
+
19
+ docs: {
20
+ description: 'Ensure common checkbox styles are imported in Lit components',
21
+ category: 'Possible Errors',
22
+ },
23
+ fixable: 'code',
24
+ messages: {
25
+ missingCheckboxStylesImport:
26
+ 'When rendering a checkbox, ensure the common checkbox styles are imported from components/input/input.ts.',
27
+ missingCheckboxStylesAdoption:
28
+ 'When rendering a checkbox, ensure the common checkbox styles are adopted into the component shadow root.',
29
+ },
30
+ schema: [] // no options
31
+ },
32
+ create: function(context) {
33
+ let foundInputStylesImport = false;
34
+ let inputStylesImportedName = null;
35
+ let adoptedStyleSheetsCallNode = null;
36
+ const litCheckboxElements = new Set();
37
+ return {
38
+ TaggedTemplateExpression(node) {
39
+ if (!isLitHtmlTemplateCall(node)) {
40
+ return;
41
+ }
42
+
43
+ const litNodesContainingCheckbox = node.quasi.quasis.filter(element => {
44
+ return element.value.raw.includes('type="checkbox"');
45
+ });
46
+ for (const node of litNodesContainingCheckbox) {
47
+ // We store the node so we can use it as the basis for the ESLint error later.
48
+ litCheckboxElements.add(node);
49
+ }
50
+ },
51
+
52
+ ImportDeclaration(node) {
53
+ if (foundInputStylesImport) {
54
+ return;
55
+ }
56
+
57
+ // Get the absolute path , so we can compare it to COMMON_INPUT_STYLES;
58
+ const fullImportPath = path.resolve(context.getFilename(), node.source.value);
59
+ foundInputStylesImport = fullImportPath === COMMON_INPUT_STYLES;
60
+ if (foundInputStylesImport) {
61
+ inputStylesImportedName = node.specifiers[0].local.name;
62
+ }
63
+ },
64
+
65
+ 'AssignmentExpression[left.type="MemberExpression"][left.property.name="adoptedStyleSheets"]'(node) {
66
+ adoptedStyleSheetsCallNode = node;
67
+ },
68
+
69
+ 'Program:exit'() {
70
+ if (litCheckboxElements.size === 0) {
71
+ // No checkboxes to check, so we are done.
72
+ return;
73
+ }
74
+ if (!foundInputStylesImport) {
75
+ for (const checkbox of litCheckboxElements) {
76
+ context.report({
77
+ node: checkbox,
78
+ messageId: 'missingCheckboxStylesImport',
79
+ });
80
+ }
81
+ return;
82
+ }
83
+
84
+ if (!adoptedStyleSheetsCallNode) {
85
+ for (const checkbox of litCheckboxElements) {
86
+ context.report({
87
+ node: checkbox,
88
+ messageId: 'missingCheckboxStylesAdoption',
89
+ });
90
+ }
91
+ return;
92
+ }
93
+
94
+ const inputCheckboxStylesAdoptionReference = adoptedStyleSheetsCallNode.right.elements.find(elem => {
95
+ // Ensure we find [Input.checkboxStyles] in the adopted stylesheets.
96
+ if (elem.type !== 'MemberExpression') {
97
+ return false;
98
+ }
99
+
100
+ // Check that if we imported the styles as `Input`, that the reference here matches.
101
+ if (elem.object.name !== inputStylesImportedName) {
102
+ return false;
103
+ }
104
+
105
+ if (elem.property.name !== 'checkboxStyles') {
106
+ return false;
107
+ }
108
+
109
+ return true;
110
+ });
111
+
112
+ if (!inputCheckboxStylesAdoptionReference) {
113
+ context.report({
114
+ node: adoptedStyleSheetsCallNode,
115
+ messageId: 'missingCheckboxStylesAdoption',
116
+ });
117
+ }
118
+ }
119
+ };
120
+ }
121
+ };
@@ -124,6 +124,10 @@ ruleTester.run('es_modules_import', rule, {
124
124
  code: 'import * as FrontendHelpers from \'../../../test/unittests/front_end/helpers/EnvironmentHelpers.js\'',
125
125
  filename: 'front_end/ui/components/docs/data_grid/basic.ts',
126
126
  },
127
+ {
128
+ code: 'import checkboxStyles from \'./checkbox.css.js\';',
129
+ filename: 'front_end/ui/components/input/input.ts',
130
+ }
127
131
  ],
128
132
 
129
133
  invalid: [
@@ -248,5 +252,13 @@ ruleTester.run('es_modules_import', rule, {
248
252
  'Incorrect cross-namespace import: "../third_party/marked/package/lib/marked.esm.js". Use "import * as Namespace from \'../namespace/namespace.js\';" instead. If the third_party dependency does not expose a single entrypoint, update es_modules_import.js to make it exempt.'
249
253
  }],
250
254
  },
255
+ {
256
+ code: 'import checkboxStyles from \'../../../input/checkbox.css.js\';',
257
+ filename: 'front_end/ui/panels/foo/FooPanel.ts',
258
+ errors: [{
259
+ message:
260
+ 'Incorrect cross-namespace import: "../../../input/checkbox.css.js". Use "import * as Namespace from \'../namespace/namespace.js\';" instead.'
261
+ }],
262
+ }
251
263
  ]
252
264
  });
@@ -0,0 +1,127 @@
1
+ // Copyright 2020 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ 'use strict';
5
+
6
+ const rule = require('../lib/inject_checkbox_styles.js');
7
+ const ruleTester = new (require('eslint').RuleTester)({
8
+ parserOptions: {ecmaVersion: 9, sourceType: 'module'},
9
+ parser: require.resolve('@typescript-eslint/parser'),
10
+ });
11
+
12
+ ruleTester.run('inject_checkbox_styles', rule, {
13
+ valid: [
14
+ {
15
+ code: `import * as Input from '../../input/input.js';
16
+ export class Test extends HTMLElement {
17
+ private readonly shadow = this.attachShadow({mode: 'open'});
18
+
19
+ connectedCallback() {
20
+ this.shadow.adoptedStyleSheets = [Input.checkboxStyles];
21
+ }
22
+
23
+ render() {
24
+ LitHtml.render(LitHtml.html\`<input type="checkbox" />\`, this.shadow, {host:this});
25
+ }
26
+ }`,
27
+ filename: 'front_end/ui/components/datagrid/datagrid.ts',
28
+ },
29
+ // Nothing to do with checkboxes, so this rule should not apply.
30
+ {
31
+ code: `import * as Input from '../../input/input.js';
32
+ import {Foo} from './bar.js';
33
+
34
+ export class Test extends HTMLElement {
35
+ private readonly shadow = this.attachShadow({mode: 'open'});
36
+
37
+ connectedCallback() {
38
+ this.shadow.adoptedStyleSheets = [Input.textStyles, Foo.somethingElse];
39
+ }
40
+
41
+ render() {
42
+ LitHtml.render(LitHtml.html\`<input type="text" />\`, this.shadow, {host:this});
43
+ }
44
+ }`,
45
+ filename: 'front_end/ui/components/datagrid/datagrid.ts',
46
+ },
47
+ ],
48
+ invalid: [
49
+ // No styles imported or adopted.
50
+ {
51
+ code: `export class Test extends HTMLElement {
52
+ private readonly shadow = this.attachShadow({mode: 'open'});
53
+
54
+ render() {
55
+ LitHtml.render(LitHtml.html\`<input type="checkbox" />\`, this.shadow, {host:this});
56
+ }
57
+ }`,
58
+ filename: 'front_end/components/datagrid.ts',
59
+ errors: [{messageId: 'missingCheckboxStylesImport'}],
60
+ },
61
+
62
+ // Ensure we get one error per checkbox found in the LitHtml call.
63
+ {
64
+ code: `export class Test extends HTMLElement {
65
+ private readonly shadow = this.attachShadow({mode: 'open'});
66
+
67
+ render() {
68
+ LitHtml.render(LitHtml.html\`<div><input type="checkbox" /><input value=\${this.foo} type="checkbox" /></div>\`, this.shadow, {host:this});
69
+ }
70
+ }`,
71
+ filename: 'front_end/components/datagrid.ts',
72
+ errors: [{messageId: 'missingCheckboxStylesImport'}, {messageId: 'missingCheckboxStylesImport'}],
73
+ },
74
+
75
+ // Importing not the right styles.
76
+ {
77
+ code: `import * as NotInputStyles from '../../wrong-import-path/input/input.js';
78
+ export class Test extends HTMLElement {
79
+ private readonly shadow = this.attachShadow({mode: 'open'});
80
+
81
+ connectedCallback() {
82
+ this.shadow.adoptedStylesheets = [NotInputStyles.NotCheckboxStyles];
83
+ }
84
+
85
+ render() {
86
+ LitHtml.render(LitHtml.html\`<input type="checkbox" />\`, this.shadow, {host:this});
87
+ }
88
+ }`,
89
+ filename: 'front_end/ui/components/datagrid/datagrid.ts',
90
+ errors: [{messageId: 'missingCheckboxStylesImport'}],
91
+ },
92
+
93
+ // No adopting of the styles.
94
+ {
95
+ code: `import * as Input from '../../input/input.js';
96
+ export class Test extends HTMLElement {
97
+ private readonly shadow = this.attachShadow({mode: 'open'});
98
+
99
+ render() {
100
+ LitHtml.render(LitHtml.html\`<input type="checkbox" />\`, this.shadow, {host:this});
101
+ }
102
+ }`,
103
+ filename: 'front_end/ui/components/datagrid/datagrid.ts',
104
+ errors: [{messageId: 'missingCheckboxStylesAdoption'}],
105
+ },
106
+
107
+ // Adopting the wrong styles
108
+ {
109
+ code: `import * as Input from '../../input/input.js';
110
+ import {fooStyles} from './who-knows.js';
111
+
112
+ export class Test extends HTMLElement {
113
+ private readonly shadow = this.attachShadow({mode: 'open'});
114
+
115
+ connectedCallback() {
116
+ this.shadow.adoptedStyleSheets = [fooStyles];
117
+ }
118
+
119
+ render() {
120
+ LitHtml.render(LitHtml.html\`<input type="checkbox" />\`, this.shadow, {host:this});
121
+ }
122
+ }`,
123
+ filename: 'front_end/ui/components/datagrid/datagrid.ts',
124
+ errors: [{messageId: 'missingCheckboxStylesAdoption'}],
125
+ },
126
+ ]
127
+ });
@@ -1,4 +0,0 @@
1
- # Ensure the event source trigger data doesn't exceed the 1-bit limit
2
-
3
- The `event-source-trigger-data` query parameter of an attribution redirect was truncated to the lowest 1 bit, because it was exceeding the limit.
4
- Replace the `event-source-trigger-data` parameter with an integer that respects the 1-bit limit, that is a number between 0 and 1.
@@ -1,4 +0,0 @@
1
- # Ensure the trigger data doesn't exceed the 3-bit limit
2
-
3
- The `trigger-data` query parameter of an attribution redirect was truncated to the lowest 3 bits, because it was exceeding the limit.
4
- Replace the `trigger-data` parameter with an integer that respects the 3-bit limit, that is a number between 0 and 7.
@@ -1,8 +0,0 @@
1
- # Ensure the "trigger-data" query parameter for an attribution redirect is a valid number
2
-
3
- The data associated with an attribution was defaulted to `0`.
4
- This happens if the `trigger-data` query parameter provided in the `.well-known` redirect
5
- is not a valid integer.
6
-
7
- Note that even if a valid integer is provided, only the lowest 3-bits of the `trigger-data` query parameter
8
- are recorded, with a 5% chance of the 3-bits being noised.