chrome-devtools-frontend 1.0.965113 → 1.0.965611

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 (150) hide show
  1. package/front_end/core/common/ResolverBase.ts +2 -2
  2. package/front_end/core/i18n/locales/af.json +55 -22
  3. package/front_end/core/i18n/locales/am.json +55 -22
  4. package/front_end/core/i18n/locales/ar.json +55 -22
  5. package/front_end/core/i18n/locales/as.json +55 -22
  6. package/front_end/core/i18n/locales/az.json +55 -22
  7. package/front_end/core/i18n/locales/be.json +55 -22
  8. package/front_end/core/i18n/locales/bg.json +55 -22
  9. package/front_end/core/i18n/locales/bn.json +33 -0
  10. package/front_end/core/i18n/locales/bs.json +53 -20
  11. package/front_end/core/i18n/locales/ca.json +55 -22
  12. package/front_end/core/i18n/locales/cs.json +54 -21
  13. package/front_end/core/i18n/locales/cy.json +55 -22
  14. package/front_end/core/i18n/locales/da.json +54 -21
  15. package/front_end/core/i18n/locales/de.json +55 -22
  16. package/front_end/core/i18n/locales/el.json +55 -22
  17. package/front_end/core/i18n/locales/en-GB.json +33 -0
  18. package/front_end/core/i18n/locales/es-419.json +55 -22
  19. package/front_end/core/i18n/locales/es.json +55 -22
  20. package/front_end/core/i18n/locales/et.json +55 -22
  21. package/front_end/core/i18n/locales/eu.json +33 -0
  22. package/front_end/core/i18n/locales/fa.json +56 -23
  23. package/front_end/core/i18n/locales/fi.json +55 -22
  24. package/front_end/core/i18n/locales/fil.json +55 -22
  25. package/front_end/core/i18n/locales/fr-CA.json +55 -22
  26. package/front_end/core/i18n/locales/fr.json +55 -22
  27. package/front_end/core/i18n/locales/gl.json +55 -22
  28. package/front_end/core/i18n/locales/gu.json +33 -0
  29. package/front_end/core/i18n/locales/he.json +55 -22
  30. package/front_end/core/i18n/locales/hi.json +33 -0
  31. package/front_end/core/i18n/locales/hr.json +33 -0
  32. package/front_end/core/i18n/locales/hu.json +55 -22
  33. package/front_end/core/i18n/locales/hy.json +55 -22
  34. package/front_end/core/i18n/locales/id.json +55 -22
  35. package/front_end/core/i18n/locales/is.json +55 -22
  36. package/front_end/core/i18n/locales/it.json +55 -22
  37. package/front_end/core/i18n/locales/ja.json +63 -30
  38. package/front_end/core/i18n/locales/ka.json +55 -22
  39. package/front_end/core/i18n/locales/kk.json +55 -22
  40. package/front_end/core/i18n/locales/km.json +55 -22
  41. package/front_end/core/i18n/locales/kn.json +55 -22
  42. package/front_end/core/i18n/locales/ko.json +55 -22
  43. package/front_end/core/i18n/locales/ky.json +55 -22
  44. package/front_end/core/i18n/locales/lo.json +55 -22
  45. package/front_end/core/i18n/locales/lt.json +55 -22
  46. package/front_end/core/i18n/locales/lv.json +55 -22
  47. package/front_end/core/i18n/locales/mk.json +55 -22
  48. package/front_end/core/i18n/locales/ml.json +33 -0
  49. package/front_end/core/i18n/locales/mn.json +33 -0
  50. package/front_end/core/i18n/locales/mr.json +54 -21
  51. package/front_end/core/i18n/locales/ms.json +55 -22
  52. package/front_end/core/i18n/locales/my.json +55 -22
  53. package/front_end/core/i18n/locales/ne.json +54 -21
  54. package/front_end/core/i18n/locales/nl.json +55 -22
  55. package/front_end/core/i18n/locales/no.json +55 -22
  56. package/front_end/core/i18n/locales/or.json +55 -22
  57. package/front_end/core/i18n/locales/pa.json +55 -22
  58. package/front_end/core/i18n/locales/pl.json +33 -0
  59. package/front_end/core/i18n/locales/pt-PT.json +55 -22
  60. package/front_end/core/i18n/locales/pt.json +55 -22
  61. package/front_end/core/i18n/locales/ro.json +33 -0
  62. package/front_end/core/i18n/locales/ru.json +55 -22
  63. package/front_end/core/i18n/locales/si.json +55 -22
  64. package/front_end/core/i18n/locales/sk.json +55 -22
  65. package/front_end/core/i18n/locales/sl.json +55 -22
  66. package/front_end/core/i18n/locales/sq.json +55 -22
  67. package/front_end/core/i18n/locales/sr-Latn.json +55 -22
  68. package/front_end/core/i18n/locales/sr.json +55 -22
  69. package/front_end/core/i18n/locales/sv.json +55 -22
  70. package/front_end/core/i18n/locales/sw.json +55 -22
  71. package/front_end/core/i18n/locales/ta.json +55 -22
  72. package/front_end/core/i18n/locales/te.json +42 -9
  73. package/front_end/core/i18n/locales/th.json +33 -0
  74. package/front_end/core/i18n/locales/tr.json +55 -22
  75. package/front_end/core/i18n/locales/uk.json +55 -22
  76. package/front_end/core/i18n/locales/ur.json +55 -22
  77. package/front_end/core/i18n/locales/uz.json +55 -22
  78. package/front_end/core/i18n/locales/vi.json +54 -21
  79. package/front_end/core/i18n/locales/zh-HK.json +55 -22
  80. package/front_end/core/i18n/locales/zh-TW.json +54 -21
  81. package/front_end/core/i18n/locales/zh.json +55 -22
  82. package/front_end/core/i18n/locales/zu.json +55 -22
  83. package/front_end/core/sdk/CSSProperty.ts +8 -8
  84. package/front_end/core/sdk/RemoteObject.ts +1 -1
  85. package/front_end/core/sdk/Resource.ts +5 -2
  86. package/front_end/core/sdk/RuntimeModel.ts +10 -0
  87. package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +9 -3
  88. package/front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js +5 -5
  89. package/front_end/models/bindings/ContentProviderBasedProject.ts +2 -3
  90. package/front_end/models/persistence/FileSystemWorkspaceBinding.ts +1 -1
  91. package/front_end/models/workspace/WorkspaceImpl.ts +62 -37
  92. package/front_end/panels/console/ConsoleViewMessage.ts +33 -6
  93. package/front_end/panels/console/ErrorStackParser.ts +34 -0
  94. package/front_end/panels/emulation/DeviceModeView.ts +6 -2
  95. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +1 -2
  96. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +954 -885
  97. package/front_end/third_party/lighthouse/locales/ar-XB.json +40 -4
  98. package/front_end/third_party/lighthouse/locales/ar.json +59 -23
  99. package/front_end/third_party/lighthouse/locales/bg.json +40 -4
  100. package/front_end/third_party/lighthouse/locales/ca.json +45 -9
  101. package/front_end/third_party/lighthouse/locales/cs.json +39 -3
  102. package/front_end/third_party/lighthouse/locales/da.json +43 -7
  103. package/front_end/third_party/lighthouse/locales/de.json +42 -6
  104. package/front_end/third_party/lighthouse/locales/el.json +59 -23
  105. package/front_end/third_party/lighthouse/locales/en-GB.json +43 -7
  106. package/front_end/third_party/lighthouse/locales/en-US.json +48 -6
  107. package/front_end/third_party/lighthouse/locales/en-XA.json +40 -4
  108. package/front_end/third_party/lighthouse/locales/en-XL.json +48 -6
  109. package/front_end/third_party/lighthouse/locales/es-419.json +39 -3
  110. package/front_end/third_party/lighthouse/locales/es.json +46 -10
  111. package/front_end/third_party/lighthouse/locales/fi.json +57 -21
  112. package/front_end/third_party/lighthouse/locales/fil.json +40 -4
  113. package/front_end/third_party/lighthouse/locales/fr.json +45 -9
  114. package/front_end/third_party/lighthouse/locales/he.json +41 -5
  115. package/front_end/third_party/lighthouse/locales/hi.json +59 -23
  116. package/front_end/third_party/lighthouse/locales/hr.json +57 -21
  117. package/front_end/third_party/lighthouse/locales/hu.json +39 -3
  118. package/front_end/third_party/lighthouse/locales/id.json +40 -4
  119. package/front_end/third_party/lighthouse/locales/it.json +40 -4
  120. package/front_end/third_party/lighthouse/locales/ja.json +39 -3
  121. package/front_end/third_party/lighthouse/locales/ko.json +40 -4
  122. package/front_end/third_party/lighthouse/locales/lt.json +40 -4
  123. package/front_end/third_party/lighthouse/locales/lv.json +56 -20
  124. package/front_end/third_party/lighthouse/locales/nl.json +40 -4
  125. package/front_end/third_party/lighthouse/locales/no.json +56 -20
  126. package/front_end/third_party/lighthouse/locales/pl.json +56 -20
  127. package/front_end/third_party/lighthouse/locales/pt-PT.json +57 -21
  128. package/front_end/third_party/lighthouse/locales/pt.json +41 -5
  129. package/front_end/third_party/lighthouse/locales/ro.json +39 -3
  130. package/front_end/third_party/lighthouse/locales/ru.json +40 -4
  131. package/front_end/third_party/lighthouse/locales/sk.json +39 -3
  132. package/front_end/third_party/lighthouse/locales/sl.json +39 -3
  133. package/front_end/third_party/lighthouse/locales/sr-Latn.json +40 -4
  134. package/front_end/third_party/lighthouse/locales/sr.json +40 -4
  135. package/front_end/third_party/lighthouse/locales/sv.json +39 -3
  136. package/front_end/third_party/lighthouse/locales/ta.json +47 -11
  137. package/front_end/third_party/lighthouse/locales/te.json +61 -25
  138. package/front_end/third_party/lighthouse/locales/th.json +39 -3
  139. package/front_end/third_party/lighthouse/locales/tr.json +40 -4
  140. package/front_end/third_party/lighthouse/locales/uk.json +40 -4
  141. package/front_end/third_party/lighthouse/locales/vi.json +63 -27
  142. package/front_end/third_party/lighthouse/locales/zh-HK.json +40 -4
  143. package/front_end/third_party/lighthouse/locales/zh-TW.json +45 -9
  144. package/front_end/third_party/lighthouse/locales/zh.json +41 -5
  145. package/front_end/third_party/lighthouse/report/bundle.d.ts +1 -0
  146. package/front_end/third_party/lighthouse/report/bundle.js +23 -11
  147. package/front_end/third_party/lighthouse/report-assets/report-generator.js +1 -1
  148. package/front_end/ui/components/docs/tree_outline/custom-renderers.ts +3 -3
  149. package/front_end/ui/legacy/components/perf_ui/LiveHeapProfile.ts +2 -2
  150. package/package.json +1 -1
@@ -882,13 +882,13 @@
882
882
  "message": "Lingisa ikhasi eligxile kulo"
883
883
  },
884
884
  "entrypoints/inspector_main/RenderingOptions.ts | emulateAutoDarkMode": {
885
- "message": "Enable automatic dark mode"
885
+ "message": "Nika amandla imodi emnyama"
886
886
  },
887
887
  "entrypoints/inspector_main/RenderingOptions.ts | emulatesAFocusedPage": {
888
888
  "message": "I-emulator ikhasi okugxilwe kulo."
889
889
  },
890
890
  "entrypoints/inspector_main/RenderingOptions.ts | emulatesAutoDarkMode": {
891
- "message": "Enables automatic dark mode and sets prefers-color-scheme to dark."
891
+ "message": "Kunika amandla imodi emnyama ezenzekelayo futhi kusetha i-prefers-color-scheme ibe ku-dark."
892
892
  },
893
893
  "entrypoints/inspector_main/RenderingOptions.ts | forcesCssColorgamutMediaFeature": {
894
894
  "message": "Imidiya yesakhi samandla we-CSS color-gamut"
@@ -1308,7 +1308,7 @@
1308
1308
  "message": "Ibhala ifayela…"
1309
1309
  },
1310
1310
  "models/issues_manager/ClientHintIssue.ts | clientHintsInfrastructure": {
1311
- "message": "Client Hints Infrastructure"
1311
+ "message": "I-Client Hints Infrastructure"
1312
1312
  },
1313
1313
  "models/issues_manager/ContentSecurityPolicyIssue.ts | contentSecurityPolicyEval": {
1314
1314
  "message": "Inqubomgomo Yokuphepha Kokuqukethwe - Eval"
@@ -2067,10 +2067,10 @@
2067
2067
  "message": "Ayikwazanga ukulanda i-aykhoni elidingekayo kusuka ku-manifest"
2068
2068
  },
2069
2069
  "panels/application/AppManifestView.ts | darkBackgroundColor": {
2070
- "message": "Dark background color"
2070
+ "message": "Umbala wangemuva omnyama"
2071
2071
  },
2072
2072
  "panels/application/AppManifestView.ts | darkThemeColor": {
2073
- "message": "Dark theme color"
2073
+ "message": "Umbala wetimu emnyama"
2074
2074
  },
2075
2075
  "panels/application/AppManifestView.ts | description": {
2076
2076
  "message": "Incazelo"
@@ -2955,7 +2955,7 @@
2955
2955
  "message": "Amakhasi asebenzisa i-MediaSession API futhi asetha izibambi zesenzo awafaneleki kwinqolobane yasemuva/phambili."
2956
2956
  },
2957
2957
  "panels/application/components/BackForwardCacheStrings.ts | contentScreenReader": {
2958
- "message": "Back/forward cache is disabled due to screen reader."
2958
+ "message": "Inqolobane yasemuva-phambili ikhutshaziwe ngenxa yesifundi sesikrini."
2959
2959
  },
2960
2960
  "panels/application/components/BackForwardCacheStrings.ts | contentSecurityHandler": {
2961
2961
  "message": "Amakhasi asebenzisa i-SecurityHandler awakufanelekeli ukuthola inqolobane yasemuva/phambili."
@@ -2979,49 +2979,49 @@
2979
2979
  "message": "Idokhumenti aliqedanga ukulayisha ngaphambi kokuthi lizulazulele ekuhambeni."
2980
2980
  },
2981
2981
  "panels/application/components/BackForwardCacheStrings.ts | embedderAppBannerManager": {
2982
- "message": "App Banner was present upon navigating away."
2982
+ "message": "Isibhengezo se-App besikhona ngenkathi yokuzulazula kude."
2983
2983
  },
2984
2984
  "panels/application/components/BackForwardCacheStrings.ts | embedderChromePasswordManagerClientBindCredentialManager": {
2985
- "message": "Chrome Password Manager was present upon navigating away."
2985
+ "message": "Isiphathi sephasiwedi ye-Chrome besikhona ngenkathi yokuzulazula kude."
2986
2986
  },
2987
2987
  "panels/application/components/BackForwardCacheStrings.ts | embedderDomDistillerSelfDeletingRequestDelegate": {
2988
- "message": "DOM distillation was in progress upon navigating away."
2988
+ "message": "I-DOM distillation kade iqhubeka ngenkathi kokuzulazula kude."
2989
2989
  },
2990
2990
  "panels/application/components/BackForwardCacheStrings.ts | embedderDomDistillerViewerSource": {
2991
- "message": "DOM Distiller Viewer was present upon navigating away."
2991
+ "message": "Isibukeli se-DOM Distiller besikhona ngenkathi yokuzulazula kude."
2992
2992
  },
2993
2993
  "panels/application/components/BackForwardCacheStrings.ts | embedderExtensionMessaging": {
2994
- "message": "Back/forward cache is disabled due to extensions using messaging API."
2994
+ "message": "Inqolobane yasemuva-phambili ikhutshaziwe ngenxa yazandiso ezisebenzisa i-API yokulayeza."
2995
2995
  },
2996
2996
  "panels/application/components/BackForwardCacheStrings.ts | embedderExtensionMessagingForOpenPort": {
2997
- "message": "Extensions with long-lived connection should close the connection before entering back/forward cache."
2997
+ "message": "Izandiso ezinoxhumano lwesikhathi eside kufanele zivale uxhumano ngaphambi kokungena kwinqolobane yasemuva phambili."
2998
2998
  },
2999
2999
  "panels/application/components/BackForwardCacheStrings.ts | embedderExtensionSentMessageToCachedFrame": {
3000
- "message": "Extensions with long-lived connection attempted to send messages to frames in back/forward cache."
3000
+ "message": "Izandiso ezinoxhumano lwesikhathi eside zizame ukuthumela imiyalezo kwizinhlaka kwinqolobane yasemuva-phambili."
3001
3001
  },
3002
3002
  "panels/application/components/BackForwardCacheStrings.ts | embedderExtensions": {
3003
- "message": "Back/forward cache is disabled due to extensions."
3003
+ "message": "Inqolobane yasemuva-phambili ikhutshaziwe ngenxa yezandiso."
3004
3004
  },
3005
3005
  "panels/application/components/BackForwardCacheStrings.ts | embedderModalDialog": {
3006
- "message": "Modal dialog such as form resubmission or http password dialog was shown for the page upon navigating away."
3006
+ "message": "Ibhokisi le-Modal njengokuthumela kabusha ifomu noma ibhokisi lephasiwedi ye-http kuboniswe ekhasini ngenkathi yokuzulazula kude."
3007
3007
  },
3008
3008
  "panels/application/components/BackForwardCacheStrings.ts | embedderOfflinePage": {
3009
- "message": "The offline page was shown upon navigating away."
3009
+ "message": "Ikhasi lokungaxhunyiwe kwi-inthanethi liboniswe ngenkathi yokuzulazula kude."
3010
3010
  },
3011
3011
  "panels/application/components/BackForwardCacheStrings.ts | embedderOomInterventionTabHelper": {
3012
- "message": "Out-Of-Memory Intervention bar was present upon navigating away."
3012
+ "message": "Ibha ye-Out-Of-Memory Intervention beyikhona ngenkathi yokuzulazula kude."
3013
3013
  },
3014
3014
  "panels/application/components/BackForwardCacheStrings.ts | embedderPermissionRequestManager": {
3015
- "message": "There were permission requests upon navigating away."
3015
+ "message": "Kube khona izicelo zemvuma ngemva kokuzulazula kude."
3016
3016
  },
3017
3017
  "panels/application/components/BackForwardCacheStrings.ts | embedderPopupBlockerTabHelper": {
3018
- "message": "Popup blocker was present upon navigating away."
3018
+ "message": "Isivimbeli se-popup besikhona ngenkathi yokuzulazula kude"
3019
3019
  },
3020
3020
  "panels/application/components/BackForwardCacheStrings.ts | embedderSafeBrowsingThreatDetails": {
3021
- "message": "Safe Browsing details were shown upon navigating away."
3021
+ "message": "Imininingwane Yokubhrawuza Okuphephile iboniswe ngenkathi yokuzulazula kude"
3022
3022
  },
3023
3023
  "panels/application/components/BackForwardCacheStrings.ts | embedderSafeBrowsingTriggeredPopupBlocker": {
3024
- "message": "Safe Browsing considered this page to be abusive and blocked popup."
3024
+ "message": "Ukubhrawuza Okuphephile kubheke leli khasi njengelihlukumezayo futhi kuvimbele i-popup."
3025
3025
  },
3026
3026
  "panels/application/components/BackForwardCacheStrings.ts | enteredBackForwardCacheBeforeServiceWorkerHostAdded": {
3027
3027
  "message": "Isisebenzi sesevisi senziwe sasebenza ngenkathi ikhasi likwinqolobane yasemuva/phambili."
@@ -3362,6 +3362,9 @@
3362
3362
  "panels/application/components/FrameDetailsView.ts | parentIsAdExplanation": {
3363
3363
  "message": "Lo zimele unakwa njengozimele wesikhangiso ngoba uzimele ongumzali unguzimele wesikhangiso."
3364
3364
  },
3365
+ "panels/application/components/FrameDetailsView.ts | refresh": {
3366
+ "message": "Vuselela"
3367
+ },
3365
3368
  "panels/application/components/FrameDetailsView.ts | reportingTo": {
3366
3369
  "message": "ibika ku-"
3367
3370
  },
@@ -3719,6 +3722,12 @@
3719
3722
  "panels/console/ConsoleView.ts | consoleSettings": {
3720
3723
  "message": "Amasethingi we-Console"
3721
3724
  },
3725
+ "panels/console/ConsoleView.ts | consoleSidebarHidden": {
3726
+ "message": "Ibha eseceleni yekhonsoli ifihliwe"
3727
+ },
3728
+ "panels/console/ConsoleView.ts | consoleSidebarShown": {
3729
+ "message": "Ibha eseceleni yekhonsoli ibonisiwe"
3730
+ },
3722
3731
  "panels/console/ConsoleView.ts | copyVisibleStyledSelection": {
3723
3732
  "message": "Kopisha ukukhetha okustayiliwe okubonakalayo"
3724
3733
  },
@@ -4376,6 +4385,12 @@
4376
4385
  "panels/elements/ElementsPanel.ts | computed": {
4377
4386
  "message": "Ukubalwa"
4378
4387
  },
4388
+ "panels/elements/ElementsPanel.ts | computedStylesHidden": {
4389
+ "message": "Ibha eseceleni yesitayela zekhompyutha ifihliwe"
4390
+ },
4391
+ "panels/elements/ElementsPanel.ts | computedStylesShown": {
4392
+ "message": "Ibha eseceleni yesitayela zekhompyutha ibonisiwe"
4393
+ },
4379
4394
  "panels/elements/ElementsPanel.ts | domTreeExplorer": {
4380
4395
  "message": "I-DOM tree explorer"
4381
4396
  },
@@ -9533,6 +9548,12 @@
9533
9548
  "panels/sources/SourcesPanel.ts | copyStringContents": {
9534
9549
  "message": "Kopisha okuqukethwe kochungechunge"
9535
9550
  },
9551
+ "panels/sources/SourcesPanel.ts | debuggerHidden": {
9552
+ "message": "Ibha eseceleni yokulungisa amaphutha ifihliwe"
9553
+ },
9554
+ "panels/sources/SourcesPanel.ts | debuggerShown": {
9555
+ "message": "Ibha eseceleni yokulungisa amaphutha ibonisiwe"
9556
+ },
9536
9557
  "panels/sources/SourcesPanel.ts | dontPauseOnExceptions": {
9537
9558
  "message": "Ungakuphumuzi okungafakwanga"
9538
9559
  },
@@ -9551,6 +9572,12 @@
9551
9572
  "panels/sources/SourcesPanel.ts | moreOptions": {
9552
9573
  "message": "Ezinye izinketho"
9553
9574
  },
9575
+ "panels/sources/SourcesPanel.ts | navigatorHidden": {
9576
+ "message": "Ibha eseceleni yokuzulazula ifihliwe"
9577
+ },
9578
+ "panels/sources/SourcesPanel.ts | navigatorShown": {
9579
+ "message": "Ibha eseceleni yokuzula ibonisiwe"
9580
+ },
9554
9581
  "panels/sources/SourcesPanel.ts | openInSourcesPanel": {
9555
9582
  "message": "Vula kuphaneli Yemithombo"
9556
9583
  },
@@ -10268,6 +10295,12 @@
10268
10295
  "panels/timeline/TimelineTreeView.ts | heaviestStack": {
10269
10296
  "message": "Isitaki Esisinda kakhulu"
10270
10297
  },
10298
+ "panels/timeline/TimelineTreeView.ts | heaviestStackHidden": {
10299
+ "message": "Ibha eseceleni yezitaki ezisindayo ifihliwe"
10300
+ },
10301
+ "panels/timeline/TimelineTreeView.ts | heaviestStackShown": {
10302
+ "message": "Ibha eseceleni yezitaki ezisindayo ibonisiwe"
10303
+ },
10271
10304
  "panels/timeline/TimelineTreeView.ts | hideHeaviestStack": {
10272
10305
  "message": "Fihla izitaki ze-Heaviest"
10273
10306
  },
@@ -11583,7 +11616,7 @@
11583
11616
  "message": "Londoloza"
11584
11617
  },
11585
11618
  "ui/legacy/RemoteDebuggingTerminatedScreen.ts | debuggingConnectionWasClosed": {
11586
- "message": "Debugging connection was closed. Reason: "
11619
+ "message": "Uxhumano lokulungisa amaphutha luvaliwe. Isizathu: "
11587
11620
  },
11588
11621
  "ui/legacy/RemoteDebuggingTerminatedScreen.ts | reconnectDevtools": {
11589
11622
  "message": "Xhuma kabusha i-DevTools"
@@ -136,15 +136,15 @@ export class CSSProperty {
136
136
 
137
137
  async setText(propertyText: string, majorChange: boolean, overwrite?: boolean): Promise<boolean> {
138
138
  if (!this.ownerStyle) {
139
- return Promise.reject(new Error('No ownerStyle for property'));
139
+ throw new Error('No ownerStyle for property');
140
140
  }
141
141
 
142
142
  if (!this.ownerStyle.styleSheetId) {
143
- return Promise.reject(new Error('No owner style id'));
143
+ throw new Error('No owner style id');
144
144
  }
145
145
 
146
146
  if (!this.range || !this.ownerStyle.range) {
147
- return Promise.reject(new Error('Style not editable'));
147
+ throw new Error('Style not editable');
148
148
  }
149
149
 
150
150
  if (majorChange) {
@@ -156,7 +156,7 @@ export class CSSProperty {
156
156
 
157
157
  if (overwrite && propertyText === this.propertyText) {
158
158
  this.ownerStyle.cssModel().domModel().markUndoableState(!majorChange);
159
- return Promise.resolve(true);
159
+ return true;
160
160
  }
161
161
 
162
162
  const range = this.range.relativeTo(this.ownerStyle.range.startLine, this.ownerStyle.range.startColumn);
@@ -178,15 +178,15 @@ export class CSSProperty {
178
178
  void this.setText(text, majorChange, overwrite).then(userCallback);
179
179
  }
180
180
 
181
- setDisabled(disabled: boolean): Promise<boolean> {
181
+ async setDisabled(disabled: boolean): Promise<boolean> {
182
182
  if (!this.ownerStyle) {
183
- return Promise.resolve(false);
183
+ return false;
184
184
  }
185
185
  if (disabled === this.disabled) {
186
- return Promise.resolve(true);
186
+ return true;
187
187
  }
188
188
  if (!this.text) {
189
- return Promise.resolve(true);
189
+ return true;
190
190
  }
191
191
  const propertyText = this.text.trim();
192
192
  // Ensure that if we try to enable/disable a property that has no semicolon (which is only legal
@@ -199,7 +199,7 @@ export class RemoteObject {
199
199
  if (property.isAccessorProperty()) {
200
200
  continue;
201
201
  }
202
- if (property.symbol) {
202
+ if (property.private || property.symbol) {
203
203
  propertySymbols.push(property);
204
204
  } else {
205
205
  propertiesMap.set(property.name, property);
@@ -168,9 +168,12 @@ export class Resource implements TextUtils.ContentProvider.ContentProvider {
168
168
  return this.#contentEncodedInternal;
169
169
  }
170
170
 
171
- requestContent(): Promise<TextUtils.ContentProvider.DeferredContent> {
171
+ async requestContent(): Promise<TextUtils.ContentProvider.DeferredContent> {
172
172
  if (typeof this.#contentInternal !== 'undefined') {
173
- return Promise.resolve({content: (this.#contentInternal as string), isEncoded: this.#contentEncodedInternal});
173
+ return {
174
+ content: (this.#contentInternal as string),
175
+ isEncoded: this.#contentEncodedInternal,
176
+ };
174
177
  }
175
178
 
176
179
  return new Promise(resolve => {
@@ -442,6 +442,16 @@ export class RuntimeModel extends SDKModel<EventTypes> {
442
442
  terminateExecution(): Promise<any> {
443
443
  return this.agent.invoke_terminateExecution();
444
444
  }
445
+
446
+ async getExceptionDetails(errorObjectId: Protocol.Runtime.RemoteObjectId):
447
+ Promise<Protocol.Runtime.ExceptionDetails|undefined> {
448
+ const response = await this.agent.invoke_getExceptionDetails({errorObjectId});
449
+ if (response.getError()) {
450
+ // This CDP method errors if called with non-Error object ids. Swallow that.
451
+ return undefined;
452
+ }
453
+ return response.exceptionDetails;
454
+ }
445
455
  }
446
456
 
447
457
  /**
@@ -50,6 +50,7 @@ ConsoleTestRunner.dumpConsoleMessagesIntoArray = async function(printOriginating
50
50
  const element = uiMessage.element();
51
51
  // Retrieving the message element triggered rendering, now wait for
52
52
  // the live location within to be resolved initially.
53
+ await uiMessage.formatErrorStackPromiseForTest();
53
54
  await TestRunner.waitForPendingLiveLocationUpdates();
54
55
 
55
56
  let classNames;
@@ -220,9 +221,14 @@ ConsoleTestRunner.evaluateInConsole = function(code, callback, dontForceMainCont
220
221
  const element = commandResult.toMessageElement();
221
222
  // Only call the callback once the live location within the
222
223
  // message element is resolved initially.
223
- TestRunner.waitForPendingLiveLocationUpdates().then(() => {
224
- callback(element.deepTextContent());
225
- });
224
+ Promise
225
+ .all([
226
+ commandResult.formatErrorStackPromiseForTest(),
227
+ TestRunner.waitForPendingLiveLocationUpdates(),
228
+ ])
229
+ .then(() => {
230
+ callback(element.deepTextContent());
231
+ });
226
232
  });
227
233
  };
228
234
 
@@ -198,31 +198,31 @@ SourcesTestRunner.waitUntilPausedAndDumpStackAndResume = function(callback, opti
198
198
  };
199
199
 
200
200
  SourcesTestRunner.stepOver = function() {
201
- Promise.resolve().then(function() {
201
+ queueMicrotask(function() {
202
202
  UI.panels.sources.stepOver();
203
203
  });
204
204
  };
205
205
 
206
206
  SourcesTestRunner.stepInto = function() {
207
- Promise.resolve().then(function() {
207
+ queueMicrotask(function() {
208
208
  UI.panels.sources.stepInto();
209
209
  });
210
210
  };
211
211
 
212
212
  SourcesTestRunner.stepIntoAsync = function() {
213
- Promise.resolve().then(function() {
213
+ queueMicrotask(function() {
214
214
  UI.panels.sources.stepIntoAsync();
215
215
  });
216
216
  };
217
217
 
218
218
  SourcesTestRunner.stepOut = function() {
219
- Promise.resolve().then(function() {
219
+ queueMicrotask(function() {
220
220
  UI.panels.sources.stepOut();
221
221
  });
222
222
  };
223
223
 
224
224
  SourcesTestRunner.togglePause = function() {
225
- Promise.resolve().then(function() {
225
+ queueMicrotask(function() {
226
226
  UI.panels.sources.togglePause();
227
227
  });
228
228
  };
@@ -46,8 +46,7 @@ interface UISourceCodeData {
46
46
  metadata: Workspace.UISourceCode.UISourceCodeMetadata|null;
47
47
  }
48
48
 
49
- export class ContentProviderBasedProject extends Workspace.Workspace.ProjectStore implements
50
- Workspace.Workspace.Project {
49
+ export class ContentProviderBasedProject extends Workspace.Workspace.ProjectStore {
51
50
  readonly #contentProviders: Map<string, TextUtils.ContentProvider.ContentProvider>;
52
51
  readonly #isServiceProjectInternal: boolean;
53
52
  readonly #uiSourceCodeToData: WeakMap<Workspace.UISourceCode.UISourceCode, UISourceCodeData>;
@@ -199,7 +198,7 @@ export class ContentProviderBasedProject extends Workspace.Workspace.ProjectStor
199
198
  }
200
199
 
201
200
  indexContent(progress: Common.Progress.Progress): void {
202
- void Promise.resolve().then(progress.done.bind(progress));
201
+ queueMicrotask(progress.done.bind(progress));
203
202
  }
204
203
 
205
204
  addUISourceCodeWithProvider(
@@ -153,7 +153,7 @@ export class FileSystemWorkspaceBinding {
153
153
  }
154
154
  }
155
155
 
156
- export class FileSystem extends Workspace.Workspace.ProjectStore implements Workspace.Workspace.Project {
156
+ export class FileSystem extends Workspace.Workspace.ProjectStore {
157
157
  readonly fileSystemInternal: PlatformFileSystem;
158
158
  readonly fileSystemBaseURL: string;
159
159
  private readonly fileSystemParentURL: string;
@@ -42,41 +42,36 @@ export interface ProjectSearchConfig {
42
42
  filePathMatchesFileQuery(filePath: string): boolean;
43
43
  }
44
44
 
45
- export abstract class Project {
46
- abstract workspace(): WorkspaceImpl;
47
- abstract id(): string;
48
- abstract type(): string;
49
- abstract isServiceProject(): boolean;
50
- abstract displayName(): string;
51
- abstract requestMetadata(uiSourceCode: UISourceCode): Promise<UISourceCodeMetadata|null>;
52
- abstract requestFileContent(uiSourceCode: UISourceCode): Promise<TextUtils.ContentProvider.DeferredContent>;
53
- abstract canSetFileContent(): boolean;
54
- abstract setFileContent(uiSourceCode: UISourceCode, newContent: string, isBase64: boolean): Promise<void>;
55
- abstract fullDisplayName(uiSourceCode: UISourceCode): string;
56
- abstract mimeType(uiSourceCode: UISourceCode): string;
57
- abstract canRename(): boolean;
45
+ export interface Project {
46
+ workspace(): WorkspaceImpl;
47
+ id(): string;
48
+ type(): projectTypes;
49
+ isServiceProject(): boolean;
50
+ displayName(): string;
51
+ requestMetadata(uiSourceCode: UISourceCode): Promise<UISourceCodeMetadata|null>;
52
+ requestFileContent(uiSourceCode: UISourceCode): Promise<TextUtils.ContentProvider.DeferredContent>;
53
+ canSetFileContent(): boolean;
54
+ setFileContent(uiSourceCode: UISourceCode, newContent: string, isBase64: boolean): Promise<void>;
55
+ fullDisplayName(uiSourceCode: UISourceCode): string;
56
+ mimeType(uiSourceCode: UISourceCode): string;
57
+ canRename(): boolean;
58
58
  rename(
59
- _uiSourceCode: UISourceCode, _newName: string,
60
- _callback: (arg0: boolean, arg1?: string, arg2?: string, arg3?: Common.ResourceType.ResourceType) => void): void {
61
- }
62
- excludeFolder(_path: string): void {
63
- }
64
- abstract canExcludeFolder(path: string): boolean;
65
- abstract createFile(path: string, name: string|null, content: string, isBase64?: boolean): Promise<UISourceCode|null>;
66
- abstract canCreateFile(): boolean;
67
- deleteFile(_uiSourceCode: UISourceCode): void {
68
- }
69
- remove(): void {
70
- }
71
- abstract searchInFileContent(uiSourceCode: UISourceCode, query: string, caseSensitive: boolean, isRegex: boolean):
59
+ uiSourceCode: UISourceCode, newName: string,
60
+ callback: (arg0: boolean, arg1?: string, arg2?: string, arg3?: Common.ResourceType.ResourceType) => void): void;
61
+ excludeFolder(path: string): void;
62
+ canExcludeFolder(path: string): boolean;
63
+ createFile(path: string, name: string|null, content: string, isBase64?: boolean): Promise<UISourceCode|null>;
64
+ canCreateFile(): boolean;
65
+ deleteFile(uiSourceCode: UISourceCode): void;
66
+ remove(): void;
67
+ searchInFileContent(uiSourceCode: UISourceCode, query: string, caseSensitive: boolean, isRegex: boolean):
72
68
  Promise<TextUtils.ContentProvider.SearchMatch[]>;
73
- abstract findFilesMatchingSearchRequest(
69
+ findFilesMatchingSearchRequest(
74
70
  searchConfig: ProjectSearchConfig, filesMathingFileQuery: string[],
75
71
  progress: Common.Progress.Progress): Promise<string[]>;
76
- indexContent(_progress: Common.Progress.Progress): void {
77
- }
78
- abstract uiSourceCodeForURL(url: string): UISourceCode|null;
79
- abstract uiSourceCodes(): UISourceCode[];
72
+ indexContent(progress: Common.Progress.Progress): void;
73
+ uiSourceCodeForURL(url: string): UISourceCode|null;
74
+ uiSourceCodes(): UISourceCode[];
80
75
  }
81
76
 
82
77
  // TODO(crbug.com/1167717): Make this a const enum again
@@ -90,7 +85,7 @@ export enum projectTypes {
90
85
  Service = 'service',
91
86
  }
92
87
 
93
- export class ProjectStore {
88
+ export abstract class ProjectStore implements Project {
94
89
  private readonly workspaceInternal: WorkspaceImpl;
95
90
  private readonly idInternal: string;
96
91
  private readonly typeInternal: projectTypes;
@@ -100,7 +95,6 @@ export class ProjectStore {
100
95
  index: number,
101
96
  }>;
102
97
  private uiSourceCodesList: UISourceCode[];
103
- private readonly project: Project;
104
98
 
105
99
  constructor(workspace: WorkspaceImpl, id: string, type: projectTypes, displayName: string) {
106
100
  this.workspaceInternal = workspace;
@@ -110,14 +104,13 @@ export class ProjectStore {
110
104
 
111
105
  this.uiSourceCodesMap = new Map();
112
106
  this.uiSourceCodesList = [];
113
- this.project = (this as unknown as Project);
114
107
  }
115
108
 
116
109
  id(): string {
117
110
  return this.idInternal;
118
111
  }
119
112
 
120
- type(): string {
113
+ type(): projectTypes {
121
114
  return this.typeInternal;
122
115
  }
123
116
 
@@ -130,7 +123,7 @@ export class ProjectStore {
130
123
  }
131
124
 
132
125
  createUISourceCode(url: string, contentType: Common.ResourceType.ResourceType): UISourceCode {
133
- return new UISourceCode(this.project, url, contentType);
126
+ return new UISourceCode(this, url, contentType);
134
127
  }
135
128
 
136
129
  addUISourceCode(uiSourceCode: UISourceCode): boolean {
@@ -166,7 +159,7 @@ export class ProjectStore {
166
159
  }
167
160
 
168
161
  removeProject(): void {
169
- this.workspaceInternal.removeProject(this.project);
162
+ this.workspaceInternal.removeProject(this);
170
163
  this.uiSourceCodesMap = new Map();
171
164
  this.uiSourceCodesList = [];
172
165
  }
@@ -190,6 +183,38 @@ export class ProjectStore {
190
183
  this.uiSourceCodesMap.set(newPath, value);
191
184
  this.uiSourceCodesMap.delete(oldPath);
192
185
  }
186
+
187
+ // No-op implementation for a handfull of interface methods.
188
+
189
+ rename(
190
+ _uiSourceCode: UISourceCode, _newName: string,
191
+ _callback: (arg0: boolean, arg1?: string, arg2?: string, arg3?: Common.ResourceType.ResourceType) => void): void {
192
+ }
193
+ excludeFolder(_path: string): void {
194
+ }
195
+ deleteFile(_uiSourceCode: UISourceCode): void {
196
+ }
197
+ remove(): void {
198
+ }
199
+ indexContent(_progress: Common.Progress.Progress): void {
200
+ }
201
+
202
+ abstract isServiceProject(): boolean;
203
+ abstract requestMetadata(uiSourceCode: UISourceCode): Promise<UISourceCodeMetadata|null>;
204
+ abstract requestFileContent(uiSourceCode: UISourceCode): Promise<TextUtils.ContentProvider.DeferredContent>;
205
+ abstract canSetFileContent(): boolean;
206
+ abstract setFileContent(uiSourceCode: UISourceCode, newContent: string, isBase64: boolean): Promise<void>;
207
+ abstract fullDisplayName(uiSourceCode: UISourceCode): string;
208
+ abstract mimeType(uiSourceCode: UISourceCode): string;
209
+ abstract canRename(): boolean;
210
+ abstract canExcludeFolder(path: string): boolean;
211
+ abstract createFile(path: string, name: string|null, content: string, isBase64?: boolean): Promise<UISourceCode|null>;
212
+ abstract canCreateFile(): boolean;
213
+ abstract searchInFileContent(uiSourceCode: UISourceCode, query: string, caseSensitive: boolean, isRegex: boolean):
214
+ Promise<TextUtils.ContentProvider.SearchMatch[]>;
215
+ abstract findFilesMatchingSearchRequest(
216
+ searchConfig: ProjectSearchConfig, filesMathingFileQuery: string[],
217
+ progress: Common.Progress.Progress): Promise<string[]>;
193
218
  }
194
219
 
195
220
  let workspaceInstance: WorkspaceImpl|undefined;
@@ -56,7 +56,7 @@ import type {Chrome} from '../../../extension-api/ExtensionAPI.js'; // eslint-di
56
56
  import {format} from './ConsoleFormat.js';
57
57
  import type {ConsoleViewportElement} from './ConsoleViewport.js';
58
58
  import consoleViewStyles from './consoleView.css.js';
59
- import {parseSourcePositionsFromErrorStack} from './ErrorStackParser.js';
59
+ import {augmentErrorStackWithScriptIds, parseSourcePositionsFromErrorStack} from './ErrorStackParser.js';
60
60
 
61
61
  const UIStrings = {
62
62
  /**
@@ -236,6 +236,9 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
236
236
  private requestResolver: Logs.RequestResolver.RequestResolver;
237
237
  private issueResolver: IssuesManager.IssueResolver.IssueResolver;
238
238
 
239
+ /** Formatting Error#stack is asynchronous. Allow tests to wait for the result */
240
+ #formatErrorStackPromiseForTest = Promise.resolve();
241
+
239
242
  constructor(
240
243
  consoleMessage: SDK.ConsoleModel.ConsoleMessage, linkifier: Components.Linkifier.Linkifier,
241
244
  requestResolver: Logs.RequestResolver.RequestResolver, issueResolver: IssuesManager.IssueResolver.IssueResolver,
@@ -307,6 +310,10 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
307
310
  return this.message;
308
311
  }
309
312
 
313
+ formatErrorStackPromiseForTest(): Promise<void> {
314
+ return this.#formatErrorStackPromiseForTest;
315
+ }
316
+
310
317
  protected buildMessage(): HTMLElement {
311
318
  let messageElement;
312
319
  let messageText: Common.UIString.LocalizedString|string = this.message.messageText;
@@ -816,11 +823,28 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
816
823
 
817
824
  private formatParameterAsError(output: SDK.RemoteObject.RemoteObject): HTMLElement {
818
825
  const result = document.createElement('span');
819
- const errorSpan = this.tryFormatAsError(output.description || '');
820
- result.appendChild(errorSpan ? errorSpan : this.linkifyStringAsFragment(output.description || ''));
826
+ const errorStack = output.description || '';
827
+
828
+ // Combine the ExceptionDetails for this error object with the parsed Error#stack.
829
+ // The Exceptiondetails include script IDs for stack frames, which allows more accurate
830
+ // linking.
831
+ this.#formatErrorStackPromiseForTest = this.retrieveExceptionDetails(output).then(exceptionDetails => {
832
+ const errorSpan = this.tryFormatAsError(errorStack, exceptionDetails);
833
+ result.appendChild(errorSpan ?? this.linkifyStringAsFragment(errorStack));
834
+ });
835
+
821
836
  return result;
822
837
  }
823
838
 
839
+ private async retrieveExceptionDetails(errorObject: SDK.RemoteObject.RemoteObject):
840
+ Promise<Protocol.Runtime.ExceptionDetails|undefined> {
841
+ const runtimeModel = this.message.runtimeModel();
842
+ if (runtimeModel && errorObject.objectId) {
843
+ return runtimeModel.getExceptionDetails(errorObject.objectId);
844
+ }
845
+ return undefined;
846
+ }
847
+
824
848
  private formatAsArrayEntry(output: SDK.RemoteObject.RemoteObject): HTMLElement {
825
849
  return this.previewFormatter.renderPropertyPreview(
826
850
  output.type, output.subtype, output.className, output.description);
@@ -1422,7 +1446,7 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
1422
1446
  return true;
1423
1447
  }
1424
1448
 
1425
- private tryFormatAsError(string: string): HTMLElement|null {
1449
+ private tryFormatAsError(string: string, exceptionDetails?: Protocol.Runtime.ExceptionDetails): HTMLElement|null {
1426
1450
  const runtimeModel = this.message.runtimeModel();
1427
1451
  if (!runtimeModel) {
1428
1452
  return null;
@@ -1432,6 +1456,9 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
1432
1456
  if (!linkInfos?.length) {
1433
1457
  return null;
1434
1458
  }
1459
+ if (exceptionDetails?.stackTrace) {
1460
+ augmentErrorStackWithScriptIds(linkInfos, exceptionDetails.stackTrace);
1461
+ }
1435
1462
 
1436
1463
  const debuggerModel = runtimeModel.debuggerModel();
1437
1464
  const formattedResult = document.createElement('span');
@@ -1447,8 +1474,8 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
1447
1474
  const suffix = `${line.substring(link.positionRight)}${newline}`;
1448
1475
 
1449
1476
  formattedLine.appendChild(this.linkifyStringAsFragment(prefix));
1450
- const scriptLocationLink =
1451
- this.linkifier.linkifyScriptLocation(debuggerModel.target(), null, link.url, link.lineNumber, {
1477
+ const scriptLocationLink = this.linkifier.linkifyScriptLocation(
1478
+ debuggerModel.target(), link.scriptId || null, link.url, link.lineNumber, {
1452
1479
  columnNumber: link.columnNumber,
1453
1480
  className: undefined,
1454
1481
  tabStop: undefined,