chrome-devtools-frontend 1.0.1702515 → 1.0.1704172

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 (84) hide show
  1. package/AUTHORS +1 -0
  2. package/front_end/core/common/ParsedURL.ts +59 -1
  3. package/front_end/core/platform/StringUtilities.ts +65 -0
  4. package/front_end/core/sdk/CPUThrottlingManager.ts +3 -3
  5. package/front_end/core/sdk/SourceMap.ts +3 -3
  6. package/front_end/core/sdk/SourceMapScopeChainEntry.ts +4 -3
  7. package/front_end/core/sdk/SourceMapScopesInfo.ts +17 -5
  8. package/front_end/core/text_utils/Markdown.ts +73 -0
  9. package/front_end/core/text_utils/text_utils.ts +2 -0
  10. package/front_end/entrypoints/main/MainImpl.ts +3 -3
  11. package/front_end/generated/InspectorBackendCommands.ts +3 -1
  12. package/front_end/generated/protocol-mapping.d.ts +8 -0
  13. package/front_end/generated/protocol-proxy-api.d.ts +6 -0
  14. package/front_end/generated/protocol.ts +22 -0
  15. package/front_end/models/bindings/CompilerScriptMapping.ts +1 -1
  16. package/front_end/models/comment_manager/CD4ABridge.ts +5 -0
  17. package/front_end/models/har/HARFormat.ts +7 -2
  18. package/front_end/models/issues_manager/MarkdownIssueDescription.ts +4 -47
  19. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +1 -1
  20. package/front_end/models/source_map_scopes/NamesResolver.ts +13 -5
  21. package/front_end/panels/accessibility/AccessibilityAnnouncementRecordingListView.ts +33 -1
  22. package/front_end/panels/accessibility/AccessibilityAnnouncementRecordingView.ts +4 -12
  23. package/front_end/panels/application/ApplicationPanelSidebar.ts +58 -60
  24. package/front_end/panels/application/BackForwardCacheTreeElement.ts +1 -1
  25. package/front_end/panels/application/FrameDetailsView.ts +64 -82
  26. package/front_end/panels/application/OpenedWindowDetailsView.ts +20 -21
  27. package/front_end/panels/application/PreloadingTreeElement.ts +3 -3
  28. package/front_end/panels/common/CommentsOverlayWidget.ts +145 -72
  29. package/front_end/panels/common/CommentsStatusBarPill.ts +40 -7
  30. package/front_end/panels/common/commentsOverlay.css +34 -23
  31. package/front_end/panels/common/commentsStatusBarPill.css +13 -0
  32. package/front_end/panels/elements/DOMTreeWidget.ts +29 -10
  33. package/front_end/panels/issues/IssueView.ts +5 -1
  34. package/front_end/panels/network/RequestPayloadView.ts +7 -2
  35. package/front_end/panels/network/ShowMoreDetailsWidget.ts +12 -9
  36. package/front_end/panels/sources/DebuggerPlugin.ts +49 -16
  37. package/front_end/panels/sources/SourcesPanel.ts +1 -1
  38. package/front_end/panels/sources/SourcesView.ts +119 -148
  39. package/front_end/panels/sources/TabbedEditorContainer.ts +263 -207
  40. package/front_end/panels/sources/components/HeadersView.ts +193 -123
  41. package/front_end/third_party/chromium/README.chromium +1 -1
  42. package/front_end/third_party/puppeteer/README.chromium +2 -2
  43. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +5 -0
  44. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +24 -32
  45. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ElementHandle.d.ts +1 -1
  46. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ElementHandle.d.ts.map +1 -1
  47. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ElementHandle.js +15 -1
  48. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/ElementHandle.js.map +1 -1
  49. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Accessibility.js +8 -1
  50. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Accessibility.js.map +1 -1
  51. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts +0 -8
  52. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts.map +1 -1
  53. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js +0 -24
  54. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js.map +1 -1
  55. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts +12 -0
  56. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  57. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js +79 -17
  58. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js.map +1 -1
  59. package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.js +1 -1
  60. package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.js.map +1 -1
  61. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
  62. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
  63. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
  64. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
  65. package/front_end/third_party/puppeteer/package/lib/types.d.ts +5 -0
  66. package/front_end/third_party/puppeteer/package/package.json +4 -4
  67. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +15 -2
  68. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +10 -1
  69. package/front_end/third_party/puppeteer/package/src/common/Debug.ts +0 -27
  70. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +96 -17
  71. package/front_end/third_party/puppeteer/package/src/node-env-setup.ts +1 -1
  72. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  73. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  74. package/front_end/ui/comments/CommentAnchorResolver.ts +60 -22
  75. package/front_end/ui/comments/CommentOverlayManager.ts +78 -25
  76. package/front_end/ui/components/markdown_view/MarkdownPlaceholderLitRenderer.ts +7 -65
  77. package/front_end/ui/legacy/TabbedPane.ts +51 -40
  78. package/front_end/ui/legacy/components/data_grid/DataGridExporter.ts +7 -13
  79. package/front_end/ui/legacy/components/inline_editor/PositionAreaEditor.ts +51 -57
  80. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +342 -373
  81. package/front_end/ui/legacy/components/source_frame/ImageView.ts +101 -42
  82. package/front_end/ui/legacy/components/utils/Linkifier.ts +1 -2
  83. package/front_end/ui/visual_logging/KnownContextValues.ts +8 -0
  84. package/package.json +2 -1
@@ -119,9 +119,11 @@ export async function findScopeChainForDebuggerScope(scope: SDK.DebuggerModel.Sc
119
119
  const {scopeTree, text} = scopeTreeAndText;
120
120
 
121
121
  // Compute the offset within the scope tree coordinate space.
122
+ const start = script.rawLocationToRelativeLocation(startLocation);
123
+ const end = script.rawLocationToRelativeLocation(endLocation);
122
124
  const scopeOffsets = {
123
- start: text.offsetFromPosition(startLocation.lineNumber, startLocation.columnNumber),
124
- end: text.offsetFromPosition(endLocation.lineNumber, endLocation.columnNumber),
125
+ start: text.offsetFromPosition(start.lineNumber, start.columnNumber),
126
+ end: text.offsetFromPosition(end.lineNumber, end.columnNumber),
125
127
  };
126
128
 
127
129
  return findScopeChain(scopeTree, scopeOffsets);
@@ -482,7 +484,8 @@ export const allVariablesAtPosition =
482
484
  }
483
485
 
484
486
  const {scopeTree, text} = scopeTreeAndText;
485
- const locationOffset = text.offsetFromPosition(location.lineNumber, location.columnNumber);
487
+ const {lineNumber, columnNumber} = script.rawLocationToRelativeLocation(location);
488
+ const locationOffset = text.offsetFromPosition(lineNumber, columnNumber);
486
489
  const scopeChain = findScopeChain(scopeTree, {start: locationOffset, end: locationOffset});
487
490
 
488
491
  while (scopeChain.length > 0) {
@@ -746,8 +749,8 @@ export class RemoteObject extends SDK.RemoteObject.RemoteObject {
746
749
  * start or if the function scope does not start with a left paren (e.g., arrow
747
750
  * function with one parameter), the resolution returns null.
748
751
  **/
749
- async function getFunctionNameFromScopeStart(
750
- script: SDK.Script.Script, lineNumber: number, columnNumber: number): Promise<string|null> {
752
+ async function getFunctionNameFromScopeStart(script: SDK.Script.Script, rawLineNumber: number,
753
+ rawColumnNumber: number): Promise<string|null> {
751
754
  // To reduce the overhead of resolving function names,
752
755
  // we check for source maps first and immediately leave
753
756
  // this function if the script doesn't have a sourcemap.
@@ -756,6 +759,11 @@ async function getFunctionNameFromScopeStart(
756
759
  return null;
757
760
  }
758
761
 
762
+ // The source map and the script text are relative to the start of the script, whereas
763
+ // raw V8 positions in inline scripts are relative to the start of the document.
764
+ const {lineNumber, columnNumber} =
765
+ script.rawLocationToRelativeLocation({lineNumber: rawLineNumber, columnNumber: rawColumnNumber});
766
+
759
767
  const scopeName = sourceMap.findOriginalFunctionName({line: lineNumber, column: columnNumber});
760
768
  if (scopeName !== null) {
761
769
  return scopeName;
@@ -4,6 +4,7 @@
4
4
 
5
5
  import '../../ui/legacy/components/data_grid/data_grid.js';
6
6
 
7
+ import * as Host from '../../core/host/host.js';
7
8
  import * as i18n from '../../core/i18n/i18n.js';
8
9
  import * as UI from '../../ui/legacy/legacy.js';
9
10
  import * as Lit from '../../ui/lit/lit.js';
@@ -45,6 +46,14 @@ const UIStrings = {
45
46
  * @description Accessible title for the announcements data grid.
46
47
  */
47
48
  ariaLiveRecordingList: 'Accessibility Announcements',
49
+ /**
50
+ * @description Context menu item for copying the announcement message text to the clipboard.
51
+ */
52
+ copyMessage: 'Copy message',
53
+ /**
54
+ * @description Context menu item for copying the announcement element HTML snippet to the clipboard.
55
+ */
56
+ copyElementHtml: 'Copy element HTML',
48
57
  } as const;
49
58
  const str_ =
50
59
  i18n.i18n.registerUIStrings('panels/accessibility/AccessibilityAnnouncementRecordingListView.ts', UIStrings);
@@ -53,6 +62,7 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
53
62
  export interface ViewInput {
54
63
  items: readonly A11yAnnouncement[];
55
64
  selectedItem: A11yAnnouncement|null;
65
+ onContextMenu: (menu: UI.ContextMenu.ContextMenu, item: A11yAnnouncement) => void;
56
66
  onSelect: (item: A11yAnnouncement) => void;
57
67
  onDeselect: () => void;
58
68
  }
@@ -92,7 +102,12 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
92
102
  return html`
93
103
  <tr
94
104
  ?selected=${item === input.selectedItem}
95
- @select=${() => input.onSelect(item)}>
105
+ @select=${() => input.onSelect(item)}
106
+ @contextmenu=${(e: CustomEvent<UI.ContextMenu.ContextMenu>) => {
107
+ if (e.detail instanceof UI.ContextMenu.ContextMenu) {
108
+ input.onContextMenu(e.detail, item);
109
+ }
110
+ }}>
96
111
  <td data-value=${item.time}>
97
112
  <span>${timeString}</span>
98
113
  </td>
@@ -159,10 +174,27 @@ export class AccessibilityAnnouncementRecordingListView extends UI.Widget.VBox {
159
174
  this.requestUpdate();
160
175
  }
161
176
 
177
+ #populateContextMenu(contextMenu: UI.ContextMenu.ContextMenu, item: A11yAnnouncement): void {
178
+ if (item.message) {
179
+ contextMenu.clipboardSection().appendItem(i18nString(UIStrings.copyMessage), () => {
180
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(item.message);
181
+ }, {jslogContext: 'copy-message'});
182
+ }
183
+
184
+ if (item.element) {
185
+ contextMenu.clipboardSection().appendItem(i18nString(UIStrings.copyElementHtml), () => {
186
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(item.element);
187
+ }, {jslogContext: 'copy-element-html'});
188
+ }
189
+ }
190
+
162
191
  override performUpdate(): void {
163
192
  const input: ViewInput = {
164
193
  items: this.#items,
165
194
  selectedItem: this.#selectedItem,
195
+ onContextMenu: (contextMenu: UI.ContextMenu.ContextMenu, item: A11yAnnouncement) => {
196
+ this.#populateContextMenu(contextMenu, item);
197
+ },
166
198
  onSelect: (item: A11yAnnouncement) => {
167
199
  this.selectedItem = item;
168
200
  this.#onSelect?.(item);
@@ -744,14 +744,6 @@ export function validateAndSanitizeAnnouncement(payload: unknown): A11yAnnouncem
744
744
  };
745
745
  }
746
746
 
747
- export function escapeCsvValue(val: string): string {
748
- const escaped = val.replace(/"/g, '""');
749
- if (escaped.includes(',') || escaped.includes('\n') || escaped.includes('\r') || escaped.includes('"')) {
750
- return `"${escaped}"`;
751
- }
752
- return escaped;
753
- }
754
-
755
747
  export function buildCsvContent(announcements: readonly A11yAnnouncement[]): string {
756
748
  const csvRows: string[] = [];
757
749
  csvRows.push(['Time', 'API', 'Politeness', 'Message'].join(','));
@@ -759,10 +751,10 @@ export function buildCsvContent(announcements: readonly A11yAnnouncement[]): str
759
751
  for (const item of announcements) {
760
752
  const timeString = new Date(item.time).toISOString();
761
753
  const row = [
762
- escapeCsvValue(timeString),
763
- escapeCsvValue(item.api),
764
- escapeCsvValue(item.politeness),
765
- escapeCsvValue(item.message),
754
+ Platform.StringUtilities.escapeCsvCell(timeString),
755
+ Platform.StringUtilities.escapeCsvCell(item.api),
756
+ Platform.StringUtilities.escapeCsvCell(item.politeness),
757
+ Platform.StringUtilities.escapeCsvCell(item.message),
766
758
  ];
767
759
  csvRows.push(row.join(','));
768
760
  }
@@ -87,207 +87,205 @@ import {WebMCPTreeElement} from './WebMCPTreeElement.js';
87
87
 
88
88
  const UIStrings = {
89
89
  /**
90
- * @description Text of a context menu item to start a chat with AI
90
+ * @description Context menu item to start a chat with AI in the Application panel sidebar.
91
91
  */
92
92
  startAChat: 'Start a chat',
93
93
  /**
94
- * @description Text of a context menu item to explain contents of a local/session storage bucket with AI
94
+ * @description Context menu item to explain storage with AI in the Application panel sidebar.
95
95
  */
96
96
  explainStorage: 'Explain storage',
97
97
  /**
98
- * @description Text of a context menu item to explain web cookies with AI
98
+ * @description Context menu item to explain cookies with AI in the Application panel sidebar.
99
99
  */
100
100
  explainCookies: 'Explain cookies',
101
101
  /**
102
- * @description Text in Application Panel Sidebar of the Application panel
102
+ * @description Section header for the application section in the sidebar of the Application panel.
103
103
  */
104
104
  application: 'Application',
105
105
  /**
106
- * @description Text in Application Panel Sidebar of the Application panel
106
+ * @description Tree item label for ads in the sidebar of the Application panel.
107
107
  */
108
108
  ads: 'Ads',
109
109
  /**
110
- * @description Tooltip for the experimental icon in the Ads panel
110
+ * @description Tooltip for the experimental feature icon next to the ads item in the sidebar of the Application panel.
111
111
  */
112
112
  experimental: 'Experimental',
113
113
  /**
114
- * @description Text in Application Panel Sidebar of the Application panel
114
+ * @description Tree item label for storage in the sidebar of the Application panel.
115
115
  */
116
116
  storage: 'Storage',
117
117
  /**
118
- * @description Text in Application Panelthat shows if no local storage
119
- * can be shown.
118
+ * @description Empty state text displayed when no local storage is detected in the Application panel.
120
119
  */
121
120
  noLocalStorage: 'No local storage detected',
122
121
  /**
123
- * @description Text in Application Panel Sidebar of the Application panel
122
+ * @description Tree item label for local storage in the sidebar of the Application panel.
124
123
  */
125
124
  localStorage: 'Local storage',
126
125
  /**
127
- * @description Text in the Application panel describing the local storage tab.
126
+ * @description Informational text describing the local storage view in the Application panel.
128
127
  */
129
128
  localStorageDescription: 'On this page you can view, add, edit, and delete local storage key-value pairs',
130
129
  /**
131
- * @description Text in Application Panel Sidebar of the Application panel
130
+ * @description Tree item label for session storage in the sidebar of the Application panel.
132
131
  */
133
132
  sessionStorage: 'Session storage',
134
133
  /**
135
- * @description Text in Application Panel if no session storage can be shown.
134
+ * @description Empty state text displayed when no session storage is detected in the Application panel.
136
135
  */
137
136
  noSessionStorage: 'No session storage detected',
138
137
  /**
139
- * @description Text in the Application panel describing the session storage tab.
138
+ * @description Informational text describing the session storage view in the Application panel.
140
139
  */
141
140
  sessionStorageDescription: 'On this page you can view, add, edit, and delete session storage key-value pairs',
142
141
  /**
143
- * @description Text in Application Panel Sidebar of the Application panel
142
+ * @description Tree item label for extension storage in the sidebar of the Application panel.
144
143
  */
145
144
  extensionStorage: 'Extension storage',
146
145
  /**
147
- * @description Text in Application Panel if no extension storage can be shown
146
+ * @description Empty state text displayed when no extension storage is detected in the Application panel.
148
147
  */
149
148
  noExtensionStorage: 'No extension storage detected',
150
149
  /**
151
- * @description Text in the Application panel describing the extension storage tab.
150
+ * @description Informational text describing the extension storage view in the Application panel.
152
151
  */
153
152
  extensionStorageDescription: 'On this page you can view, add, edit, and delete extension storage key-value pairs',
154
153
  /**
155
- * @description Text for extension session storage in Application panel
154
+ * @description Label for extension session storage in the Application panel.
156
155
  */
157
156
  extensionSessionStorage: 'Session',
158
157
  /**
159
- * @description Text for extension local storage in Application panel
158
+ * @description Label for extension local storage in the Application panel.
160
159
  */
161
160
  extensionLocalStorage: 'Local',
162
161
  /**
163
- * @description Text for extension sync storage in Application panel
162
+ * @description Label for extension sync storage in the Application panel.
164
163
  */
165
164
  extensionSyncStorage: 'Sync',
166
165
  /**
167
- * @description Text for extension managed storage in Application panel
166
+ * @description Label for extension managed storage in the Application panel.
168
167
  */
169
168
  extensionManagedStorage: 'Managed',
170
169
  /**
171
- * @description Text for web cookies
170
+ * @description Tree item label for cookies in the sidebar of the Application panel.
172
171
  */
173
172
  cookies: 'Cookies',
174
173
  /**
175
- * @description Text in the Application Panel if no cookies are set
174
+ * @description Empty state text displayed when no cookies are set in the Application panel.
176
175
  */
177
176
  noCookies: 'No cookies set',
178
177
  /**
179
- * @description Text for web cookies
178
+ * @description Informational text describing the cookies view in the Application panel.
180
179
  */
181
180
  cookiesDescription: 'On this page you can view, add, edit, and delete cookies',
182
181
  /**
183
- * @description Text in Application Panel Sidebar of the Application panel
182
+ * @description Tree item label for background services in the sidebar of the Application panel.
184
183
  */
185
184
  backgroundServices: 'Background services',
186
185
  /**
187
- * @description Text for rendering frames
186
+ * @description Tree item label for frames in the sidebar of the Application panel.
188
187
  */
189
188
  frames: 'Frames',
190
189
  /**
191
- * @description Text that appears on a button for the manifest resource type filter.
190
+ * @description Tree item label for the web app manifest in the sidebar of the Application panel.
192
191
  */
193
192
  manifest: 'Manifest',
194
193
  /**
195
- * @description Text in Application Panel Sidebar of the Application panel
194
+ * @description Tree item label for IndexedDB in the sidebar of the Application panel.
196
195
  */
197
196
  indexeddb: 'IndexedDB',
198
197
  /**
199
- * @description Text in Application Panel if no indexedDB is detected
198
+ * @description Empty state text displayed when no IndexedDB database is detected in the Application panel.
200
199
  */
201
- noIndexeddb: 'No indexedDB detected',
200
+ noIndexeddb: 'No IndexedDB detected',
202
201
  /**
203
- * @description Text in the Application panel describing the extension storage tab.
202
+ * @description Informational text describing the IndexedDB view in the Application panel.
204
203
  */
205
- indexeddbDescription: 'On this page you can view and delete indexedDB key-value pairs and databases',
204
+ indexeddbDescription: 'On this page you can view and delete IndexedDB key-value pairs and databases',
206
205
  /**
207
- * @description A context menu item in the Application Panel Sidebar of the Application panel
206
+ * @description Context menu item to refresh IndexedDB in the Application panel sidebar.
208
207
  */
209
208
  refreshIndexeddb: 'Refresh IndexedDB',
210
209
  /**
211
- * @description Tooltip in Application Panel Sidebar of the Application panel
210
+ * @description Tooltip for an empty database showing its version in the IndexedDB tree item in the Application panel sidebar.
212
211
  * @example {1.0} PH1
213
212
  */
214
213
  versionSEmpty: 'Version: {PH1} (empty)',
215
214
  /**
216
- * @description Tooltip in Application Panel Sidebar of the Application panel
215
+ * @description Tooltip for a database showing its version in the IndexedDB tree item in the Application panel sidebar.
217
216
  * @example {1.0} PH1
218
217
  */
219
218
  versionS: 'Version: {PH1}',
220
219
  /**
221
- * @description Text to clear content
220
+ * @description Context menu item to clear data in the Application panel sidebar.
222
221
  */
223
222
  clear: 'Clear',
224
223
  /**
225
- * @description Text in Application Panel Sidebar of the Application panel
224
+ * @description Tooltip for an object store showing its key path in the IndexedDB tree item in the Application panel sidebar.
226
225
  * @example {"key path"} PH1
227
226
  */
228
227
  keyPathS: 'Key path: {PH1}',
229
228
  /**
230
- * @description Text in Application Panel Sidebar of the Application panel
229
+ * @description Tree item label for local files in the sidebar of the Application panel.
231
230
  */
232
- localFiles: 'Local Files',
231
+ localFiles: 'Local files',
233
232
  /**
234
- * @description Tooltip in Application Panel Sidebar of the Application panel
233
+ * @description Tooltip for a cookie domain showing which frames use its cookies in the Application panel sidebar.
235
234
  * @example {https://example.com} PH1
236
235
  */
237
236
  cookiesUsedByFramesFromS: 'Cookies used by frames from {PH1}',
238
237
  /**
239
- * @description Text in Frames View of the Application panel
238
+ * @description Tree item label for opened windows in the sidebar of the Application panel.
240
239
  */
241
- openedWindows: 'Opened Windows',
240
+ openedWindows: 'Opened windows',
242
241
  /**
243
- * @description Text in Frames View of the Application panel
242
+ * @description Informational text describing the opened windows view in the Application panel.
244
243
  */
245
- openedWindowsDescription: 'On this page you can view windows opened via window\.open\(\)',
244
+ openedWindowsDescription: 'On this page you can view windows opened via `window.open()`',
246
245
  /**
247
- * @description Label for plural of worker type: web workers
246
+ * @description Tree item label for Web Workers in the sidebar of the Application panel.
248
247
  */
249
248
  webWorkers: 'Web Workers',
250
249
  /**
251
- * @description Label in frame tree for unavailable document
250
+ * @description Tree item label in the frame tree when no document is detected in the Application panel sidebar.
252
251
  */
253
252
  documentNotAvailable: 'No document detected',
254
253
  /**
255
- * @description Description of content of unavailable document in Application panel
254
+ * @description Informational text explaining that a document was generated dynamically via document.write().
256
255
  */
257
- theContentOfThisDocumentHasBeen:
258
- 'The content of this document has been generated dynamically via \'document.write()\'',
256
+ theContentOfThisDocumentHasBeen: 'The content of this document has been generated dynamically via `document.write()`',
259
257
  /**
260
- * @description Text in Frames View of the Application panel
258
+ * @description Tree item label for an opened window without a title in the sidebar of the Application panel.
261
259
  */
262
260
  windowWithoutTitle: 'Window without title',
263
261
  /**
264
- * @description Default name for worker
262
+ * @description Fallback tree item label for a worker without a title or URL in the sidebar of the Application panel.
265
263
  */
266
264
  worker: 'worker',
267
265
  /**
268
- * @description Description text for describing the dedicated worker tab.
266
+ * @description Informational text describing the dedicated workers view in the Application panel.
269
267
  */
270
- workerDescription: 'On this page you can view dedicated workers that are created by the parent frame',
268
+ workerDescription: 'On this page you can view dedicated workers added by the parent frame',
271
269
  /**
272
- * @description Aria text for screen reader to announce they can scroll to top of manifest if invoked
270
+ * @description Accessibility announcement indicating that invoking the element scrolls to the top of the manifest.
273
271
  */
274
- onInvokeManifestAlert: 'Manifest: Invoke to scroll to the top of manifest',
272
+ onInvokeManifestAlert: 'Manifest: invoke to scroll to the top of manifest',
275
273
  /**
276
- * @description Aria text for screen reader to announce they can scroll to a section if invoked
274
+ * @description Accessibility announcement indicating that invoking the element scrolls to a section in the manifest.
277
275
  * @example {"Identity"} PH1
278
276
  */
279
- beforeInvokeAlert: '{PH1}: Invoke to scroll to this section in manifest',
277
+ beforeInvokeAlert: '{PH1}: invoke to scroll to this section in manifest',
280
278
  /**
281
- * @description Alert message for screen reader to announce which subsection is being scrolled to
279
+ * @description Accessibility announcement indicating that the manifest view was scrolled to a section.
282
280
  * @example {"Identity"} PH1
283
281
  */
284
282
  onInvokeAlert: 'Scrolled to {PH1}',
285
283
  /**
286
- * @description Application sidebar panel
284
+ * @description Accessibility label for the Application panel sidebar.
287
285
  */
288
286
  applicationSidebarPanel: 'Application panel sidebar',
289
287
  /**
290
- * @description Description text in the Application Panel describing a frame's resources
288
+ * @description Informational text describing a frame's resources in the Application panel.
291
289
  */
292
290
  resourceDescription: 'On this page you can view the frame’s resources',
293
291
  } as const;
@@ -13,7 +13,7 @@ import type {ResourcesPanel} from './ResourcesPanel.js';
13
13
 
14
14
  const UIStrings = {
15
15
  /**
16
- * @description Text in Application Panel Sidebar of the Application panel
16
+ * @description Label for the back/forward cache tree item in the sidebar of the Application panel.
17
17
  */
18
18
  backForwardCache: 'Back/forward cache',
19
19
  } as const;