chrome-devtools-frontend 1.0.1576915 → 1.0.1578486

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 (56) hide show
  1. package/front_end/core/sdk/DebuggerModel.ts +0 -34
  2. package/front_end/core/sdk/HeapProfilerModel.ts +7 -1
  3. package/front_end/generated/InspectorBackendCommands.ts +5 -4
  4. package/front_end/generated/SupportedCSSProperties.js +5 -8
  5. package/front_end/generated/protocol-mapping.d.ts +9 -0
  6. package/front_end/generated/protocol-proxy-api.d.ts +7 -0
  7. package/front_end/generated/protocol.ts +18 -2
  8. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +9 -7
  9. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +0 -24
  10. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +0 -52
  11. package/front_end/models/stack_trace/StackTrace.ts +3 -9
  12. package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
  13. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +3 -5
  14. package/front_end/panels/ai_assistance/components/ChatMessage.ts +4 -7
  15. package/front_end/panels/ai_assistance/components/ChatView.ts +1 -1
  16. package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
  17. package/front_end/panels/application/DeviceBoundSessionsView.ts +76 -51
  18. package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +0 -1
  19. package/front_end/panels/application/components/BackForwardCacheView.ts +2 -4
  20. package/front_end/panels/autofill/AutofillView.ts +1 -1
  21. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +0 -1
  22. package/front_end/panels/common/GeminiRebrandPromoDialog.ts +2 -0
  23. package/front_end/panels/console/ConsoleViewMessage.ts +0 -1
  24. package/front_end/panels/css_overview/cssOverviewCompletedView.css +5 -0
  25. package/front_end/panels/elements/ElementsTreeElement.ts +0 -1
  26. package/front_end/panels/elements/LayoutPane.ts +7 -8
  27. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
  28. package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -2
  29. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
  30. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
  31. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
  32. package/front_end/panels/media/PlayerListView.ts +1 -1
  33. package/front_end/panels/network/NetworkLogViewColumns.ts +1 -2
  34. package/front_end/panels/network/components/RequestHeaderSection.ts +1 -1
  35. package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
  36. package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
  37. package/front_end/panels/recorder/components/RecordingView.ts +15 -0
  38. package/front_end/panels/recorder/components/StepEditor.ts +3 -3
  39. package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -2
  40. package/front_end/panels/settings/keybindsSettingsTab.css +57 -0
  41. package/front_end/panels/sources/CallStackSidebarPane.ts +74 -175
  42. package/front_end/panels/sources/DebuggerPlugin.ts +2 -2
  43. package/front_end/panels/sources/components/HeadersView.ts +2 -2
  44. package/front_end/panels/timeline/components/BreadcrumbsUI.ts +1 -1
  45. package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +1 -1
  46. package/front_end/third_party/chromium/README.chromium +1 -1
  47. package/front_end/ui/components/suggestion_input/SuggestionInput.ts +12 -7
  48. package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
  49. package/front_end/ui/legacy/ListControl.ts +1 -2
  50. package/front_end/ui/legacy/ListWidget.ts +1 -1
  51. package/front_end/ui/legacy/SoftContextMenu.ts +1 -2
  52. package/front_end/ui/legacy/Treeoutline.ts +0 -1
  53. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -4
  54. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
  55. package/front_end/ui/visual_logging/Debugging.ts +2 -0
  56. package/package.json +1 -1
@@ -34,10 +34,8 @@ import * as Host from '../../core/host/host.js';
34
34
  import * as i18n from '../../core/i18n/i18n.js';
35
35
  import * as Platform from '../../core/platform/platform.js';
36
36
  import * as SDK from '../../core/sdk/sdk.js';
37
- import type * as Protocol from '../../generated/protocol.js';
38
37
  import * as Bindings from '../../models/bindings/bindings.js';
39
38
  import * as Persistence from '../../models/persistence/persistence.js';
40
- import * as SourceMapScopes from '../../models/source_map_scopes/source_map_scopes.js';
41
39
  import * as StackTrace from '../../models/stack_trace/stack_trace.js';
42
40
  import * as Workspace from '../../models/workspace/workspace.js';
43
41
  import {Icon} from '../../ui/kit/kit.js';
@@ -116,14 +114,12 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
116
114
  private list: UI.ListControl.ListControl<Item>;
117
115
  private readonly showMoreMessageElement: Element;
118
116
  private showIgnoreListed = false;
119
- private readonly locationPool = new Bindings.LiveLocation.LiveLocationPool();
120
117
  private maxAsyncStackChainDepth = defaultMaxAsyncStackChainDepth;
121
118
  private readonly updateItemThrottler = new Common.Throttler.Throttler(100);
122
119
  private readonly scheduledForUpdateItems = new Set<Item>();
123
120
  private muteActivateItem?: boolean;
124
- private lastDebuggerModel: SDK.DebuggerModel.DebuggerModel|null = null;
125
121
 
126
- #details: SDK.DebuggerModel.DebuggerPausedDetails|null = null;
122
+ #stackTrace: StackTrace.StackTrace.DebuggableStackTrace|null = null;
127
123
 
128
124
  private constructor() {
129
125
  super({
@@ -194,9 +190,6 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
194
190
  this.showMoreMessageElement = showMoreRef.value as HTMLElement;
195
191
 
196
192
  this.requestUpdate();
197
-
198
- SDK.TargetManager.TargetManager.instance().addModelListener(
199
- SDK.DebuggerModel.DebuggerModel, SDK.DebuggerModel.Events.DebugInfoAttached, this.debugInfoAttached, this);
200
193
  }
201
194
 
202
195
  static instance(opts: {
@@ -210,45 +203,30 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
210
203
  return callstackSidebarPaneInstance;
211
204
  }
212
205
 
213
- flavorChanged(details: SDK.DebuggerModel.DebuggerPausedDetails|null): void {
206
+ async flavorChanged(details: SDK.DebuggerModel.DebuggerPausedDetails|null): Promise<void> {
214
207
  this.showIgnoreListed = false;
215
208
  this.ignoreListCheckboxElement.checked = false;
216
209
  this.maxAsyncStackChainDepth = defaultMaxAsyncStackChainDepth;
217
- this.#details = details;
218
- this.setSourceMapSubscription(details?.debuggerModel ?? null);
219
210
 
220
- this.requestUpdate();
221
- }
222
-
223
- private debugInfoAttached(): void {
224
- this.requestUpdate();
225
- }
226
-
227
- private setSourceMapSubscription(debuggerModel: SDK.DebuggerModel.DebuggerModel|null): void {
228
- // Shortcut for the case when we are listening to the same model.
229
- if (this.lastDebuggerModel === debuggerModel) {
230
- return;
211
+ if (this.#stackTrace) {
212
+ this.#stackTrace.removeEventListener(StackTrace.StackTrace.Events.UPDATED, this.requestUpdate, this);
213
+ this.#stackTrace = null;
214
+ this.requestUpdate(); // In case creating the stack trace takes a while, we render an empty view first.
231
215
  }
232
216
 
233
- if (this.lastDebuggerModel) {
234
- this.lastDebuggerModel.sourceMapManager().removeEventListener(
235
- SDK.SourceMapManager.Events.SourceMapAttached, this.debugInfoAttached, this);
217
+ if (details) {
218
+ this.#stackTrace = await Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance()
219
+ .createStackTraceFromDebuggerPaused(details, details.debuggerModel.target());
220
+ this.#stackTrace.addEventListener(StackTrace.StackTrace.Events.UPDATED, this.requestUpdate, this);
236
221
  }
237
222
 
238
- this.lastDebuggerModel = debuggerModel;
239
- if (this.lastDebuggerModel) {
240
- this.lastDebuggerModel.sourceMapManager().addEventListener(
241
- SDK.SourceMapManager.Events.SourceMapAttached, this.debugInfoAttached, this);
242
- }
223
+ this.requestUpdate();
243
224
  }
244
225
 
245
- override async performUpdate(): Promise<void> {
246
- this.locationPool.disposeAll();
247
-
226
+ override performUpdate(): void {
248
227
  this.callFrameWarningsElement.classList.add('hidden');
249
228
 
250
- const details = this.#details;
251
- if (!details) {
229
+ if (!this.#stackTrace) {
252
230
  this.notPausedMessageElement.classList.remove('hidden');
253
231
  this.ignoreListMessageElement.classList.add('hidden');
254
232
  this.showMoreMessageElement.classList.add('hidden');
@@ -260,39 +238,38 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
260
238
 
261
239
  this.notPausedMessageElement.classList.add('hidden');
262
240
 
263
- const itemPromises = [];
241
+ const items: Item[] = [];
264
242
  const uniqueWarnings = new Set<string>();
265
- for (const frame of details.callFrames) {
266
- const itemPromise =
267
- Item.createForDebuggerCallFrame(frame, this.locationPool, this.refreshItem.bind(this), this.list);
268
- itemPromises.push(itemPromise);
269
- if (frame.missingDebugInfoDetails) {
270
- uniqueWarnings.add(convertMissingDebugInfo(frame.missingDebugInfoDetails, frame.functionName).details);
243
+ for (const frame of this.#stackTrace.syncFragment.frames) {
244
+ items.push(Item.createForDebuggableFrame(frame));
245
+ if (frame.missingDebugInfo) {
246
+ uniqueWarnings.add(convertMissingDebugInfo(frame.missingDebugInfo, frame.sdkFrame.functionName).details);
271
247
  }
272
248
  }
273
- const items = await Promise.all(itemPromises);
249
+
274
250
  if (uniqueWarnings.size) {
275
251
  this.callFrameWarningsElement.classList.remove('hidden');
276
252
  UI.Tooltip.Tooltip.install(this.callFrameWarningsElement, Array.from(uniqueWarnings).join('\n'));
277
253
  }
278
254
 
279
- let previousStackTrace: Protocol.Runtime.CallFrame[]|SDK.DebuggerModel.CallFrame[] = details.callFrames;
280
255
  let {maxAsyncStackChainDepth} = this;
281
- let asyncStackTrace: Protocol.Runtime.StackTrace|null = null;
282
- for await (const {stackTrace} of details.debuggerModel.iterateAsyncParents(details)) {
283
- asyncStackTrace = stackTrace;
284
- const title = UI.UIUtils.asyncStackTraceLabel(asyncStackTrace.description, previousStackTrace);
285
- items.push(...await Item.createItemsForAsyncStack(
286
- title, details.debuggerModel, asyncStackTrace.callFrames, this.locationPool, this.refreshItem.bind(this),
287
- this.list));
288
- previousStackTrace = asyncStackTrace.callFrames;
256
+ let hasMore = false;
257
+ let previousFragment: StackTrace.StackTrace.Fragment = this.#stackTrace.syncFragment;
258
+ for (const asyncFragment of this.#stackTrace.asyncFragments) {
259
+ items.push(Item.createForAsyncHeader(asyncFragment, previousFragment));
260
+ for (const frame of asyncFragment.frames) {
261
+ items.push(Item.createForFrame(frame));
262
+ }
263
+
264
+ previousFragment = asyncFragment;
289
265
 
290
266
  if (--maxAsyncStackChainDepth <= 0) {
267
+ hasMore = asyncFragment !== this.#stackTrace.asyncFragments.at(-1);
291
268
  break;
292
269
  }
293
270
  }
294
271
 
295
- this.showMoreMessageElement.classList.toggle('hidden', !asyncStackTrace);
272
+ this.showMoreMessageElement.classList.toggle('hidden', !hasMore);
296
273
  this.items.replaceAll(items);
297
274
  for (const item of this.items) {
298
275
  this.refreshItem(item);
@@ -363,8 +340,8 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
363
340
  UI.ARIAUtils.setDisabled(element, true);
364
341
  }
365
342
  }
366
- const callframe = item.frame;
367
- const isSelected = callframe === UI.Context.Context.instance().flavor(SDK.DebuggerModel.CallFrame);
343
+ const isSelected =
344
+ item.frame === UI.Context.Context.instance().flavor(StackTrace.StackTrace.DebuggableFrameFlavor)?.frame;
368
345
 
369
346
  element.classList.toggle('selected', isSelected);
370
347
  UI.ARIAUtils.setSelected(element, isSelected);
@@ -375,11 +352,12 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
375
352
  element.appendChild(icon);
376
353
  element.tabIndex = item === this.list.selectedItem() ? 0 : -1;
377
354
 
378
- if (callframe?.missingDebugInfoDetails) {
355
+ if (item.frame?.missingDebugInfo) {
379
356
  const icon = new Icon();
380
357
  icon.name = 'warning-filled';
381
358
  icon.classList.add('call-frame-warning-icon', 'small');
382
- const {resources, details} = convertMissingDebugInfo(callframe.missingDebugInfoDetails, callframe.functionName);
359
+ const {resources, details} =
360
+ convertMissingDebugInfo(item.frame.missingDebugInfo, item.frame.sdkFrame.functionName);
383
361
  const messages = resources.map(
384
362
  r => i18nString(UIStrings.debugFileNotFound, {PH1: Common.ParsedURL.ParsedURL.extractName(r.resourceUrl)}));
385
363
  UI.Tooltip.Tooltip.install(icon, [details, ...messages].join('\n'));
@@ -421,7 +399,7 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
421
399
  return;
422
400
  }
423
401
  const contextMenu = new UI.ContextMenu.ContextMenu(event);
424
- const debuggerCallFrame = item.frame;
402
+ const debuggerCallFrame = item.frame?.sdkFrame;
425
403
  if (debuggerCallFrame) {
426
404
  contextMenu.defaultSection().appendItem(i18nString(UIStrings.restartFrame), () => {
427
405
  Host.userMetrics.actionTaken(Host.UserMetrics.Action.StackFrameRestarted);
@@ -444,17 +422,14 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
444
422
  this.list.selectItem(item);
445
423
  const debuggerCallFrame = item.frame;
446
424
  const oldItem = this.activeCallFrameItem();
447
- if (debuggerCallFrame && oldItem !== item) {
448
- debuggerCallFrame.debuggerModel.setSelectedCallFrame(debuggerCallFrame);
449
- UI.Context.Context.instance().setFlavor(SDK.DebuggerModel.CallFrame, debuggerCallFrame);
425
+ if (debuggerCallFrame) {
426
+ debuggerCallFrame.sdkFrame.debuggerModel.setSelectedCallFrame(debuggerCallFrame.sdkFrame);
427
+ UI.Context.Context.instance().setFlavor(SDK.DebuggerModel.CallFrame, debuggerCallFrame.sdkFrame);
450
428
  UI.Context.Context.instance().setFlavor(
451
429
  StackTrace.StackTrace.DebuggableFrameFlavor,
452
- StackTrace.StackTrace.DebuggableFrameFlavor.for({
453
- uiSourceCode: item.uiLocation?.uiSourceCode,
454
- line: uiLocation.lineNumber,
455
- column: uiLocation.columnNumber ?? -1,
456
- sdkFrame: debuggerCallFrame,
457
- }));
430
+ StackTrace.StackTrace.DebuggableFrameFlavor.for(debuggerCallFrame));
431
+ }
432
+ if (oldItem !== item) {
458
433
  if (oldItem) {
459
434
  this.refreshItem(oldItem);
460
435
  }
@@ -467,7 +442,7 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
467
442
  activeCallFrameItem(): Item|null {
468
443
  const callFrame = UI.Context.Context.instance().flavor(SDK.DebuggerModel.CallFrame);
469
444
  if (callFrame) {
470
- return this.items.find(callFrameItem => callFrameItem.frame === callFrame) || null;
445
+ return this.items.find(callFrameItem => callFrameItem.frame?.sdkFrame === callFrame) || null;
471
446
  }
472
447
  return null;
473
448
  }
@@ -546,132 +521,56 @@ export class ActionDelegate implements UI.ActionRegistration.ActionDelegate {
546
521
  }
547
522
 
548
523
  export class Item {
549
- isIgnoreListed: boolean;
550
- title: string;
551
- linkText: string;
552
- uiLocation: Workspace.UISourceCode.UILocation|null;
553
- isAsyncHeader: boolean;
554
- updateDelegate: (arg0: Item) => void;
524
+ isIgnoreListed = false;
525
+ title = '';
526
+ linkText = '';
527
+ uiLocation: Workspace.UISourceCode.UILocation|null = null;
528
+ isAsyncHeader = false;
529
+
555
530
  /** Only set for synchronous frames */
556
- readonly frame?: SDK.DebuggerModel.CallFrame;
557
- readonly list: UI.ListControl.ListControl<Item>;
558
-
559
- static async createForDebuggerCallFrame(
560
- frame: SDK.DebuggerModel.CallFrame, locationPool: Bindings.LiveLocation.LiveLocationPool,
561
- updateDelegate: (arg0: Item) => void, list: UI.ListControl.ListControl<Item>): Promise<Item> {
562
- const name = frame.functionName;
563
- const item = new Item(UI.UIUtils.beautifyFunctionName(name), updateDelegate, frame, list);
564
- await Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().createCallFrameLiveLocation(
565
- frame.location(), item.update.bind(item), locationPool);
566
- void SourceMapScopes.NamesResolver.resolveDebuggerFrameFunctionName(frame).then(functionName => {
567
- if (functionName && functionName !== name) {
568
- // Just update the item's title and call the update delegate directly,
569
- // instead of going through the update method below, since location
570
- // didn't change.
571
- item.title = functionName;
572
- item.updateDelegate(item);
573
- }
574
- });
531
+ frame?: StackTrace.StackTrace.DebuggableFrame;
532
+
533
+ static createForDebuggableFrame(frame: StackTrace.StackTrace.DebuggableFrame): Item {
534
+ const item = Item.createForFrame(frame);
535
+ item.frame = frame;
575
536
  return item;
576
537
  }
577
538
 
578
- static async createItemsForAsyncStack(
579
- title: string, debuggerModel: SDK.DebuggerModel.DebuggerModel, frames: Protocol.Runtime.CallFrame[],
580
- locationPool: Bindings.LiveLocation.LiveLocationPool, updateDelegate: (arg0: Item) => void,
581
- list: UI.ListControl.ListControl<Item>): Promise<Item[]> {
582
- const headerItemToItemsSet = new WeakMap<Item, Set<Item>>();
583
- const asyncHeaderItem = new Item(title, updateDelegate, undefined, list);
584
- headerItemToItemsSet.set(asyncHeaderItem, new Set());
585
- asyncHeaderItem.isAsyncHeader = true;
586
-
587
- const asyncFrameItems = [];
588
- const liveLocationPromises = [];
589
- for (const frame of frames) {
590
- const item = new Item(UI.UIUtils.beautifyFunctionName(frame.functionName), update, undefined, list);
591
- const rawLocation =
592
- debuggerModel.createRawLocationByScriptId(frame.scriptId, frame.lineNumber, frame.columnNumber);
593
- liveLocationPromises.push(
594
- Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().createCallFrameLiveLocation(
595
- rawLocation, item.update.bind(item), locationPool));
596
- void SourceMapScopes.NamesResolver.resolveProfileFrameFunctionName(frame, debuggerModel.target())
597
- .then(functionName => {
598
- if (functionName && functionName !== frame.functionName) {
599
- item.title = functionName;
600
- item.updateDelegate(item);
601
- }
602
- });
603
- asyncFrameItems.push(item);
604
- }
605
-
606
- await Promise.all(liveLocationPromises);
607
- updateDelegate(asyncHeaderItem);
608
-
609
- return [asyncHeaderItem, ...asyncFrameItems];
610
-
611
- function update(item: Item): void {
612
- updateDelegate(item);
613
- let shouldUpdate = false;
614
- const items = headerItemToItemsSet.get(asyncHeaderItem);
615
- if (items) {
616
- if (item.isIgnoreListed) {
617
- items.delete(item);
618
- shouldUpdate = items.size === 0;
619
- } else {
620
- shouldUpdate = items.size === 0;
621
- items.add(item);
622
- }
623
- asyncHeaderItem.isIgnoreListed = items.size === 0;
624
- }
625
- if (shouldUpdate) {
626
- updateDelegate(asyncHeaderItem);
627
- }
539
+ static createForFrame(frame: StackTrace.StackTrace.Frame): Item {
540
+ const item = new Item(UI.UIUtils.beautifyFunctionName(frame.name ?? ''));
541
+ const uiSourceCode = frame.uiSourceCode;
542
+ if (uiSourceCode) {
543
+ item.isIgnoreListed = uiSourceCode.isIgnoreListed() ?? false;
544
+ item.uiLocation = uiSourceCode.uiLocation(frame.line, frame.column);
545
+ item.linkText = item.uiLocation.linkText();
628
546
  }
547
+ return item;
629
548
  }
630
549
 
631
- constructor(
632
- title: string, updateDelegate: (arg0: Item) => void, frame: SDK.DebuggerModel.CallFrame|undefined,
633
- list: UI.ListControl.ListControl<Item>) {
634
- this.isIgnoreListed = false;
635
- this.title = title;
636
- this.linkText = '';
637
- this.uiLocation = null;
638
- this.isAsyncHeader = false;
639
- this.updateDelegate = updateDelegate;
640
- this.frame = frame;
641
- this.list = list;
550
+ static createForAsyncHeader(
551
+ fragment: StackTrace.StackTrace.AsyncFragment, previousFragment: StackTrace.StackTrace.Fragment): Item {
552
+ const description = UI.UIUtils.asyncStackTraceLabel(
553
+ fragment.description, previousFragment.frames.map(f => ({functionName: f.name ?? ''})));
554
+ const item = new Item(description);
555
+ item.isAsyncHeader = true;
556
+ return item;
642
557
  }
643
558
 
644
- private async update(liveLocation: Bindings.LiveLocation.LiveLocation): Promise<void> {
645
- const uiLocation = await liveLocation.uiLocation();
646
- this.isIgnoreListed = Boolean(uiLocation?.isIgnoreListed());
647
- this.linkText = uiLocation ? uiLocation.linkText() : '';
648
- this.uiLocation = uiLocation;
649
-
650
- if (this.frame && uiLocation && this === this.list.selectedItem()) {
651
- UI.Context.Context.instance().setFlavor(
652
- StackTrace.StackTrace.DebuggableFrameFlavor,
653
- StackTrace.StackTrace.DebuggableFrameFlavor.for({
654
- uiSourceCode: uiLocation.uiSourceCode,
655
- line: uiLocation.lineNumber,
656
- column: uiLocation.columnNumber ?? -1,
657
- sdkFrame: this.frame,
658
- }));
659
- }
660
-
661
- this.updateDelegate(this);
559
+ private constructor(title: string) {
560
+ this.title = title;
662
561
  }
663
562
  }
664
563
 
665
564
  export function convertMissingDebugInfo(
666
- missingDebugInfo: SDK.DebuggerModel.MissingDebugInfo, functionName: string|undefined):
565
+ missingDebugInfo: StackTrace.StackTrace.MissingDebugInfo, functionName: string|undefined):
667
566
  {details: Platform.UIString.LocalizedString, resources: SDK.DebuggerModel.MissingDebugFiles[]} {
668
567
  switch (missingDebugInfo.type) {
669
- case SDK.DebuggerModel.MissingDebugInfoType.PARTIAL_INFO:
568
+ case StackTrace.StackTrace.MissingDebugInfoType.PARTIAL_INFO:
670
569
  return {
671
570
  details: i18nString(UIStrings.debugSymbolsIncomplete, {PH1: functionName ?? ''}),
672
571
  resources: missingDebugInfo.missingDebugFiles
673
572
  };
674
- case SDK.DebuggerModel.MissingDebugInfoType.NO_INFO:
573
+ case StackTrace.StackTrace.MissingDebugInfoType.NO_INFO:
675
574
  return {
676
575
  details: i18nString(UIStrings.failedToLoadDebugSymbolsForFunction, {PH1: functionName ?? ''}),
677
576
  resources: []
@@ -1661,9 +1661,9 @@ export class DebuggerPlugin extends Plugin {
1661
1661
  const uiLocation = new Workspace.UISourceCode.UILocation(
1662
1662
  frameFlavor.frame.uiSourceCode, frameFlavor.frame.line, frameFlavor.frame.column);
1663
1663
  this.setExecutionLocation(uiLocation);
1664
- if (frameFlavor.sdkFrame.missingDebugInfoDetails) {
1664
+ if (frameFlavor.frame.missingDebugInfo) {
1665
1665
  this.updateMissingDebugInfoInfobar(
1666
- convertMissingDebugInfo(frameFlavor.sdkFrame.missingDebugInfoDetails, frameFlavor.sdkFrame.functionName));
1666
+ convertMissingDebugInfo(frameFlavor.frame.missingDebugInfo, frameFlavor.sdkFrame.functionName));
1667
1667
  } else {
1668
1668
  this.updateMissingDebugInfoInfobar(null);
1669
1669
  }
@@ -404,7 +404,7 @@ export class HeadersViewComponent extends HTMLElement {
404
404
  // clang-format off
405
405
  return html`
406
406
  <div class="row" data-block-index=${blockIndex}
407
- jslog=${VisualLogging.treeItem(pattern === '*' ? pattern : undefined).track({resize: true})}>
407
+ jslog=${VisualLogging.treeItem(pattern === '*' ? pattern : undefined)}>
408
408
  <div>${i18n.i18n.lockedString('Apply to')}</div>
409
409
  <div class="separator">:</div>
410
410
  ${this.#renderEditable(pattern, 'apply-to')}
@@ -427,7 +427,7 @@ export class HeadersViewComponent extends HTMLElement {
427
427
  // clang-format off
428
428
  return html`
429
429
  <div class="row padded" data-block-index=${blockIndex} data-header-index=${headerIndex}
430
- jslog=${VisualLogging.treeItem(header.name).parent('headers-editor-row-parent').track({resize: true})}>
430
+ jslog=${VisualLogging.treeItem(header.name).parent('headers-editor-row-parent')}>
431
431
  ${this.#renderEditable(header.name, 'header-name red', true)}
432
432
  <div class="separator">:</div>
433
433
  ${this.#renderEditable(header.value, 'header-value')}
@@ -111,7 +111,7 @@ export class BreadcrumbsUI extends HTMLElement {
111
111
  // clang-format off
112
112
  return html`
113
113
  <div class="breadcrumb" @contextmenu=${(event: Event) => this.#onContextMenu(event, breadcrumb)} @click=${() => this.#activateBreadcrumb(breadcrumb)}
114
- jslog=${VisualLogging.item('timeline.breadcrumb-select').track({click: true, resize: true})}>
114
+ jslog=${VisualLogging.item('timeline.breadcrumb-select').track({click: true})}>
115
115
  <span class="${(breadcrumb === this.#activeBreadcrumb) ? 'active-breadcrumb' : ''} range">
116
116
  ${(index === 0) ?
117
117
  `Full range (${i18n.TimeUtilities.preciseMillisToString(breadcrumbRange, 2)})` :
@@ -424,7 +424,7 @@ export const DEFAULT_VIEW: (input: SidebarAnnotationsTabViewInput, output: objec
424
424
  @mouseout=${() => (annotation.type === 'ENTRY_LABEL') ? input.onAnnotationHoverOut() : null}
425
425
  aria-label=${label}
426
426
  tabindex="0"
427
- jslog=${VisualLogging.item(`timeline.annotation-sidebar.annotation-${jslogForAnnotation(annotation)}`).track({click: true, resize: true})}
427
+ jslog=${VisualLogging.item(`timeline.annotation-sidebar.annotation-${jslogForAnnotation(annotation)}`).track({click: true})}
428
428
  >
429
429
  <div class="annotation">
430
430
  ${renderAnnotationIdentifier(annotation, input.annotationEntryToColorMap)}
@@ -1,7 +1,7 @@
1
1
  Name: Dependencies sourced from the upstream `chromium` repository
2
2
  URL: https://chromium.googlesource.com/chromium/src
3
3
  Version: N/A
4
- Revision: 7b471f64da6b27f50ddd9944c7246a80dc726b40
4
+ Revision: 646502f8c6f04517f8d3605c4a5a5fa20d0af6f5
5
5
  Update Mechanism: Manual (https://crbug.com/428069060)
6
6
  License: BSD-3-Clause
7
7
  License File: LICENSE
@@ -217,16 +217,21 @@ class SuggestionBox extends LitElement {
217
217
  return;
218
218
  }
219
219
 
220
- // clang-format off
221
220
  return html`<style>${contentEditableStyles}</style><ul class="suggestions">
222
- ${this.#suggestions.map((suggestion, index) => html`
223
- <li class=${classMap({selected: index === this.cursor})}
224
- @mousedown=${this.#dispatchSuggestEvent.bind(this, suggestion)}
225
- jslog=${VisualLogging.item('suggestion').track({ click: true, resize: true })}>
221
+ ${this.#suggestions.map((suggestion, index) => {
222
+ return html`<li
223
+ class=${classMap({
224
+ selected: index === this.cursor,
225
+ })}
226
+ @mousedown=${this.#dispatchSuggestEvent.bind(this, suggestion)}
227
+ jslog=${VisualLogging.item('suggestion').track({
228
+ click: true,
229
+ })}
230
+ >
226
231
  ${suggestion}
227
- </li>`)}
232
+ </li>`;
233
+ })}
228
234
  </ul>`;
229
- // clang-format on
230
235
  }
231
236
  }
232
237
 
@@ -475,7 +475,7 @@ export class TreeOutline<TreeNodeDataType> extends HTMLElement {
475
475
  aria-level=${depth + 1}
476
476
  aria-posinset=${positionInSet + 1}
477
477
  class=${listItemClasses}
478
- jslog=${VisualLogging.treeItem(node.jslogContext).track({click: true, resize: true, keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space|Home|End'})}
478
+ jslog=${VisualLogging.treeItem(node.jslogContext).track({click: true, keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space|Home|End'})}
479
479
  @click=${this.#onNodeClick}
480
480
  track-dom-node-to-tree-node=${trackDOMNodeToTreeNode(this.#domNodeToTreeNodeMap, node)}
481
481
  ${Lit.Directives.ref(domNode => {
@@ -364,8 +364,7 @@ export class ListControl<T> {
364
364
  element = this.delegate.createElementForItem(item);
365
365
  if (!element.hasAttribute('jslog')) {
366
366
  element.setAttribute(
367
- 'jslog',
368
- `${VisualLogging.item().track({click: true, resize: true, keydown: 'ArrowUp|ArrowDown|PageUp|PageDown'})}`);
367
+ 'jslog', `${VisualLogging.item().track({click: true, keydown: 'ArrowUp|ArrowDown|PageUp|PageDown'})}`);
369
368
  }
370
369
  this.itemToElement.set(item, element);
371
370
  this.updateElementARIA(element, index);
@@ -150,7 +150,7 @@ export class ListWidget<T> extends VBox {
150
150
  }
151
151
  const content = this.delegate.renderItem(item, editable, this.#items.length - 1);
152
152
  if (!content.hasAttribute('jslog')) {
153
- element.setAttribute('jslog', `${VisualLogging.item().track({resize: true})}`);
153
+ element.setAttribute('jslog', `${VisualLogging.item()}`);
154
154
  }
155
155
  element.appendChild(content);
156
156
  if (editable) {
@@ -335,8 +335,7 @@ export class SoftContextMenu {
335
335
  menuItemElement.addEventListener('mouseleave', (this.menuItemMouseLeave.bind(this) as EventListener), false);
336
336
 
337
337
  if (item.jslogContext) {
338
- menuItemElement.setAttribute(
339
- 'jslog', `${VisualLogging.item(item.jslogContext).track({click: true, resize: true})}`);
338
+ menuItemElement.setAttribute('jslog', `${VisualLogging.item().context(item.jslogContext)}`);
340
339
  }
341
340
  return menuItemElement;
342
341
  }
@@ -499,7 +499,6 @@ export class TreeElement {
499
499
  this.listItemNode.setAttribute(
500
500
  'jslog', `${VisualLogging.treeItem().parent('parentTreeItem').context(jslogContext).track({
501
501
  click: true,
502
- resize: true,
503
502
  keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Backspace|Delete|Enter|Space|Home|End',
504
503
  })}`);
505
504
  ARIAUtils.markAsTreeitem(this.listItemNode);
@@ -1762,10 +1762,8 @@ export class DataGridNode<T> {
1762
1762
 
1763
1763
  protected createElement(): HTMLElement {
1764
1764
  this.elementInternal = document.createElement('tr');
1765
- this.elementInternal.setAttribute('jslog', `${VisualLogging.tableRow().track({
1766
- resize: true,
1767
- keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space'
1768
- })}`);
1765
+ this.elementInternal.setAttribute(
1766
+ 'jslog', `${VisualLogging.tableRow().track({keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space'})}`);
1769
1767
  this.elementInternal.classList.add('data-grid-data-grid-node');
1770
1768
  if (this.dataGrid) {
1771
1769
  this.dataGrid.elementToDataGridNode.set(this.elementInternal, this);
@@ -280,7 +280,7 @@ export class FilteredListWidget extends Common.ObjectWrapper.eventMixin<EventTyp
280
280
  if (this.provider) {
281
281
  render(this.provider.renderItem(item, this.cleanValue()), wrapperElement);
282
282
  wrapperElement.setAttribute(
283
- 'jslog', `${VisualLogging.item(this.provider.jslogContextAt(item)).track({click: true, resize: true})}`);
283
+ 'jslog', `${VisualLogging.item(this.provider.jslogContextAt(item)).track({click: true})}`);
284
284
  }
285
285
  UI.ARIAUtils.markAsOption(wrapperElement);
286
286
  return wrapperElement;
@@ -839,6 +839,8 @@ function checkPendingEventExpectation(): void {
839
839
  event.impressions = event.impressions.filter(impression => !matchedImpressions.has(impression));
840
840
  }
841
841
  }
842
+ pendingEventExpectation.missingEvents = pendingEventExpectation.missingEvents.filter(
843
+ event => !('impressions' in event) || event.impressions.length > 0);
842
844
  return;
843
845
  }
844
846
  if (!compareVeEvents(actualEvents[i], expectedEvent)) {
package/package.json CHANGED
@@ -105,5 +105,5 @@
105
105
  "flat-cache": "6.1.12"
106
106
  }
107
107
  },
108
- "version": "1.0.1576915"
108
+ "version": "1.0.1578486"
109
109
  }