chrome-devtools-frontend 1.0.1006211 → 1.0.1007307

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 (125) hide show
  1. package/config/gni/devtools_grd_files.gni +2 -0
  2. package/config/gni/devtools_image_files.gni +2 -0
  3. package/front_end/Images/src/ic_sources_authored.svg +5 -0
  4. package/front_end/Images/src/ic_sources_deployed.svg +5 -0
  5. package/front_end/core/i18n/locales/af.json +202 -43
  6. package/front_end/core/i18n/locales/am.json +201 -42
  7. package/front_end/core/i18n/locales/ar.json +201 -42
  8. package/front_end/core/i18n/locales/as.json +201 -42
  9. package/front_end/core/i18n/locales/az.json +201 -42
  10. package/front_end/core/i18n/locales/be.json +201 -42
  11. package/front_end/core/i18n/locales/bg.json +201 -42
  12. package/front_end/core/i18n/locales/bn.json +201 -42
  13. package/front_end/core/i18n/locales/bs.json +201 -42
  14. package/front_end/core/i18n/locales/ca.json +204 -45
  15. package/front_end/core/i18n/locales/cs.json +201 -42
  16. package/front_end/core/i18n/locales/cy.json +201 -42
  17. package/front_end/core/i18n/locales/da.json +201 -42
  18. package/front_end/core/i18n/locales/de.json +201 -42
  19. package/front_end/core/i18n/locales/el.json +201 -42
  20. package/front_end/core/i18n/locales/en-GB.json +199 -40
  21. package/front_end/core/i18n/locales/en-US.json +43 -1
  22. package/front_end/core/i18n/locales/en-XL.json +43 -1
  23. package/front_end/core/i18n/locales/es-419.json +201 -42
  24. package/front_end/core/i18n/locales/es.json +201 -42
  25. package/front_end/core/i18n/locales/et.json +201 -42
  26. package/front_end/core/i18n/locales/eu.json +202 -43
  27. package/front_end/core/i18n/locales/fa.json +201 -42
  28. package/front_end/core/i18n/locales/fi.json +201 -42
  29. package/front_end/core/i18n/locales/fil.json +201 -42
  30. package/front_end/core/i18n/locales/fr-CA.json +201 -42
  31. package/front_end/core/i18n/locales/fr.json +203 -44
  32. package/front_end/core/i18n/locales/gl.json +203 -44
  33. package/front_end/core/i18n/locales/gu.json +201 -42
  34. package/front_end/core/i18n/locales/he.json +201 -42
  35. package/front_end/core/i18n/locales/hi.json +201 -42
  36. package/front_end/core/i18n/locales/hr.json +201 -42
  37. package/front_end/core/i18n/locales/hu.json +201 -42
  38. package/front_end/core/i18n/locales/hy.json +201 -42
  39. package/front_end/core/i18n/locales/id.json +201 -42
  40. package/front_end/core/i18n/locales/is.json +201 -42
  41. package/front_end/core/i18n/locales/it.json +203 -44
  42. package/front_end/core/i18n/locales/ja.json +203 -44
  43. package/front_end/core/i18n/locales/ka.json +201 -42
  44. package/front_end/core/i18n/locales/kk.json +201 -42
  45. package/front_end/core/i18n/locales/km.json +201 -42
  46. package/front_end/core/i18n/locales/kn.json +201 -42
  47. package/front_end/core/i18n/locales/ko.json +201 -42
  48. package/front_end/core/i18n/locales/ky.json +201 -42
  49. package/front_end/core/i18n/locales/lo.json +201 -42
  50. package/front_end/core/i18n/locales/lt.json +201 -42
  51. package/front_end/core/i18n/locales/lv.json +201 -42
  52. package/front_end/core/i18n/locales/mk.json +201 -42
  53. package/front_end/core/i18n/locales/ml.json +201 -42
  54. package/front_end/core/i18n/locales/mn.json +201 -42
  55. package/front_end/core/i18n/locales/mr.json +201 -42
  56. package/front_end/core/i18n/locales/ms.json +201 -42
  57. package/front_end/core/i18n/locales/my.json +201 -42
  58. package/front_end/core/i18n/locales/ne.json +201 -42
  59. package/front_end/core/i18n/locales/nl.json +201 -42
  60. package/front_end/core/i18n/locales/no.json +201 -42
  61. package/front_end/core/i18n/locales/or.json +201 -42
  62. package/front_end/core/i18n/locales/pa.json +201 -42
  63. package/front_end/core/i18n/locales/pl.json +201 -42
  64. package/front_end/core/i18n/locales/pt-PT.json +201 -42
  65. package/front_end/core/i18n/locales/pt.json +201 -42
  66. package/front_end/core/i18n/locales/ro.json +201 -42
  67. package/front_end/core/i18n/locales/ru.json +203 -44
  68. package/front_end/core/i18n/locales/si.json +201 -42
  69. package/front_end/core/i18n/locales/sk.json +201 -42
  70. package/front_end/core/i18n/locales/sl.json +201 -42
  71. package/front_end/core/i18n/locales/sq.json +201 -42
  72. package/front_end/core/i18n/locales/sr-Latn.json +201 -42
  73. package/front_end/core/i18n/locales/sr.json +201 -42
  74. package/front_end/core/i18n/locales/sv.json +201 -42
  75. package/front_end/core/i18n/locales/sw.json +201 -42
  76. package/front_end/core/i18n/locales/ta.json +201 -42
  77. package/front_end/core/i18n/locales/te.json +202 -43
  78. package/front_end/core/i18n/locales/th.json +201 -42
  79. package/front_end/core/i18n/locales/tr.json +201 -42
  80. package/front_end/core/i18n/locales/uk.json +201 -42
  81. package/front_end/core/i18n/locales/ur.json +201 -42
  82. package/front_end/core/i18n/locales/uz.json +201 -42
  83. package/front_end/core/i18n/locales/vi.json +201 -42
  84. package/front_end/core/i18n/locales/zh-HK.json +201 -42
  85. package/front_end/core/i18n/locales/zh-TW.json +201 -42
  86. package/front_end/core/i18n/locales/zh.json +201 -42
  87. package/front_end/core/i18n/locales/zu.json +201 -42
  88. package/front_end/core/sdk/CPUThrottlingManager.ts +54 -0
  89. package/front_end/core/sdk/DebuggerModel.ts +12 -3
  90. package/front_end/core/sdk/EmulationModel.ts +7 -0
  91. package/front_end/core/sdk/NetworkManager.ts +6 -2
  92. package/front_end/devtools_compatibility.js +1 -0
  93. package/front_end/entrypoints/formatter_worker/FormatterActions.ts +1 -0
  94. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +12 -10
  95. package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +4 -0
  96. package/front_end/generated/InspectorBackendCommands.js +3 -0
  97. package/front_end/generated/protocol-mapping.d.ts +2 -0
  98. package/front_end/generated/protocol-proxy-api.d.ts +3 -0
  99. package/front_end/generated/protocol.ts +7 -0
  100. package/front_end/models/formatter/FormatterWorkerPool.ts +6 -0
  101. package/front_end/models/issues_manager/DeprecationIssue.ts +1 -1
  102. package/front_end/models/javascript_metadata/JavaScriptMetadata.ts +13 -20
  103. package/front_end/models/javascript_metadata/NativeFunctions.js +1237 -3962
  104. package/front_end/models/source_map_scopes/NamesResolver.ts +206 -73
  105. package/front_end/models/workspace/UISourceCode.ts +7 -0
  106. package/front_end/panels/accessibility/axBreadcrumbs.css +2 -2
  107. package/front_end/panels/application/components/BackForwardCacheView.ts +16 -0
  108. package/front_end/panels/lighthouse/LighthouseStartView.ts +7 -5
  109. package/front_end/panels/lighthouse/LighthouseStartViewFR.ts +70 -49
  110. package/front_end/panels/mobile_throttling/ThrottlingManager.ts +113 -4
  111. package/front_end/panels/network/components/RequestHeadersView.css +31 -3
  112. package/front_end/panels/network/components/RequestHeadersView.ts +126 -3
  113. package/front_end/panels/sources/NavigatorView.ts +141 -40
  114. package/front_end/panels/sources/SourcesPanel.ts +8 -0
  115. package/front_end/panels/sources/TabbedEditorContainer.ts +2 -2
  116. package/front_end/panels/sources/sources-meta.ts +6 -0
  117. package/front_end/panels/timeline/TimelinePanel.ts +27 -4
  118. package/front_end/panels/timeline/timelinePanel.css +8 -0
  119. package/front_end/ui/components/text_editor/javascript.ts +12 -14
  120. package/front_end/ui/legacy/Treeoutline.ts +5 -2
  121. package/package.json +1 -1
  122. package/scripts/hosted_mode/server.js +14 -1
  123. package/scripts/javascript_natives/helpers.js +26 -7
  124. package/scripts/javascript_natives/index.js +4 -3
  125. package/scripts/javascript_natives/tests.js +2 -2
@@ -1004,6 +1004,9 @@
1004
1004
  "entrypoints/inspector_main/inspector_main-meta.ts | showRendering": {
1005
1005
  "message": "Bonisa Ukunikezela"
1006
1006
  },
1007
+ "entrypoints/inspector_main/inspector_main-meta.ts | toggleCssPrefersColorSchemeMedia": {
1008
+ "message": "Toggle forces CSS prefers-color-scheme color"
1009
+ },
1007
1010
  "entrypoints/inspector_main/inspector_main-meta.ts | visionDeficiency": {
1008
1011
  "message": "ukungaboni kahle"
1009
1012
  },
@@ -1352,12 +1355,153 @@
1352
1355
  "models/issues_manager/CrossOriginEmbedderPolicyIssue.ts | samesiteAndSameorigin": {
1353
1356
  "message": "Indawo efanayo kanye Nomthombo ofanayo"
1354
1357
  },
1358
+ "models/issues_manager/DeprecationIssue.ts | authorizationCoveredByWildcard": {
1359
+ "message": "Authorization will not be covered by the wildcard symbol (*) in CORS Access-Control-Allow-Headers handling."
1360
+ },
1361
+ "models/issues_manager/DeprecationIssue.ts | canRequestURLHTTPContainingNewline": {
1362
+ "message": "Resource requests whose URLs contained both removed whitespace \\(n|r|t) characters and less-than characters (<) are blocked. Please remove newlines and encode less-than characters from places like element attribute values in order to load these resources."
1363
+ },
1364
+ "models/issues_manager/DeprecationIssue.ts | chromeLoadTimesConnectionInfo": {
1365
+ "message": "chrome.loadTimes() is deprecated, instead use standardized API: Navigation Timing 2."
1366
+ },
1367
+ "models/issues_manager/DeprecationIssue.ts | chromeLoadTimesFirstPaintAfterLoadTime": {
1368
+ "message": "chrome.loadTimes() is deprecated, instead use standardized API: Paint Timing."
1369
+ },
1370
+ "models/issues_manager/DeprecationIssue.ts | chromeLoadTimesWasAlternateProtocolAvailable": {
1371
+ "message": "chrome.loadTimes() is deprecated, instead use standardized API: nextHopProtocol in Navigation Timing 2."
1372
+ },
1373
+ "models/issues_manager/DeprecationIssue.ts | cookieWithTruncatingChar": {
1374
+ "message": "Cookies containing a \\(0|r|n) character will be rejected instead of truncated."
1375
+ },
1376
+ "models/issues_manager/DeprecationIssue.ts | crossOriginAccessBasedOnDocumentDomain": {
1377
+ "message": "Relaxing the same-origin policy by setting document.domain is deprecated, and will be disabled by default. This deprecation warning is for a cross-origin access that was enabled by setting document.domain."
1378
+ },
1379
+ "models/issues_manager/DeprecationIssue.ts | crossOriginWindowApi": {
1380
+ "message": "Triggering {PH1} from cross origin iframes has been deprecated and will be removed in the future."
1381
+ },
1382
+ "models/issues_manager/DeprecationIssue.ts | cssSelectorInternalMediaControlsOverlayCastButton": {
1383
+ "message": "The disableRemotePlayback attribute should be used in order to disable the default Cast integration instead of using -internal-media-controls-overlay-cast-button selector."
1384
+ },
1385
+ "models/issues_manager/DeprecationIssue.ts | customCursorIntersectsViewport": {
1386
+ "message": "Custom cursors with size greater than 32x32 DIP intersecting native UI is deprecated and will be removed."
1387
+ },
1388
+ "models/issues_manager/DeprecationIssue.ts | deprecatedWithReplacement": {
1389
+ "message": "{PH1} is deprecated. Please use {PH2} instead."
1390
+ },
1355
1391
  "models/issues_manager/DeprecationIssue.ts | deprecationExample": {
1356
1392
  "message": "Lesi yisibonelo somlayezo ohunyushiwe wenkinga yokuhoxisa."
1357
1393
  },
1394
+ "models/issues_manager/DeprecationIssue.ts | documentDomainSettingWithoutOriginAgentClusterHeader": {
1395
+ "message": "Relaxing the same-origin policy by setting document.domain is deprecated, and will be disabled by default. To continue using this feature, please opt-out of origin-keyed agent clusters by sending an Origin-Agent-Cluster: ?0 header along with the HTTP response for the document and frames. See https://developer.chrome.com/blog/immutable-document-domain/ for more details."
1396
+ },
1397
+ "models/issues_manager/DeprecationIssue.ts | eventPath": {
1398
+ "message": "Event.path is deprecated and will be removed. Please use Event.composedPath() instead."
1399
+ },
1400
+ "models/issues_manager/DeprecationIssue.ts | feature": {
1401
+ "message": "Hlola ikhasi lesimo sesakhi ukuze uthole imininingwane eyengeziwe."
1402
+ },
1403
+ "models/issues_manager/DeprecationIssue.ts | geolocationInsecureOrigin": {
1404
+ "message": "getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
1405
+ },
1406
+ "models/issues_manager/DeprecationIssue.ts | geolocationInsecureOriginDeprecatedNotRemoved": {
1407
+ "message": "getCurrentPosition() and watchPosition() are deprecated on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
1408
+ },
1409
+ "models/issues_manager/DeprecationIssue.ts | getUserMediaInsecureOrigin": {
1410
+ "message": "getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
1411
+ },
1412
+ "models/issues_manager/DeprecationIssue.ts | hostCandidateAttributeGetter": {
1413
+ "message": "RTCPeerConnectionIceErrorEvent.hostCandidate is deprecated. Please use RTCPeerConnectionIceErrorEvent.address or RTCPeerConnectionIceErrorEvent.port instead."
1414
+ },
1415
+ "models/issues_manager/DeprecationIssue.ts | insecurePrivateNetworkSubresourceRequest": {
1416
+ "message": "The website requested a subresource from a network that it could only access because of its users' privileged network position. These requests expose non-public devices and servers to the internet, increasing the risk of a cross-site request forgery (CSRF) attack, and/or information leakage. To mitigate these risks, Chrome deprecates requests to non-public subresources when initiated from non-secure contexts, and will start blocking them."
1417
+ },
1418
+ "models/issues_manager/DeprecationIssue.ts | legacyConstraintGoogIPv6": {
1419
+ "message": "IPv6 is enabled-by-default and the ability to disable it using googIPv6 will soon be removed. Please stop using this legacy constraint."
1420
+ },
1421
+ "models/issues_manager/DeprecationIssue.ts | localCSSFileExtensionRejected": {
1422
+ "message": "CSS cannot be loaded from file: URLs unless they end in a .css file extension."
1423
+ },
1424
+ "models/issues_manager/DeprecationIssue.ts | mediaElementAudioSourceNode": {
1425
+ "message": "Creating a MediaElementAudioSourceNode on an OfflineAudioContext is deprecated and will be removed."
1426
+ },
1427
+ "models/issues_manager/DeprecationIssue.ts | mediaSourceAbortRemove": {
1428
+ "message": "Using SourceBuffer.abort() to abort remove()'s asynchronous range removal is deprecated due to specification change. Support will be removed in the future. You should instead await updateend. abort() is intended to only abort an asynchronous media append or reset parser state."
1429
+ },
1430
+ "models/issues_manager/DeprecationIssue.ts | mediaSourceDurationTruncatingBuffered": {
1431
+ "message": "Setting MediaSource.duration below the highest presentation timestamp of any buffered coded frames is deprecated due to specification change. Support for implicit removal of truncated buffered media will be removed in the future. You should instead perform explicit remove(newDuration, oldDuration) on all sourceBuffers, where newDuration < oldDuration."
1432
+ },
1433
+ "models/issues_manager/DeprecationIssue.ts | milestone": {
1434
+ "message": "Lolu shintsho luzoqala ukusebenza ngengqophamlando engu-{milestone}."
1435
+ },
1436
+ "models/issues_manager/DeprecationIssue.ts | noSysexWebMIDIWithoutPermission": {
1437
+ "message": "Web MIDI will ask a permission to use even if the sysex is not specified in the MIDIOptions."
1438
+ },
1439
+ "models/issues_manager/DeprecationIssue.ts | notificationInsecureOrigin": {
1440
+ "message": "The Notification API may no longer be used from insecure origins. You should consider switching your application to a secure origin, such as HTTPS. See https://goo.gle/chrome-insecure-origins for more details."
1441
+ },
1442
+ "models/issues_manager/DeprecationIssue.ts | notificationPermissionRequestedIframe": {
1443
+ "message": "Permission for the Notification API may no longer be requested from a cross-origin iframe. You should consider requesting permission from a top-level frame or opening a new window instead."
1444
+ },
1445
+ "models/issues_manager/DeprecationIssue.ts | obsoleteWebRtcCipherSuite": {
1446
+ "message": "Your partner is negotiating an obsolete (D)TLS version. Please check with your partner to have this fixed."
1447
+ },
1448
+ "models/issues_manager/DeprecationIssue.ts | paymentRequestBasicCard": {
1449
+ "message": "The basic-card payment method is deprecated and will be removed."
1450
+ },
1451
+ "models/issues_manager/DeprecationIssue.ts | paymentRequestShowWithoutGesture": {
1452
+ "message": "Calling PaymentRequest.show() without user activation is deprecated and will be removed."
1453
+ },
1454
+ "models/issues_manager/DeprecationIssue.ts | pictureSourceSrc": {
1455
+ "message": "<source src> with a <picture> parent is invalid and therefore ignored. Please use <source srcset> instead."
1456
+ },
1457
+ "models/issues_manager/DeprecationIssue.ts | prefixedStorageInfo": {
1458
+ "message": "window.webkitStorageInfo is deprecated. Please use navigator.webkitTemporaryStorage or navigator.webkitPersistentStorage instead."
1459
+ },
1460
+ "models/issues_manager/DeprecationIssue.ts | requestedSubresourceWithEmbeddedCredentials": {
1461
+ "message": "Subresource requests whose URLs contain embedded credentials (e.g. https://user:pass@host/) are blocked."
1462
+ },
1463
+ "models/issues_manager/DeprecationIssue.ts | rtcConstraintEnableDtlsSrtpFalse": {
1464
+ "message": "The constraint DtlsSrtpKeyAgreement is removed. You have specified a false value for this constraint, which is interpreted as an attempt to use the removed SDES key negotiation method. This functionality is removed; use a service that supports DTLS key negotiation instead."
1465
+ },
1466
+ "models/issues_manager/DeprecationIssue.ts | rtcConstraintEnableDtlsSrtpTrue": {
1467
+ "message": "The constraint DtlsSrtpKeyAgreement is removed. You have specified a true value for this constraint, which had no effect, but you can remove this constraint for tidiness."
1468
+ },
1469
+ "models/issues_manager/DeprecationIssue.ts | rtcPeerConnectionComplexPlanBSdpUsingDefaultSdpSemantics": {
1470
+ "message": "Complex Plan B SDP detected. This dialect of the Session Description Protocol is no longer supported. Please use Unified Plan SDP instead."
1471
+ },
1472
+ "models/issues_manager/DeprecationIssue.ts | rtcPeerConnectionSdpSemanticsPlanB": {
1473
+ "message": "Plan B SDP semantics, which is used when constructing an RTCPeerConnection with {sdpSemantics:'plan-b'}, is a legacy non-standard version of the Session Description Protocol that has been permanently deleted from the Web Platform. It is still available when building with IS_FUCHSIA, but we intend to delete it as soon as possible. Stop depending on it. See https://crbug.com/1302249 for status."
1474
+ },
1475
+ "models/issues_manager/DeprecationIssue.ts | rtcpMuxPolicyNegotiate": {
1476
+ "message": "The rtcpMuxPolicy option is deprecated and will be removed."
1477
+ },
1478
+ "models/issues_manager/DeprecationIssue.ts | rtpDataChannel": {
1479
+ "message": "RTP data channels are no longer supported. The RtpDataChannels constraint is currently ignored, and may cause an error at a later date."
1480
+ },
1481
+ "models/issues_manager/DeprecationIssue.ts | sharedArrayBufferConstructedWithoutIsolation": {
1482
+ "message": "SharedArrayBuffer will require cross-origin isolation. See https://developer.chrome.com/blog/enabling-shared-array-buffer/ for more details."
1483
+ },
1484
+ "models/issues_manager/DeprecationIssue.ts | textToSpeech_DisallowedByAutoplay": {
1485
+ "message": "speechSynthesis.speak() without user activation is deprecated and will be removed."
1486
+ },
1358
1487
  "models/issues_manager/DeprecationIssue.ts | title": {
1359
1488
  "message": "Isici Esihoxisiwe Esisetshenzisiwe"
1360
1489
  },
1490
+ "models/issues_manager/DeprecationIssue.ts | v8SharedArrayBufferConstructedInExtensionWithoutIsolation": {
1491
+ "message": "Extensions should opt into cross-origin isolation to continue using SharedArrayBuffer. See https://developer.chrome.com/docs/extensions/mv3/cross-origin-isolation/."
1492
+ },
1493
+ "models/issues_manager/DeprecationIssue.ts | vendorSpecificApi": {
1494
+ "message": "{PH1} is vendor-specific. Please use the standard {PH2} instead."
1495
+ },
1496
+ "models/issues_manager/DeprecationIssue.ts | xhrJSONEncodingDetection": {
1497
+ "message": "UTF-16 is not supported by response json in XMLHttpRequest"
1498
+ },
1499
+ "models/issues_manager/DeprecationIssue.ts | xmlHttpRequestSynchronousInNonWorkerOutsideBeforeUnload": {
1500
+ "message": "Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help, check https://xhr.spec.whatwg.org/."
1501
+ },
1502
+ "models/issues_manager/DeprecationIssue.ts | xrSupportsSession": {
1503
+ "message": "supportsSession() is deprecated. Please use isSessionSupported() and check the resolved boolean value instead."
1504
+ },
1361
1505
  "models/issues_manager/FederatedAuthRequestIssue.ts | fedCm": {
1362
1506
  "message": "I-Federated Credential Management API"
1363
1507
  },
@@ -3248,6 +3392,9 @@
3248
3392
  "panels/application/components/BackForwardCacheView.ts | backForwardCacheTitle": {
3249
3393
  "message": "Inqolobane yasemuva/phambili"
3250
3394
  },
3395
+ "panels/application/components/BackForwardCacheView.ts | blankURLTitle": {
3396
+ "message": "I-URL engenalutho [{PH1}]"
3397
+ },
3251
3398
  "panels/application/components/BackForwardCacheView.ts | blockingExtensionId": {
3252
3399
  "message": "Isandiso se-id: "
3253
3400
  },
@@ -3263,8 +3410,11 @@
3263
3410
  "panels/application/components/BackForwardCacheView.ts | framesTitle": {
3264
3411
  "message": "Izinhlaka"
3265
3412
  },
3266
- "panels/application/components/BackForwardCacheView.ts | issuesInFrames": {
3267
- "message": "{x,plural, =1{inkinga #}one{izinkinga #}other{izinkinga #}} zitholwe ku-{y,plural, =1{uhlaka #}one{izinhlaka #}other{izinhlaka #}}."
3413
+ "panels/application/components/BackForwardCacheView.ts | issuesInMultipleFrames": {
3414
+ "message": "{n,plural, =1{inkinga engu-# etholwe ohlakeni {m}.}one{izinkinga ezingu-# ezitholwe ezinhlakeni {m}.}other{izinkinga ezingu-# ezitholwe ezinhlakeni {m}.}}"
3415
+ },
3416
+ "panels/application/components/BackForwardCacheView.ts | issuesInSingleFrame": {
3417
+ "message": "{n,plural, =1{inkinga engu-# etholwe ohlakeni olu-1.}one{izinkinga ezingu-# ezitholwe ohlakeni olu-1.}other{izinkinga ezingu-# ezitholwe ohlakeni olu-1.}}"
3268
3418
  },
3269
3419
  "panels/application/components/BackForwardCacheView.ts | learnMore": {
3270
3420
  "message": "Funda kabanzi: ukufaneleka kwenqolobane yokuya emuva/phambili"
@@ -4796,6 +4946,12 @@
4796
4946
  "panels/elements/StylesSidebarPane.ts | clickToRevealLayer": {
4797
4947
  "message": "Chofoza ukuze wembule isendlalelo esihlahleni sesendlalelo"
4798
4948
  },
4949
+ "panels/elements/StylesSidebarPane.ts | copiedToClipboard": {
4950
+ "message": "Kukopishelwe kubhodi lokunamathisela"
4951
+ },
4952
+ "panels/elements/StylesSidebarPane.ts | copyAllCSSChanges": {
4953
+ "message": "Kopisha zonke izinguquko ze-CSS"
4954
+ },
4799
4955
  "panels/elements/StylesSidebarPane.ts | cssPropertyName": {
4800
4956
  "message": "CSS igama lempahla: {PH1}"
4801
4957
  },
@@ -5357,26 +5513,8 @@
5357
5513
  "panels/issues/AttributionReportingIssueDetailsView.ts | frame": {
5358
5514
  "message": "Uhlaka"
5359
5515
  },
5360
- "panels/issues/AttributionReportingIssueDetailsView.ts | invalidEventSourceTriggerData": {
5361
- "message": "Okungavumelekile event-source-trigger-data"
5362
- },
5363
- "panels/issues/AttributionReportingIssueDetailsView.ts | invalidSourceEventId": {
5364
- "message": "Okungavumelekile attributionsourceeventid"
5365
- },
5366
- "panels/issues/AttributionReportingIssueDetailsView.ts | invalidSourceExpiry": {
5367
- "message": "Okungavumelekile attributionexpiry"
5368
- },
5369
- "panels/issues/AttributionReportingIssueDetailsView.ts | invalidSourcePriority": {
5370
- "message": "Okungavumelekile attributionsourcepriority"
5371
- },
5372
- "panels/issues/AttributionReportingIssueDetailsView.ts | invalidTriggerData": {
5373
- "message": "Okungavumelekile trigger-data"
5374
- },
5375
- "panels/issues/AttributionReportingIssueDetailsView.ts | invalidTriggerDedupKey": {
5376
- "message": "Okungavumelekile dedup-key"
5377
- },
5378
- "panels/issues/AttributionReportingIssueDetailsView.ts | invalidTriggerPriority": {
5379
- "message": "Okungavumelekile priority"
5516
+ "panels/issues/AttributionReportingIssueDetailsView.ts | invalidHeaderValue": {
5517
+ "message": "Invalid Header Value"
5380
5518
  },
5381
5519
  "panels/issues/AttributionReportingIssueDetailsView.ts | nViolations": {
5382
5520
  "message": "{n,plural, =1{ukuphula okungu-#}one{ukuphulwa okungu-#}other{ukuphulwa okungu-#}}"
@@ -5828,6 +5966,9 @@
5828
5966
  "panels/lighthouse/LighthouseController.ts | isThisPageUsableByPeopleWith": {
5829
5967
  "message": "Ingabe leli khasi lingasetshenziswa abantu abakhubazekile"
5830
5968
  },
5969
+ "panels/lighthouse/LighthouseController.ts | javaScriptDisabled": {
5970
+ "message": "JavaScript is disabled. You need to enable JavaScript to audit this page. Open the Command Menu and run the Enable JavaScript command to enable JavaScript."
5971
+ },
5831
5972
  "panels/lighthouse/LighthouseController.ts | legacyNavigation": {
5832
5973
  "message": "Ukufuna ifa"
5833
5974
  },
@@ -5844,7 +5985,10 @@
5844
5985
  "message": "Amathebhu amaningi alawulwa nge-service worker efanayo. Vala amanaye amathebhu wakho kokoqobo okufanayo ukuhlola leli khasi."
5845
5986
  },
5846
5987
  "panels/lighthouse/LighthouseController.ts | navigation": {
5847
- "message": "Ukuzulazula"
5988
+ "message": "Navigation (Default)"
5989
+ },
5990
+ "panels/lighthouse/LighthouseController.ts | navigationTooltip": {
5991
+ "message": "Navigation mode analyzes a page load, exactly like the original Lighthouse reports."
5848
5992
  },
5849
5993
  "panels/lighthouse/LighthouseController.ts | performance": {
5850
5994
  "message": "Ukusebenza"
@@ -5873,6 +6017,9 @@
5873
6017
  "panels/lighthouse/LighthouseController.ts | snapshot": {
5874
6018
  "message": "Isifinyezo"
5875
6019
  },
6020
+ "panels/lighthouse/LighthouseController.ts | snapshotTooltip": {
6021
+ "message": "Snapshot mode analyzes the page in a particular state, typically after user interactions."
6022
+ },
5876
6023
  "panels/lighthouse/LighthouseController.ts | thereMayBeStoredDataAffectingLoadingPlural": {
5877
6024
  "message": "Kungase kube khona idatha egciniwe ethinta ukusebenza kokulayisha kulezi zindawo: {PH1}. Hlola leli khasi kwiwindi le-incognito ukugwema lezo zinsiza ekuthinteni imiphumela yakho."
5878
6025
  },
@@ -5882,6 +6029,9 @@
5882
6029
  "panels/lighthouse/LighthouseController.ts | timespan": {
5883
6030
  "message": "Isikhathi"
5884
6031
  },
6032
+ "panels/lighthouse/LighthouseController.ts | timespanTooltip": {
6033
+ "message": "Timespan mode analyzes an arbitrary period of time, typically containing user interactions."
6034
+ },
5885
6035
  "panels/lighthouse/LighthouseController.ts | useLegacyNavigation": {
5886
6036
  "message": "Hlaziya ikhasi usebenzisa i-Lighthouse yakudala uma ukumodi yokufuna."
5887
6037
  },
@@ -5925,7 +6075,7 @@
5925
6075
  "message": "Imibiko"
5926
6076
  },
5927
6077
  "panels/lighthouse/LighthouseStartView.ts | categories": {
5928
- "message": "Izigaba"
6078
+ "message": "Categories"
5929
6079
  },
5930
6080
  "panels/lighthouse/LighthouseStartView.ts | communityPluginsBeta": {
5931
6081
  "message": "Ama-plugin womphakathi (beta)"
@@ -5943,14 +6093,23 @@
5943
6093
  "message": "Funda kabanzi"
5944
6094
  },
5945
6095
  "panels/lighthouse/LighthouseStartViewFR.ts | analyzeNavigation": {
5946
- "message": "Hlaziya ukufuna"
6096
+ "message": "Analyze page load"
5947
6097
  },
5948
6098
  "panels/lighthouse/LighthouseStartViewFR.ts | analyzeSnapshot": {
5949
- "message": "Hlaziya isifinyezo"
6099
+ "message": "Analyze page state"
6100
+ },
6101
+ "panels/lighthouse/LighthouseStartViewFR.ts | categories": {
6102
+ "message": "Categories"
6103
+ },
6104
+ "panels/lighthouse/LighthouseStartViewFR.ts | generateLighthouseReport": {
6105
+ "message": "Generate a Lighthouse report"
5950
6106
  },
5951
6107
  "panels/lighthouse/LighthouseStartViewFR.ts | mode": {
5952
6108
  "message": "Imodi"
5953
6109
  },
6110
+ "panels/lighthouse/LighthouseStartViewFR.ts | plugins": {
6111
+ "message": "Plugins"
6112
+ },
5954
6113
  "panels/lighthouse/LighthouseStartViewFR.ts | startTimespan": {
5955
6114
  "message": "Qalisa isikhathi"
5956
6115
  },
@@ -7347,7 +7506,7 @@
7347
7506
  "message": "Akwaziwa"
7348
7507
  },
7349
7508
  "panels/network/RequestTimingView.ts | waitingTtfb": {
7350
- "message": "Ilindile (TTFB)"
7509
+ "message": "Waiting for server response"
7351
7510
  },
7352
7511
  "panels/network/RequestTimingView.ts | waterfall": {
7353
7512
  "message": "Impophoma"
@@ -8463,10 +8622,10 @@
8463
8622
  "message": "Fihla imininingwane egcwele"
8464
8623
  },
8465
8624
  "panels/security/SecurityPanel.ts | ifYouBelieveThisIsShownIn": {
8466
- "message": "Uma ukholwa ukuthi lokhu kuboniswa ngephutha sicela uvakashele ku-https://bugs.chromium.org/p/chromium/issues/entry?template=Safety+Tips+Appeals."
8625
+ "message": "If you believe this is shown in error please visit https://g.co/chrome/lookalike-warnings."
8467
8626
  },
8468
8627
  "panels/security/SecurityPanel.ts | ifYouBelieveThisIsShownInErrorSafety": {
8469
- "message": "Uma ukholwa ukuthi lokhu kuboniswa ngephutha sicela uvakashele ku-https://bugs.chromium.org/p/chromium/issues/entry?template=Safety+Tips+Appeals."
8628
+ "message": "If you believe this is shown in error please visit https://g.co/chrome/lookalike-warnings."
8470
8629
  },
8471
8630
  "panels/security/SecurityPanel.ts | info": {
8472
8631
  "message": "Ulwazi"
@@ -10064,6 +10223,12 @@
10064
10223
  "panels/sources/sources-meta.ts | toggleBreakpointInputWindow": {
10065
10224
  "message": "Guqula iwindi lokufaka i-breakpoint"
10066
10225
  },
10226
+ "panels/sources/sources-meta.ts | toggleDebuggerSidebar": {
10227
+ "message": "Toggle debugger sidebar"
10228
+ },
10229
+ "panels/sources/sources-meta.ts | toggleNavigatorSidebar": {
10230
+ "message": "Toggle navigator sidebar"
10231
+ },
10067
10232
  "panels/sources/sources-meta.ts | trailing": {
10068
10233
  "message": "Kuyalandela"
10069
10234
  },
@@ -10145,9 +10310,6 @@
10145
10310
  "panels/timeline/TimelineEventOverview.ts | cpu": {
10146
10311
  "message": "I-CPU"
10147
10312
  },
10148
- "panels/timeline/TimelineEventOverview.ts | fps": {
10149
- "message": "I-FPS"
10150
- },
10151
10313
  "panels/timeline/TimelineEventOverview.ts | heap": {
10152
10314
  "message": "I-HEAP"
10153
10315
  },
@@ -10184,9 +10346,6 @@
10184
10346
  "panels/timeline/TimelineFlameChartDataProvider.ts | idleFrame": {
10185
10347
  "message": "Uhlaka Olungenzi lutho"
10186
10348
  },
10187
- "panels/timeline/TimelineFlameChartDataProvider.ts | input": {
10188
- "message": "Okokufaka"
10189
- },
10190
10349
  "panels/timeline/TimelineFlameChartDataProvider.ts | interactions": {
10191
10350
  "message": "Ukusebenzisana"
10192
10351
  },
@@ -10214,9 +10373,6 @@
10214
10373
  "panels/timeline/TimelineFlameChartDataProvider.ts | rasterizerThreadS": {
10215
10374
  "message": "Uchungechunge Lwamacashazi {PH1}"
10216
10375
  },
10217
- "panels/timeline/TimelineFlameChartDataProvider.ts | sFfps": {
10218
- "message": "{PH1} ~ {PH2} fps"
10219
- },
10220
10376
  "panels/timeline/TimelineFlameChartDataProvider.ts | sSelfS": {
10221
10377
  "message": "{PH1} (okwami {PH2})"
10222
10378
  },
@@ -10748,9 +10904,6 @@
10748
10904
  "panels/timeline/TimelineUIUtils.ts | forcedReflow": {
10749
10905
  "message": "I-reflow ephoqelelwe"
10750
10906
  },
10751
- "panels/timeline/TimelineUIUtils.ts | fps": {
10752
- "message": "I-FPS"
10753
- },
10754
10907
  "panels/timeline/TimelineUIUtils.ts | frame": {
10755
10908
  "message": "Uhlaka"
10756
10909
  },
@@ -11516,6 +11669,9 @@
11516
11669
  "panels/webauthn/WebauthnPane.ts | signCount": {
11517
11670
  "message": "Isibalo Sesignesha"
11518
11671
  },
11672
+ "panels/webauthn/WebauthnPane.ts | supportsLargeBlob": {
11673
+ "message": "Supports large blob"
11674
+ },
11519
11675
  "panels/webauthn/WebauthnPane.ts | supportsResidentKeys": {
11520
11676
  "message": "Isekela okhiye bomhlali"
11521
11677
  },
@@ -11700,7 +11856,7 @@
11700
11856
  "message": "Konke"
11701
11857
  },
11702
11858
  "ui/legacy/FilterBar.ts | clearFilter": {
11703
- "message": "Sula okufaka"
11859
+ "message": "Clear input"
11704
11860
  },
11705
11861
  "ui/legacy/FilterBar.ts | egSmalldUrlacomb": {
11706
11862
  "message": "isb./small[d]+/ url:a.com/b"
@@ -11870,6 +12026,9 @@
11870
12026
  "ui/legacy/TargetCrashedScreen.ts | oncePageIsReloadedDevtoolsWill": {
11871
12027
  "message": "Lapho ikhasi selilayishwe kabusha, i-DevTools izoxhuma kabusha ngokuzenzakalela."
11872
12028
  },
12029
+ "ui/legacy/Toolbar.ts | clearInput": {
12030
+ "message": "Clear input"
12031
+ },
11873
12032
  "ui/legacy/Toolbar.ts | notPressed": {
11874
12033
  "message": "akucindezelwe"
11875
12034
  },
@@ -13,6 +13,8 @@ let throttlingManagerInstance: CPUThrottlingManager;
13
13
  export class CPUThrottlingManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes> implements
14
14
  SDKModelObserver<EmulationModel> {
15
15
  #cpuThrottlingRateInternal: number;
16
+ #hardwareConcurrencyInternal?: number;
17
+ #pendingMainTargetPromise?: (r: number) => void;
16
18
 
17
19
  private constructor() {
18
20
  super();
@@ -41,10 +43,60 @@ export class CPUThrottlingManager extends Common.ObjectWrapper.ObjectWrapper<Eve
41
43
  this.dispatchEventToListeners(Events.RateChanged, this.#cpuThrottlingRateInternal);
42
44
  }
43
45
 
46
+ setHardwareConcurrency(concurrency: number): void {
47
+ this.#hardwareConcurrencyInternal = concurrency;
48
+ for (const emulationModel of TargetManager.instance().models(EmulationModel)) {
49
+ void emulationModel.setHardwareConcurrency(concurrency);
50
+ }
51
+ this.dispatchEventToListeners(Events.HardwareConcurrencyChanged, this.#hardwareConcurrencyInternal);
52
+ }
53
+
54
+ async getHardwareConcurrency(): Promise<number> {
55
+ const target = TargetManager.instance().mainTarget();
56
+ const existingCallback = this.#pendingMainTargetPromise;
57
+
58
+ // If the main target hasn't attached yet, block callers until it appears.
59
+ if (!target) {
60
+ if (existingCallback) {
61
+ return new Promise(r => {
62
+ this.#pendingMainTargetPromise = (result: number): void => {
63
+ r(result);
64
+ existingCallback(result);
65
+ };
66
+ });
67
+ }
68
+ return new Promise(r => {
69
+ this.#pendingMainTargetPromise = r;
70
+ });
71
+ }
72
+
73
+ const evalResult = await target.runtimeAgent().invoke_evaluate(
74
+ {expression: 'navigator.hardwareConcurrency', returnByValue: true, silent: true, throwOnSideEffect: true});
75
+ const error = evalResult.getError();
76
+ if (error) {
77
+ throw new Error(error);
78
+ }
79
+ const {result, exceptionDetails} = evalResult;
80
+ if (exceptionDetails) {
81
+ throw new Error(exceptionDetails.text);
82
+ }
83
+ return result.value;
84
+ }
85
+
44
86
  modelAdded(emulationModel: EmulationModel): void {
45
87
  if (this.#cpuThrottlingRateInternal !== CPUThrottlingRates.NoThrottling) {
46
88
  void emulationModel.setCPUThrottlingRate(this.#cpuThrottlingRateInternal);
47
89
  }
90
+ if (this.#hardwareConcurrencyInternal !== undefined) {
91
+ void emulationModel.setHardwareConcurrency(this.#hardwareConcurrencyInternal);
92
+ }
93
+
94
+ // If there are any callers blocked on a getHardwareConcurrency call, let's wake them now.
95
+ if (this.#pendingMainTargetPromise) {
96
+ const existingCallback = this.#pendingMainTargetPromise;
97
+ this.#pendingMainTargetPromise = undefined;
98
+ void this.getHardwareConcurrency().then(existingCallback);
99
+ }
48
100
  }
49
101
 
50
102
  modelRemoved(_emulationModel: EmulationModel): void {
@@ -56,10 +108,12 @@ export class CPUThrottlingManager extends Common.ObjectWrapper.ObjectWrapper<Eve
56
108
  // eslint-disable-next-line rulesdir/const_enum
57
109
  export enum Events {
58
110
  RateChanged = 'RateChanged',
111
+ HardwareConcurrencyChanged = 'HardwareConcurrencyChanged',
59
112
  }
60
113
 
61
114
  export type EventTypes = {
62
115
  [Events.RateChanged]: number,
116
+ [Events.HardwareConcurrencyChanged]: number,
63
117
  };
64
118
 
65
119
  export function throttlingManager(): CPUThrottlingManager {
@@ -70,9 +70,16 @@ const UIStrings = {
70
70
  script: 'Script',
71
71
  /**
72
72
  *@description Title of a section in the debugger showing JavaScript variables from the a 'with'
73
- *block. Block here means section of code, 'with' refers to a JavaScript programming concept.
73
+ *block. Block here means section of code, 'with' refers to a JavaScript programming concept and
74
+ *is a fixed term.
74
75
  */
75
- withBlock: '`With` Block',
76
+ withBlock: '`With` block',
77
+ /**
78
+ *@description Title of a section in the debugger showing JavaScript variables from the a 'catch'
79
+ *block. Block here means section of code, 'catch' refers to a JavaScript programming concept and
80
+ *is a fixed term.
81
+ */
82
+ catchBlock: '`Catch` block',
76
83
  /**
77
84
  *@description Title of a section in the debugger showing JavaScript variables from the global scope.
78
85
  */
@@ -1464,7 +1471,9 @@ export class Scope implements ScopeChainEntry {
1464
1471
  case Protocol.Debugger.ScopeType.Closure:
1465
1472
  return i18nString(UIStrings.closure);
1466
1473
  case Protocol.Debugger.ScopeType.Catch:
1467
- return i18n.i18n.lockedString('Catch');
1474
+ return i18nString(UIStrings.catchBlock);
1475
+ case Protocol.Debugger.ScopeType.Eval:
1476
+ return i18n.i18n.lockedString('Eval');
1468
1477
  case Protocol.Debugger.ScopeType.Block:
1469
1478
  return i18nString(UIStrings.block);
1470
1479
  case Protocol.Debugger.ScopeType.Script:
@@ -314,6 +314,13 @@ export class EmulationModel extends SDKModel<void> {
314
314
  await this.#emulationAgent.invoke_setCPUThrottlingRate({rate});
315
315
  }
316
316
 
317
+ async setHardwareConcurrency(hardwareConcurrency: number): Promise<void> {
318
+ if (hardwareConcurrency < 1) {
319
+ throw new Error('hardwareConcurrency must be a positive value');
320
+ }
321
+ await this.#emulationAgent.invoke_setHardwareConcurrencyOverride({hardwareConcurrency});
322
+ }
323
+
317
324
  async emulateTouch(enabled: boolean, mobile: boolean): Promise<void> {
318
325
  this.#touchEnabled = enabled;
319
326
  this.#touchMobile = mobile;
@@ -255,6 +255,10 @@ export class NetworkManager extends SDKModel<EventTypes> {
255
255
  return this.dispatcher.requestForURL(url);
256
256
  }
257
257
 
258
+ requestforId(id: string): NetworkRequest|null {
259
+ return this.dispatcher.requestForId(id);
260
+ }
261
+
258
262
  private cacheDisabledSettingChanged({data: enabled}: Common.EventTarget.EventTargetEvent<boolean>): void {
259
263
  void this.#networkAgent.invoke_setCacheDisabled({cacheDisabled: enabled});
260
264
  }
@@ -520,8 +524,8 @@ export class NetworkDispatcher implements ProtocolProxyApi.NetworkDispatcher {
520
524
  }
521
525
  }
522
526
 
523
- requestForId(url: string): NetworkRequest|null {
524
- return this.#requestsById.get(url) || null;
527
+ requestForId(id: string): NetworkRequest|null {
528
+ return this.#requestsById.get(id) || null;
525
529
  }
526
530
 
527
531
  requestForURL(url: Platform.DevToolsPath.UrlString): NetworkRequest|null {
@@ -1098,6 +1098,7 @@
1098
1098
  'messageLevelFilters',
1099
1099
  'messageURLFilters',
1100
1100
  'monitoringXHREnabled',
1101
+ 'navigatorGroupByAuthored',
1101
1102
  'navigatorGroupByFolder',
1102
1103
  'navigatorHidden',
1103
1104
  'networkColorCodeResourceTypes',
@@ -9,6 +9,7 @@ export const enum FormatterActions {
9
9
  JAVASCRIPT_OUTLINE = 'javaScriptOutline',
10
10
  JAVASCRIPT_IDENTIFIERS = 'javaScriptIdentifiers',
11
11
  JAVASCRIPT_SUBSTITUTE = 'javaScriptSubstitute',
12
+ JAVASCRIPT_SCOPE_TREE = 'javaScriptScopeTree',
12
13
  EVALUATE_JAVASCRIPT_SUBSTRING = 'evaluatableJavaScriptSubstring',
13
14
  ARGUMENTS_LIST = 'argumentsList',
14
15
  }
@@ -171,7 +171,12 @@ export class ScopeVariableAnalysis {
171
171
  case 'ArrowFunctionExpression': {
172
172
  this.#pushScope(node.start, node.end);
173
173
  node.params.forEach(this.#processNodeAsDefinition.bind(this, DefinitionKind.Var));
174
- this.#processNode(node.body);
174
+ if (node.body.type === 'BlockStatement') {
175
+ // Include the body of the arrow function in the same scope as the arguments.
176
+ node.body.body.forEach(this.#processNode.bind(this));
177
+ } else {
178
+ this.#processNode(node.body);
179
+ }
175
180
  this.#popScope(true);
176
181
  break;
177
182
  }
@@ -199,7 +204,7 @@ export class ScopeVariableAnalysis {
199
204
  case 'CatchClause':
200
205
  this.#pushScope(node.start, node.end);
201
206
  this.#processNodeAsDefinition(DefinitionKind.Let, node.param);
202
- node.body.body.forEach(this.#processNode.bind(this));
207
+ this.#processNode(node.body);
203
208
  this.#popScope(false);
204
209
  break;
205
210
  case 'ClassBody':
@@ -207,17 +212,13 @@ export class ScopeVariableAnalysis {
207
212
  break;
208
213
  case 'ClassDeclaration':
209
214
  this.#processNodeAsDefinition(DefinitionKind.Let, node.id);
210
- this.#pushScope(node.start, node.end);
211
215
  this.#processNode(node.superClass ?? null);
212
216
  this.#processNode(node.body);
213
- this.#popScope(false);
214
217
  break;
215
218
  case 'ClassExpression':
216
- this.#pushScope(node.start, node.end);
217
219
  // Intentionally ignore the id.
218
220
  this.#processNode(node.superClass ?? null);
219
221
  this.#processNode(node.body);
220
- this.#popScope(false);
221
222
  break;
222
223
  case 'ChainExpression':
223
224
  this.#processNode(node.expression);
@@ -253,16 +254,17 @@ export class ScopeVariableAnalysis {
253
254
  this.#addVariable('this', node.start, DefinitionKind.Fixed);
254
255
  this.#addVariable('arguments', node.start, DefinitionKind.Fixed);
255
256
  node.params.forEach(this.#processNodeAsDefinition.bind(this, DefinitionKind.Let));
256
- this.#processNode(node.body);
257
+ // Process the body of the block statement directly to avoid creating new scope.
258
+ node.body.body.forEach(this.#processNode.bind(this));
257
259
  this.#popScope(true);
258
260
  break;
259
261
  case 'FunctionExpression':
260
- // Id is intentionally ignored in function expressions.
261
- this.#pushScope(node.start, node.end);
262
+ this.#pushScope(node.id?.end ?? node.start, node.end);
262
263
  this.#addVariable('this', node.start, DefinitionKind.Fixed);
263
264
  this.#addVariable('arguments', node.start, DefinitionKind.Fixed);
264
265
  node.params.forEach(this.#processNodeAsDefinition.bind(this, DefinitionKind.Let));
265
- this.#processNode(node.body);
266
+ // Process the body of the block statement directly to avoid creating new scope.
267
+ node.body.body.forEach(this.#processNode.bind(this));
266
268
  this.#popScope(true);
267
269
  break;
268
270
  case 'Identifier':
@@ -37,6 +37,10 @@ self.onmessage = function(event: MessageEvent): void {
37
37
  self.postMessage(FormatterWorker.Substitute.substituteExpression(params.content, mapping));
38
38
  break;
39
39
  }
40
+ case FormatterActions.JAVASCRIPT_SCOPE_TREE: {
41
+ self.postMessage(FormatterWorker.ScopeParser.parseScopes(params.content)?.export());
42
+ break;
43
+ }
40
44
  case FormatterActions.EVALUATE_JAVASCRIPT_SUBSTRING:
41
45
  self.postMessage(FormatterWorker.FormatterWorker.evaluatableJavaScriptSubstring(params.content));
42
46
  break;