chrome-devtools-frontend 1.0.1643099 → 1.0.1645245
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.
- package/eslint.config.mjs +3 -1
- package/extension-api/ExtensionAPI.d.ts +83 -12
- package/front_end/core/host/UserMetrics.ts +3 -3
- package/front_end/core/root/ExperimentNames.ts +0 -1
- package/front_end/core/sdk/CSSPropertyParserMatchers.ts +2 -3
- package/front_end/core/sdk/ConsoleModel.ts +4 -0
- package/front_end/core/sdk/NetworkRequest.ts +12 -1
- package/front_end/core/sdk/SourceMap.ts +15 -18
- package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +0 -2
- package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +0 -2
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +37 -0
- package/front_end/entrypoints/main/MainImpl.ts +0 -6
- package/front_end/generated/SupportedCSSProperties.js +4 -2
- package/front_end/models/ai_assistance/AiAgent2.ts +23 -12
- package/front_end/models/ai_assistance/README.md +5 -4
- package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +22 -16
- package/front_end/models/ai_assistance/agents/AiAgent.ts +19 -6
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +5 -5
- package/front_end/models/ai_assistance/agents/ExecuteJavascript.ts +1 -94
- package/front_end/models/ai_assistance/agents/NetworkAgent.ts +25 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +37 -0
- package/front_end/models/ai_assistance/agents/README.md +57 -0
- package/front_end/models/ai_assistance/agents/StorageAgent.ts +54 -1
- package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +1 -2
- package/front_end/models/ai_assistance/agents/StylingAgent.ts +31 -3
- package/front_end/models/ai_assistance/tools/ExecuteJavaScript.ts +12 -21
- package/front_end/models/ai_assistance/tools/GetStyles.ts +19 -12
- package/front_end/models/ai_assistance/tools/README.md +45 -0
- package/front_end/models/ai_assistance/tools/Tool.ts +78 -9
- package/front_end/models/ai_assistance/tools/ToolRegistry.ts +21 -5
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +6 -9
- package/front_end/models/bindings/DefaultScriptMapping.ts +2 -1
- package/front_end/models/bindings/SymbolizedError.ts +45 -35
- package/front_end/models/extensions/ExtensionAPI.ts +138 -47
- package/front_end/models/har/Importer.ts +1 -0
- package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +18 -2
- package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +4 -0
- package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +12 -2
- package/front_end/models/stack_trace/DetailedErrorStackParser.ts +58 -52
- package/front_end/models/stack_trace/StackTrace.ts +7 -0
- package/front_end/models/stack_trace/StackTraceImpl.ts +13 -4
- package/front_end/models/stack_trace/StackTraceModel.ts +43 -9
- package/front_end/models/trace/Styles.ts +29 -7
- package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +33 -4
- package/front_end/models/trace/helpers/Timing.ts +10 -0
- package/front_end/models/trace/types/TraceEvents.ts +22 -2
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +2 -1
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +9 -2
- package/front_end/panels/ai_assistance/ai_assistance-meta.ts +16 -0
- package/front_end/panels/application/ApplicationPanelSidebar.ts +83 -0
- package/front_end/panels/application/ApplicationPanelTreeElement.ts +39 -0
- package/front_end/panels/application/CookieItemsView.ts +2 -2
- package/front_end/panels/application/ServiceWorkersView.ts +2 -2
- package/front_end/panels/application/WebMCPView.ts +0 -1
- package/front_end/panels/application/components/BackForwardCacheView.ts +1 -2
- package/front_end/panels/application/resourcesSidebar.css +11 -0
- package/front_end/panels/console/ConsoleView.ts +6 -1
- package/front_end/panels/console/ConsoleViewMessage.ts +46 -213
- package/front_end/panels/console/SymbolizedErrorWidget.ts +14 -8
- package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +0 -1
- package/front_end/panels/elements/ElementsTreeElement.ts +0 -2
- package/front_end/panels/elements/PropertyRenderer.ts +0 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +9 -2
- package/front_end/panels/issues/AffectedResourcesView.ts +1 -1
- package/front_end/panels/issues/AffectedSourcesView.ts +1 -1
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +0 -1
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +10 -0
- package/front_end/panels/network/NetworkDataGridNode.ts +1 -2
- package/front_end/panels/network/NetworkLogView.ts +34 -7
- package/front_end/panels/profiler/HeapProfileView.ts +0 -1
- package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +0 -1
- package/front_end/panels/profiler/HeapSnapshotView.ts +1 -1
- package/front_end/panels/settings/components/SyncSection.ts +1 -1
- package/front_end/panels/settings/emulation/DevicesSettingsTab.ts +1 -0
- package/front_end/panels/sources/SourcesPanel.ts +2 -1
- package/front_end/panels/timeline/TimelineFlameChartView.ts +5 -4
- package/front_end/panels/timeline/TimelinePanel.ts +7 -0
- package/front_end/panels/timeline/TimelineUIUtils.ts +13 -14
- package/front_end/panels/timeline/TimingsTrackAppender.ts +7 -5
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +0 -1
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +0 -2
- package/front_end/panels/timeline/components/insights/ForcedReflow.ts +0 -1
- package/front_end/panels/timeline/components/insights/NodeLink.ts +0 -1
- package/front_end/panels/timeline/overlays/OverlaysImpl.ts +2 -0
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/helpers/OpenInNewTab.ts +3 -3
- package/front_end/ui/kit/link/Link.ts +16 -2
- package/front_end/ui/legacy/InspectorDrawerView.ts +14 -5
- package/front_end/ui/legacy/InspectorView.ts +4 -1
- package/front_end/ui/legacy/PlusButton.ts +6 -1
- package/front_end/ui/legacy/StackedPane.ts +229 -0
- package/front_end/ui/legacy/ViewManager.ts +59 -169
- package/front_end/ui/legacy/Widget.ts +19 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +95 -31
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +0 -1
- package/front_end/ui/legacy/components/utils/Linkifier.ts +2 -16
- package/front_end/ui/legacy/legacy.ts +3 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +5 -0
- package/package.json +1 -1
|
@@ -71,6 +71,10 @@ const UIStrings = {
|
|
|
71
71
|
* @description Text to collapse children of a parent group
|
|
72
72
|
*/
|
|
73
73
|
collapseChildren: 'Collapse children',
|
|
74
|
+
/**
|
|
75
|
+
* @description A context menu item in the Object Properties Section to choose property ordering.
|
|
76
|
+
*/
|
|
77
|
+
sortPropertiesAlphabetically: 'Sort properties alphabetically',
|
|
74
78
|
/**
|
|
75
79
|
* @description Text in Object Properties Section
|
|
76
80
|
*/
|
|
@@ -155,6 +159,22 @@ export interface ObjectTreeOptions {
|
|
|
155
159
|
readonly expansionTracker?: ObjectTreeExpansionTracker;
|
|
156
160
|
}
|
|
157
161
|
|
|
162
|
+
let cachedSortAlphabeticallySetting: Common.Settings.Setting<boolean>|undefined;
|
|
163
|
+
export function sortPropertiesAlphabeticallySetting(): Common.Settings.Setting<boolean> {
|
|
164
|
+
if (!cachedSortAlphabeticallySetting) {
|
|
165
|
+
cachedSortAlphabeticallySetting =
|
|
166
|
+
Common.Settings.Settings.instance().createSetting('object-properties-sort-alphabetically', true);
|
|
167
|
+
}
|
|
168
|
+
return cachedSortAlphabeticallySetting;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// WASM properties are index-based (e.g. locals[0], globals[1]); alphabetical
|
|
172
|
+
// reordering would break the correspondence between displayed index and actual
|
|
173
|
+
// index, so WASM objects are always shown in insertion order.
|
|
174
|
+
export function isWasmObject(object: SDK.RemoteObject.RemoteObject|undefined): boolean {
|
|
175
|
+
return object?.subtype === 'webassemblymemory' || object?.subtype === 'wasmvalue';
|
|
176
|
+
}
|
|
177
|
+
|
|
158
178
|
type KeyTypes = {
|
|
159
179
|
[K in keyof Required<NodeChildren>]: Key<Required<NodeChildren>[K][0]>;
|
|
160
180
|
};
|
|
@@ -362,13 +382,19 @@ export class ObjectTreeExpansionTracker {
|
|
|
362
382
|
|
|
363
383
|
export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrapper<ObjectTreeNodeBase.EventTypes> {
|
|
364
384
|
#children?: NodeChildren;
|
|
385
|
+
protected readonly options: ObjectTreeOptions;
|
|
365
386
|
protected filter: {includeNullOrUndefinedValues: boolean, regex: RegExp|null}|null = null;
|
|
366
387
|
protected extraProperties: ObjectTreeNode[] = [];
|
|
367
388
|
#expanded = false;
|
|
368
389
|
|
|
369
|
-
constructor(readonly parent: ObjectTreeNodeBase|undefined,
|
|
390
|
+
constructor(readonly parent: ObjectTreeNodeBase|undefined, options: ObjectTreeOptions) {
|
|
370
391
|
super();
|
|
371
392
|
this.filter = parent?.filter ?? null;
|
|
393
|
+
this.options = {...options};
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
get isWasm(): boolean {
|
|
397
|
+
return isWasmObject(this.object);
|
|
372
398
|
}
|
|
373
399
|
get expanded(): boolean {
|
|
374
400
|
return this.#expanded;
|
|
@@ -399,6 +425,22 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
399
425
|
this.setFilter({includeNullOrUndefinedValues: value, regex: this.filter?.regex ?? null});
|
|
400
426
|
}
|
|
401
427
|
|
|
428
|
+
get sortPropertiesAlphabetically(): boolean {
|
|
429
|
+
if (this.isWasm) {
|
|
430
|
+
return false;
|
|
431
|
+
}
|
|
432
|
+
return sortPropertiesAlphabeticallySetting().get();
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
set sortPropertiesAlphabetically(value: boolean) {
|
|
436
|
+
const setting = sortPropertiesAlphabeticallySetting();
|
|
437
|
+
if (this.isWasm || setting.get() === value) {
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
setting.set(value);
|
|
441
|
+
this.removeChildren();
|
|
442
|
+
}
|
|
443
|
+
|
|
402
444
|
// Performs a pre-order tree traversal over the populated children. If any children need to be populated, callers must
|
|
403
445
|
// do that while walking (pre-order visitation enables that).
|
|
404
446
|
* #walk(maxDepth = -1): Generator<ObjectTreeNodeBase> {
|
|
@@ -499,13 +541,12 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
499
541
|
|
|
500
542
|
if (this.arrayLength > ARRAY_LOAD_THRESHOLD) {
|
|
501
543
|
const ranges = await arrayRangeGroups(object, 0, this.arrayLength - 1);
|
|
502
|
-
const arrayRanges = ranges?.ranges.map(
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
}));
|
|
544
|
+
const arrayRanges = ranges?.ranges.map(([fromIndex, toIndex, count]) => new ArrayGroupTreeNode(
|
|
545
|
+
object, {fromIndex, toIndex, count}, effectiveParent, {
|
|
546
|
+
readOnly: this.readOnly,
|
|
547
|
+
propertiesMode: this.propertiesMode,
|
|
548
|
+
expansionTracker: this.options.expansionTracker,
|
|
549
|
+
}));
|
|
509
550
|
if (!arrayRanges) {
|
|
510
551
|
return {};
|
|
511
552
|
}
|
|
@@ -517,14 +558,14 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
517
558
|
const properties = objectProperties?.map(p => new ObjectTreeNode(p, effectiveParent, {
|
|
518
559
|
readOnly: this.readOnly,
|
|
519
560
|
propertiesMode: ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
|
|
520
|
-
expansionTracker: this.options.expansionTracker
|
|
561
|
+
expansionTracker: this.options.expansionTracker,
|
|
521
562
|
}));
|
|
522
563
|
|
|
523
564
|
const internalProperties =
|
|
524
565
|
objectInternalProperties?.map(p => new ObjectTreeNode(p, effectiveParent, {
|
|
525
566
|
readOnly: this.readOnly,
|
|
526
567
|
propertiesMode: ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
|
|
527
|
-
expansionTracker: this.options.expansionTracker
|
|
568
|
+
expansionTracker: this.options.expansionTracker,
|
|
528
569
|
}));
|
|
529
570
|
return {arrayRanges, properties, internalProperties};
|
|
530
571
|
}
|
|
@@ -545,17 +586,17 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
545
586
|
const properties = objectProperties?.map(p => new ObjectTreeNode(p, effectiveParent, {
|
|
546
587
|
readOnly: this.readOnly,
|
|
547
588
|
propertiesMode: ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
|
|
548
|
-
expansionTracker: this.options.expansionTracker
|
|
589
|
+
expansionTracker: this.options.expansionTracker,
|
|
549
590
|
}));
|
|
550
591
|
properties?.push(...this.extraProperties);
|
|
551
|
-
properties?.sort(ObjectPropertiesSection.compareProperties);
|
|
592
|
+
properties?.sort((a, b) => ObjectPropertiesSection.compareProperties(a, b, this.sortPropertiesAlphabetically));
|
|
552
593
|
const accessors = properties && ObjectTreeNodeBase.getGettersAndSetters(properties, this.options);
|
|
553
594
|
|
|
554
595
|
const internalProperties =
|
|
555
596
|
objectInternalProperties?.map(p => new ObjectTreeNode(p, effectiveParent, {
|
|
556
597
|
readOnly: this.readOnly,
|
|
557
598
|
propertiesMode: ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
|
|
558
|
-
expansionTracker: this.options.expansionTracker
|
|
599
|
+
expansionTracker: this.options.expansionTracker,
|
|
559
600
|
}));
|
|
560
601
|
return {properties, internalProperties, accessors};
|
|
561
602
|
}
|
|
@@ -577,7 +618,7 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
577
618
|
this.extraProperties.push(...properties.map(p => new ObjectTreeNode(p, this, {
|
|
578
619
|
readOnly: this.readOnly,
|
|
579
620
|
propertiesMode: ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
|
|
580
|
-
expansionTracker: this.options.expansionTracker
|
|
621
|
+
expansionTracker: this.options.expansionTracker,
|
|
581
622
|
})));
|
|
582
623
|
}
|
|
583
624
|
|
|
@@ -591,7 +632,7 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
591
632
|
gettersAndSetters.push(new ObjectTreeNode(getterProperty, property.parent, {
|
|
592
633
|
propertiesMode: property.propertiesMode,
|
|
593
634
|
readOnly: property.readOnly,
|
|
594
|
-
expansionTracker: options.expansionTracker
|
|
635
|
+
expansionTracker: options.expansionTracker,
|
|
595
636
|
}));
|
|
596
637
|
}
|
|
597
638
|
if (property.property.setter) {
|
|
@@ -600,7 +641,7 @@ export abstract class ObjectTreeNodeBase extends Common.ObjectWrapper.ObjectWrap
|
|
|
600
641
|
gettersAndSetters.push(new ObjectTreeNode(setterProperty, property.parent, {
|
|
601
642
|
propertiesMode: property.propertiesMode,
|
|
602
643
|
readOnly: property.readOnly,
|
|
603
|
-
expansionTracker: options.expansionTracker
|
|
644
|
+
expansionTracker: options.expansionTracker,
|
|
604
645
|
}));
|
|
605
646
|
}
|
|
606
647
|
}
|
|
@@ -658,7 +699,7 @@ export class ArrayGroupTreeNode extends ObjectTreeNodeBase {
|
|
|
658
699
|
([fromIndex, toIndex, count]) => new ArrayGroupTreeNode(this.object, {fromIndex, toIndex, count}, this, {
|
|
659
700
|
readOnly: this.readOnly,
|
|
660
701
|
propertiesMode: this.propertiesMode,
|
|
661
|
-
expansionTracker: this.options.expansionTracker
|
|
702
|
+
expansionTracker: this.options.expansionTracker,
|
|
662
703
|
}));
|
|
663
704
|
return {arrayRanges};
|
|
664
705
|
}
|
|
@@ -678,10 +719,10 @@ export class ArrayGroupTreeNode extends ObjectTreeNodeBase {
|
|
|
678
719
|
const properties = allProperties.properties?.map(p => new ObjectTreeNode(p, this, {
|
|
679
720
|
propertiesMode: this.propertiesMode,
|
|
680
721
|
readOnly: this.readOnly,
|
|
681
|
-
expansionTracker: this.options.expansionTracker
|
|
722
|
+
expansionTracker: this.options.expansionTracker,
|
|
682
723
|
}));
|
|
683
724
|
properties?.push(...this.extraProperties);
|
|
684
|
-
properties?.sort(ObjectPropertiesSection.compareProperties);
|
|
725
|
+
properties?.sort((a, b) => ObjectPropertiesSection.compareProperties(a, b, this.sortPropertiesAlphabetically));
|
|
685
726
|
const accessors = properties && ObjectTreeNodeBase.getGettersAndSetters(properties, this.options);
|
|
686
727
|
return {properties, accessors};
|
|
687
728
|
}
|
|
@@ -872,15 +913,16 @@ export class ObjectPropertiesSection extends UI.TreeOutline.TreeOutlineInShadow
|
|
|
872
913
|
}
|
|
873
914
|
|
|
874
915
|
// The RemoteObjectProperty overload is kept for web test compatibility for now.
|
|
875
|
-
static compareProperties(
|
|
876
|
-
|
|
877
|
-
|
|
916
|
+
static compareProperties(propertyA: ObjectTreeNode|SDK.RemoteObject.RemoteObjectProperty,
|
|
917
|
+
propertyB: ObjectTreeNode|SDK.RemoteObject.RemoteObjectProperty,
|
|
918
|
+
sortPropertiesAlphabetically = true): number {
|
|
878
919
|
if (propertyA instanceof ObjectTreeNode) {
|
|
879
920
|
propertyA = propertyA.property;
|
|
880
921
|
}
|
|
881
922
|
if (propertyB instanceof ObjectTreeNode) {
|
|
882
923
|
propertyB = propertyB.property;
|
|
883
924
|
}
|
|
925
|
+
|
|
884
926
|
if (!propertyA.synthetic && propertyB.synthetic) {
|
|
885
927
|
return 1;
|
|
886
928
|
}
|
|
@@ -911,15 +953,20 @@ export class ObjectPropertiesSection extends UI.TreeOutline.TreeOutlineInShadow
|
|
|
911
953
|
if (propertyB.private && !propertyA.private) {
|
|
912
954
|
return -1;
|
|
913
955
|
}
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
956
|
+
|
|
957
|
+
if (sortPropertiesAlphabetically) {
|
|
958
|
+
const nameA = propertyA.name;
|
|
959
|
+
const nameB = propertyB.name;
|
|
960
|
+
if (nameA.startsWith('_') && !nameB.startsWith('_')) {
|
|
961
|
+
return 1;
|
|
962
|
+
}
|
|
963
|
+
if (nameB.startsWith('_') && !nameA.startsWith('_')) {
|
|
964
|
+
return -1;
|
|
965
|
+
}
|
|
966
|
+
return Platform.StringUtilities.naturalOrderComparator(nameA, nameB);
|
|
921
967
|
}
|
|
922
|
-
|
|
968
|
+
|
|
969
|
+
return 0;
|
|
923
970
|
}
|
|
924
971
|
|
|
925
972
|
static createNameElement(name: string|null, isPrivate?: boolean): Element {
|
|
@@ -1297,6 +1344,14 @@ export class RootElement extends UI.TreeOutline.TreeElement {
|
|
|
1297
1344
|
{jslogContext: 'expand-recursively'});
|
|
1298
1345
|
contextMenu.viewSection().appendItem(
|
|
1299
1346
|
i18nString(UIStrings.collapseChildren), this.collapseChildren.bind(this), {jslogContext: 'collapse-children'});
|
|
1347
|
+
if (!this.object.isWasm) {
|
|
1348
|
+
contextMenu.viewSection().appendCheckboxItem(i18nString(UIStrings.sortPropertiesAlphabetically), () => {
|
|
1349
|
+
this.object.sortPropertiesAlphabetically = !this.object.sortPropertiesAlphabetically;
|
|
1350
|
+
}, {
|
|
1351
|
+
checked: this.object.sortPropertiesAlphabetically,
|
|
1352
|
+
jslogContext: 'sort-properties-alphabetically',
|
|
1353
|
+
});
|
|
1354
|
+
}
|
|
1300
1355
|
contextMenu.viewSection().appendCheckboxItem(i18n.i18n.lockedString('Show all'), () => {
|
|
1301
1356
|
this.object.includeNullOrUndefinedValues = !this.object.includeNullOrUndefinedValues;
|
|
1302
1357
|
}, {checked: this.object.includeNullOrUndefinedValues, jslogContext: 'show-all'});
|
|
@@ -1650,7 +1705,8 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1650
1705
|
if (arrayRanges && arrayRanges.length > 0) {
|
|
1651
1706
|
empty = false;
|
|
1652
1707
|
}
|
|
1653
|
-
properties?.
|
|
1708
|
+
const sortPropertiesAlphabetically = properties?.[0]?.parent?.sortPropertiesAlphabetically ?? true;
|
|
1709
|
+
properties?.sort((a, b) => ObjectPropertiesSection.compareProperties(a, b, sortPropertiesAlphabetically));
|
|
1654
1710
|
|
|
1655
1711
|
const entriesProperty = internalProperties?.find(({property}) => property.name === '[[Entries]]');
|
|
1656
1712
|
if (entriesProperty) {
|
|
@@ -1850,6 +1906,14 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
1850
1906
|
while (root.parent) {
|
|
1851
1907
|
root = root.parent;
|
|
1852
1908
|
}
|
|
1909
|
+
if (!root.isWasm) {
|
|
1910
|
+
contextMenu.viewSection().appendCheckboxItem(i18nString(UIStrings.sortPropertiesAlphabetically), () => {
|
|
1911
|
+
root.sortPropertiesAlphabetically = !root.sortPropertiesAlphabetically;
|
|
1912
|
+
}, {
|
|
1913
|
+
checked: root.sortPropertiesAlphabetically,
|
|
1914
|
+
jslogContext: 'sort-properties-alphabetically',
|
|
1915
|
+
});
|
|
1916
|
+
}
|
|
1853
1917
|
contextMenu.viewSection().appendCheckboxItem(i18n.i18n.lockedString('Show all'), () => {
|
|
1854
1918
|
root.includeNullOrUndefinedValues = !root.includeNullOrUndefinedValues;
|
|
1855
1919
|
}, {checked: root.includeNullOrUndefinedValues, jslogContext: 'show-all'});
|
|
@@ -156,7 +156,6 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
156
156
|
const link = Linkifier.linkifyStackTraceFrame(frame, {
|
|
157
157
|
showColumnNumber: Boolean(input.showColumnNumber),
|
|
158
158
|
tabStop: Boolean(input.tabStops),
|
|
159
|
-
inlineFrameIndex: 0,
|
|
160
159
|
revealBreakpoint: previousStackFrameWasBreakpointCondition,
|
|
161
160
|
maxLength: UI.UIUtils.MaxLengthForDisplayedURLsInConsole,
|
|
162
161
|
ignoreListManager: input.ignoreListManager,
|
|
@@ -237,7 +237,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
237
237
|
showColumnNumber: Boolean(options?.showColumnNumber),
|
|
238
238
|
className: options?.className,
|
|
239
239
|
tabStop: options?.tabStop,
|
|
240
|
-
inlineFrameIndex: options?.inlineFrameIndex ?? 0,
|
|
241
240
|
userMetric: options?.userMetric,
|
|
242
241
|
jslogContext: options?.jslogContext || 'script-location',
|
|
243
242
|
omitOrigin: options?.omitOrigin,
|
|
@@ -257,10 +256,8 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
257
256
|
// Prefer createRawLocationByScriptId() here, since it will always produce a correct
|
|
258
257
|
// link, since the script ID is unique. Only fall back to createRawLocationByURL()
|
|
259
258
|
// when all we have is an URL, which is not guaranteed to be unique.
|
|
260
|
-
const rawLocation = scriptId ? debuggerModel.createRawLocationByScriptId(
|
|
261
|
-
|
|
262
|
-
debuggerModel.createRawLocationByURL(
|
|
263
|
-
sourceURL, lineNumber || 0, columnNumber, linkifyURLOptions.inlineFrameIndex);
|
|
259
|
+
const rawLocation = scriptId ? debuggerModel.createRawLocationByScriptId(scriptId, lineNumber || 0, columnNumber) :
|
|
260
|
+
debuggerModel.createRawLocationByURL(sourceURL, lineNumber || 0, columnNumber);
|
|
264
261
|
if (!rawLocation) {
|
|
265
262
|
return fallbackAnchor;
|
|
266
263
|
}
|
|
@@ -313,7 +310,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
313
310
|
className: options?.className,
|
|
314
311
|
columnNumber: options?.columnNumber,
|
|
315
312
|
showColumnNumber: Boolean(options?.showColumnNumber),
|
|
316
|
-
inlineFrameIndex: options?.inlineFrameIndex ?? 0,
|
|
317
313
|
tabStop: options?.tabStop,
|
|
318
314
|
userMetric: options?.userMetric,
|
|
319
315
|
jslogContext: options?.jslogContext || 'script-source-url',
|
|
@@ -329,7 +325,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
329
325
|
rawLocation.debuggerModel.target(), rawLocation.scriptId, fallbackUrl, rawLocation.lineNumber, {
|
|
330
326
|
columnNumber: rawLocation.columnNumber,
|
|
331
327
|
className,
|
|
332
|
-
inlineFrameIndex: rawLocation.inlineFrameIndex,
|
|
333
328
|
tabStop: options?.tabStop,
|
|
334
329
|
});
|
|
335
330
|
}
|
|
@@ -340,7 +335,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
340
335
|
const linkifyOptions: LinkifyOptions = {
|
|
341
336
|
...options,
|
|
342
337
|
columnNumber: callFrame.columnNumber,
|
|
343
|
-
inlineFrameIndex: options?.inlineFrameIndex ?? 0,
|
|
344
338
|
};
|
|
345
339
|
return this.maybeLinkifyScriptLocation(
|
|
346
340
|
target, String(callFrame.scriptId) as Protocol.Runtime.ScriptId,
|
|
@@ -355,7 +349,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
355
349
|
showColumnNumber: Boolean(options?.showColumnNumber),
|
|
356
350
|
className: options?.className,
|
|
357
351
|
tabStop: options?.tabStop,
|
|
358
|
-
inlineFrameIndex: options?.inlineFrameIndex ?? 0,
|
|
359
352
|
userMetric: options?.userMetric,
|
|
360
353
|
jslogContext: options?.jslogContext || 'script-location',
|
|
361
354
|
omitOrigin: options?.omitOrigin,
|
|
@@ -394,7 +387,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
394
387
|
showColumnNumber: Boolean(options?.showColumnNumber),
|
|
395
388
|
className: options?.className,
|
|
396
389
|
tabStop: options?.tabStop,
|
|
397
|
-
inlineFrameIndex: options?.inlineFrameIndex ?? 0,
|
|
398
390
|
userMetric: options?.userMetric,
|
|
399
391
|
jslogContext: options?.jslogContext || 'script-location',
|
|
400
392
|
omitOrigin: options?.omitOrigin,
|
|
@@ -424,7 +416,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
424
416
|
lineNumber,
|
|
425
417
|
columnNumber,
|
|
426
418
|
showColumnNumber: false,
|
|
427
|
-
inlineFrameIndex: 0,
|
|
428
419
|
maxLength: this.maxLength,
|
|
429
420
|
preventClick: true,
|
|
430
421
|
jslogContext: 'script-source-url',
|
|
@@ -595,7 +586,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
595
586
|
static renderLinkifiedUrl(url: Platform.DevToolsPath.UrlString, options?: LinkifyURLOptions): TemplateResult {
|
|
596
587
|
options = options || {
|
|
597
588
|
showColumnNumber: false,
|
|
598
|
-
inlineFrameIndex: 0,
|
|
599
589
|
};
|
|
600
590
|
|
|
601
591
|
const text = options.text;
|
|
@@ -724,7 +714,6 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper<EventTypes> im
|
|
|
724
714
|
url: options.href || null,
|
|
725
715
|
lineNumber: options.lineNumber ?? null,
|
|
726
716
|
columnNumber: options.columnNumber ?? null,
|
|
727
|
-
inlineFrameIndex: 0,
|
|
728
717
|
revealable: null,
|
|
729
718
|
fallback: null,
|
|
730
719
|
userMetric: options.userMetric,
|
|
@@ -1174,7 +1163,6 @@ interface LinkInfo {
|
|
|
1174
1163
|
url: Platform.DevToolsPath.UrlString|null;
|
|
1175
1164
|
lineNumber: number|null;
|
|
1176
1165
|
columnNumber: number|null;
|
|
1177
|
-
inlineFrameIndex: number;
|
|
1178
1166
|
revealable: Object|null;
|
|
1179
1167
|
fallback: Element|null;
|
|
1180
1168
|
userMetric?: Host.UserMetrics.Action;
|
|
@@ -1187,7 +1175,6 @@ export interface LinkifyURLOptions {
|
|
|
1187
1175
|
lineNumber?: number;
|
|
1188
1176
|
columnNumber?: number;
|
|
1189
1177
|
showColumnNumber?: boolean;
|
|
1190
|
-
inlineFrameIndex?: number;
|
|
1191
1178
|
preventClick?: boolean;
|
|
1192
1179
|
maxLength?: number;
|
|
1193
1180
|
tabStop?: boolean;
|
|
@@ -1203,7 +1190,6 @@ export interface LinkifyOptions {
|
|
|
1203
1190
|
className?: string;
|
|
1204
1191
|
columnNumber?: number;
|
|
1205
1192
|
showColumnNumber?: boolean;
|
|
1206
|
-
inlineFrameIndex?: number;
|
|
1207
1193
|
tabStop?: boolean;
|
|
1208
1194
|
userMetric?: Host.UserMetrics.Action;
|
|
1209
1195
|
jslogContext?: string;
|
|
@@ -41,6 +41,7 @@ import * as ShortcutRegistry from './ShortcutRegistry.js';
|
|
|
41
41
|
import * as SoftContextMenu from './SoftContextMenu.js';
|
|
42
42
|
import * as SoftDropDown from './SoftDropDown.js';
|
|
43
43
|
import * as SplitWidget from './SplitWidget.js';
|
|
44
|
+
import * as StackedPane from './StackedPane.js';
|
|
44
45
|
import * as SuggestBox from './SuggestBox.js';
|
|
45
46
|
import * as TabbedPane from './TabbedPane.js';
|
|
46
47
|
import * as TargetCrashedScreen from './TargetCrashedScreen.js';
|
|
@@ -95,6 +96,7 @@ export {
|
|
|
95
96
|
SoftContextMenu,
|
|
96
97
|
SoftDropDown,
|
|
97
98
|
SplitWidget,
|
|
99
|
+
StackedPane,
|
|
98
100
|
SuggestBox,
|
|
99
101
|
TabbedPane,
|
|
100
102
|
TargetCrashedScreen,
|
|
@@ -107,5 +109,5 @@ export {
|
|
|
107
109
|
View,
|
|
108
110
|
ViewManager,
|
|
109
111
|
Widget,
|
|
110
|
-
ZoomManager
|
|
112
|
+
ZoomManager,
|
|
111
113
|
};
|
|
@@ -362,6 +362,7 @@ export const knownContextValues = new Set([
|
|
|
362
362
|
'ai-assistance-v2-opt-in-change-dialog-seen',
|
|
363
363
|
'ai-assistance-v2-opt-in.got-it',
|
|
364
364
|
'ai-assistance-v2-opt-in.manage-settings',
|
|
365
|
+
'ai-assistance.application-panel-context',
|
|
365
366
|
'ai-assistance.storage-floating-button',
|
|
366
367
|
'ai-code-completion-citations',
|
|
367
368
|
'ai-code-completion-citations.citation-link',
|
|
@@ -2896,6 +2897,7 @@ export const knownContextValues = new Set([
|
|
|
2896
2897
|
'object-column',
|
|
2897
2898
|
'object-fit',
|
|
2898
2899
|
'object-position',
|
|
2900
|
+
'object-properties-sort-alphabetically',
|
|
2899
2901
|
'object-view-box',
|
|
2900
2902
|
'oct',
|
|
2901
2903
|
'off',
|
|
@@ -3079,6 +3081,8 @@ export const knownContextValues = new Set([
|
|
|
3079
3081
|
'player',
|
|
3080
3082
|
'playing',
|
|
3081
3083
|
'plus-button',
|
|
3084
|
+
'plus-button-drawer',
|
|
3085
|
+
'plus-button-panel',
|
|
3082
3086
|
'pointer',
|
|
3083
3087
|
'pointer-32-bit',
|
|
3084
3088
|
'pointer-64-bit',
|
|
@@ -3775,6 +3779,7 @@ export const knownContextValues = new Set([
|
|
|
3775
3779
|
'socket',
|
|
3776
3780
|
'some_id',
|
|
3777
3781
|
'sort-by',
|
|
3782
|
+
'sort-properties-alphabetically',
|
|
3778
3783
|
'source-code',
|
|
3779
3784
|
'source-code-widget',
|
|
3780
3785
|
'source-file',
|
package/package.json
CHANGED