chrome-devtools-frontend 1.0.1651641 → 1.0.1654411
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/.agents/skills/fixing-skipped-tests/SKILL.md +32 -0
- package/.agents/skills/migrate-chromium-test/SKILL.md +144 -0
- package/docs/get_the_code.md +1 -2
- package/docs/ui_engineering.md +3 -1
- package/eslint.config.mjs +0 -5
- package/front_end/core/sdk/CPUThrottlingManager.ts +13 -8
- package/front_end/core/sdk/CSSMetadata.ts +23 -0
- package/front_end/core/sdk/CompilerSourceMappingContentProvider.ts +8 -4
- package/front_end/core/sdk/DOMModel.ts +4 -0
- package/front_end/core/sdk/EmulationModel.ts +4 -0
- package/front_end/core/sdk/ResourceTreeModel.ts +3 -2
- package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +459 -74
- package/front_end/entrypoints/main/MainImpl.ts +0 -6
- package/front_end/foundation/Universe.ts +18 -0
- package/front_end/generated/InspectorBackendCommands.ts +7 -6
- package/front_end/generated/SupportedCSSProperties.js +208 -34
- package/front_end/generated/protocol.ts +64 -7
- package/front_end/models/ai_assistance/AiAgent2.ts +3 -3
- package/front_end/models/ai_assistance/AiConversation.ts +2 -1
- package/front_end/models/ai_assistance/README.md +5 -4
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +1 -1
- package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +2 -2
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +11 -164
- package/front_end/models/ai_assistance/ai_assistance.ts +6 -2
- package/front_end/models/ai_assistance/contexts/PerformanceTraceContext.ts +295 -0
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +10 -10
- package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +12 -11
- package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +6 -6
- package/front_end/models/ai_assistance/skills/accessibility.md +4 -2
- package/front_end/models/ai_assistance/tools/GetElementAccessibilityDetails.ts +142 -0
- package/front_end/models/ai_assistance/tools/GetStyles.ts +1 -1
- package/front_end/models/ai_assistance/tools/README.md +22 -2
- package/front_end/models/ai_assistance/tools/{ResolveLighthousePath.ts → ResolveDevtoolsNodePath.ts} +18 -17
- package/front_end/models/ai_assistance/tools/Tool.ts +7 -2
- package/front_end/models/ai_assistance/tools/ToolRegistry.ts +10 -8
- package/front_end/models/autofill_manager/AutofillManager.ts +7 -15
- package/front_end/models/bindings/NetworkProject.ts +4 -8
- package/front_end/models/breakpoints/BreakpointManager.ts +9 -9
- package/front_end/models/emulation/DeviceModeModel.ts +24 -0
- package/front_end/models/emulation/EmulatedDevices.ts +108 -0
- package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +36 -0
- package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +8 -0
- package/front_end/models/issues_manager/IssuesManager.ts +10 -6
- package/front_end/models/javascript_metadata/JavaScriptMetadata.ts +4 -5
- package/front_end/models/live-metrics/LiveMetrics.ts +6 -6
- package/front_end/models/live-metrics/web-vitals-injected/spec/spec.ts +5 -5
- package/front_end/models/live-metrics/web-vitals-injected/web-vitals-injected.ts +3 -3
- package/front_end/models/logs/LogManager.ts +25 -10
- package/front_end/models/logs/NetworkLog.ts +24 -19
- package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +14 -5
- package/front_end/models/persistence/IsolatedFileSystem.ts +9 -11
- package/front_end/models/persistence/IsolatedFileSystemManager.ts +5 -3
- package/front_end/models/persistence/NetworkPersistenceManager.ts +73 -44
- package/front_end/models/persistence/PersistenceImpl.ts +4 -5
- package/front_end/models/trace/EntityMapper.ts +1 -1
- package/front_end/panels/ai_assistance/AiAssistancePanel.ts +9 -9
- package/front_end/panels/ai_assistance/ExportConversation.ts +4 -1
- package/front_end/panels/ai_assistance/components/ChatInput.ts +2 -2
- package/front_end/panels/application/IndexedDBViews.ts +38 -36
- package/front_end/panels/application/components/AdsView.ts +4 -0
- package/front_end/panels/autofill/AutofillView.ts +1 -1
- package/front_end/panels/autofill/autofill-meta.ts +3 -2
- package/front_end/panels/elements/AccessibilityTreeUtils.ts +26 -15
- package/front_end/panels/elements/AccessibilityTreeView.ts +12 -9
- package/front_end/panels/elements/ElementsTreeOutline.ts +5 -0
- package/front_end/panels/layer_viewer/LayerTreeOutline.ts +118 -68
- package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
- package/front_end/panels/layer_viewer/layerTreeOutline.css +20 -13
- package/front_end/panels/layers/LayersPanel.ts +1 -1
- package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +64 -17
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +5 -0
- package/front_end/panels/network/LinkPreloadGenerator.ts +101 -0
- package/front_end/panels/network/NetworkLogView.ts +28 -0
- package/front_end/panels/network/network.ts +2 -0
- package/front_end/panels/profiler/HeapSnapshotView.ts +121 -33
- package/front_end/panels/profiler/ModuleUIStrings.ts +4 -0
- package/front_end/panels/sources/ScopeChainSidebarPane.ts +0 -12
- package/front_end/panels/timeline/TimelineHistoryManager.ts +38 -37
- package/front_end/panels/timeline/TimelinePanel.ts +32 -8
- package/front_end/panels/timeline/components/CPUThrottlingSelector.ts +7 -6
- package/front_end/panels/timeline/components/LiveMetricsView.ts +38 -38
- package/front_end/panels/timeline/components/MetricCard.ts +18 -18
- package/front_end/panels/timeline/components/liveMetricsView.css +6 -6
- package/front_end/panels/timeline/components/metricCard.css +4 -4
- package/front_end/panels/whats_new/ReleaseNoteText.ts +3 -3
- package/front_end/panels/whats_new/resources/WNDT.md +1 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/legacy/InspectorDrawerView.ts +7 -5
- package/front_end/ui/legacy/ListWidget.ts +12 -0
- package/front_end/ui/legacy/SplitWidget.ts +12 -11
- package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +23 -19
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +8 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +110 -17
- package/front_end/ui/legacy/treeoutline.css +1 -1
- package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
- package/package.json +4 -3
|
@@ -20,7 +20,7 @@ export const generatedProperties = [
|
|
|
20
20
|
],
|
|
21
21
|
"name": "-alternative-webkit-line-clamp-longhand",
|
|
22
22
|
"runtime_flag": "CSSLineClamp",
|
|
23
|
-
"runtime_flag_status": "
|
|
23
|
+
"runtime_flag_status": "experimental"
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"longhands": [
|
|
@@ -216,6 +216,10 @@ export const generatedProperties = [
|
|
|
216
216
|
},
|
|
217
217
|
{
|
|
218
218
|
"inherited": true,
|
|
219
|
+
"keywords": [
|
|
220
|
+
"before",
|
|
221
|
+
"after"
|
|
222
|
+
],
|
|
219
223
|
"name": "-webkit-ruby-position"
|
|
220
224
|
},
|
|
221
225
|
{
|
|
@@ -249,6 +253,12 @@ export const generatedProperties = [
|
|
|
249
253
|
},
|
|
250
254
|
{
|
|
251
255
|
"inherited": true,
|
|
256
|
+
"keywords": [
|
|
257
|
+
"sideways",
|
|
258
|
+
"upright",
|
|
259
|
+
"sideways-right",
|
|
260
|
+
"vertical-right"
|
|
261
|
+
],
|
|
252
262
|
"name": "-webkit-text-orientation"
|
|
253
263
|
},
|
|
254
264
|
{
|
|
@@ -2150,8 +2160,7 @@ export const generatedProperties = [
|
|
|
2150
2160
|
"layout",
|
|
2151
2161
|
"style",
|
|
2152
2162
|
"paint",
|
|
2153
|
-
"inline-size"
|
|
2154
|
-
"block-size"
|
|
2163
|
+
"inline-size"
|
|
2155
2164
|
],
|
|
2156
2165
|
"name": "contain"
|
|
2157
2166
|
},
|
|
@@ -2674,6 +2683,35 @@ export const generatedProperties = [
|
|
|
2674
2683
|
"name": "direction"
|
|
2675
2684
|
},
|
|
2676
2685
|
{
|
|
2686
|
+
"devtools_keywords": [
|
|
2687
|
+
"inline",
|
|
2688
|
+
"block",
|
|
2689
|
+
"list-item",
|
|
2690
|
+
"inline-block",
|
|
2691
|
+
"table",
|
|
2692
|
+
"inline-table",
|
|
2693
|
+
"table-row-group",
|
|
2694
|
+
"table-header-group",
|
|
2695
|
+
"table-footer-group",
|
|
2696
|
+
"table-row",
|
|
2697
|
+
"table-column-group",
|
|
2698
|
+
"table-column",
|
|
2699
|
+
"table-cell",
|
|
2700
|
+
"table-caption",
|
|
2701
|
+
"-webkit-box",
|
|
2702
|
+
"-webkit-inline-box",
|
|
2703
|
+
"flex",
|
|
2704
|
+
"inline-flex",
|
|
2705
|
+
"grid",
|
|
2706
|
+
"inline-grid",
|
|
2707
|
+
"contents",
|
|
2708
|
+
"flow-root",
|
|
2709
|
+
"none",
|
|
2710
|
+
"flow",
|
|
2711
|
+
"math",
|
|
2712
|
+
"ruby",
|
|
2713
|
+
"ruby-text"
|
|
2714
|
+
],
|
|
2677
2715
|
"keywords": [
|
|
2678
2716
|
"inline",
|
|
2679
2717
|
"block",
|
|
@@ -3427,8 +3465,6 @@ export const generatedProperties = [
|
|
|
3427
3465
|
"inherited": true,
|
|
3428
3466
|
"keywords": [
|
|
3429
3467
|
"auto",
|
|
3430
|
-
"optimizespeed",
|
|
3431
|
-
"optimizequality",
|
|
3432
3468
|
"-webkit-optimize-contrast",
|
|
3433
3469
|
"pixelated",
|
|
3434
3470
|
"crisp-edges"
|
|
@@ -3588,6 +3624,13 @@ export const generatedProperties = [
|
|
|
3588
3624
|
"name": "lighting-color"
|
|
3589
3625
|
},
|
|
3590
3626
|
{
|
|
3627
|
+
"devtools_keywords": [
|
|
3628
|
+
"auto",
|
|
3629
|
+
"loose",
|
|
3630
|
+
"normal",
|
|
3631
|
+
"strict",
|
|
3632
|
+
"anywhere"
|
|
3633
|
+
],
|
|
3591
3634
|
"inherited": true,
|
|
3592
3635
|
"keywords": [
|
|
3593
3636
|
"auto",
|
|
@@ -3600,6 +3643,12 @@ export const generatedProperties = [
|
|
|
3600
3643
|
"name": "line-break"
|
|
3601
3644
|
},
|
|
3602
3645
|
{
|
|
3646
|
+
"devtools_keywords": [
|
|
3647
|
+
"none",
|
|
3648
|
+
"auto",
|
|
3649
|
+
"ellipsis",
|
|
3650
|
+
"no-ellipsis"
|
|
3651
|
+
],
|
|
3603
3652
|
"keywords": [
|
|
3604
3653
|
"none",
|
|
3605
3654
|
"auto",
|
|
@@ -3609,7 +3658,7 @@ export const generatedProperties = [
|
|
|
3609
3658
|
],
|
|
3610
3659
|
"name": "line-clamp",
|
|
3611
3660
|
"runtime_flag": "CSSLineClamp",
|
|
3612
|
-
"runtime_flag_status": "
|
|
3661
|
+
"runtime_flag_status": "experimental"
|
|
3613
3662
|
},
|
|
3614
3663
|
{
|
|
3615
3664
|
"is_descriptor": true,
|
|
@@ -4082,6 +4131,18 @@ export const generatedProperties = [
|
|
|
4082
4131
|
"name": "outline-offset"
|
|
4083
4132
|
},
|
|
4084
4133
|
{
|
|
4134
|
+
"devtools_keywords": [
|
|
4135
|
+
"none",
|
|
4136
|
+
"auto",
|
|
4137
|
+
"inset",
|
|
4138
|
+
"groove",
|
|
4139
|
+
"outset",
|
|
4140
|
+
"ridge",
|
|
4141
|
+
"dotted",
|
|
4142
|
+
"dashed",
|
|
4143
|
+
"solid",
|
|
4144
|
+
"double"
|
|
4145
|
+
],
|
|
4085
4146
|
"keywords": [
|
|
4086
4147
|
"none",
|
|
4087
4148
|
"hidden",
|
|
@@ -4433,7 +4494,43 @@ export const generatedProperties = [
|
|
|
4433
4494
|
"end",
|
|
4434
4495
|
"self-start",
|
|
4435
4496
|
"self-end",
|
|
4436
|
-
"all"
|
|
4497
|
+
"span-all",
|
|
4498
|
+
"span-left",
|
|
4499
|
+
"span-right",
|
|
4500
|
+
"span-x-start",
|
|
4501
|
+
"span-x-end",
|
|
4502
|
+
"self-x-start",
|
|
4503
|
+
"self-x-end",
|
|
4504
|
+
"span-self-x-start",
|
|
4505
|
+
"span-self-x-end",
|
|
4506
|
+
"span-top",
|
|
4507
|
+
"span-bottom",
|
|
4508
|
+
"span-y-start",
|
|
4509
|
+
"span-y-end",
|
|
4510
|
+
"self-y-start",
|
|
4511
|
+
"self-y-end",
|
|
4512
|
+
"span-self-y-start",
|
|
4513
|
+
"span-self-y-end",
|
|
4514
|
+
"block-start",
|
|
4515
|
+
"block-end",
|
|
4516
|
+
"span-block-start",
|
|
4517
|
+
"span-block-end",
|
|
4518
|
+
"inline-start",
|
|
4519
|
+
"inline-end",
|
|
4520
|
+
"span-inline-start",
|
|
4521
|
+
"span-inline-end",
|
|
4522
|
+
"self-block-start",
|
|
4523
|
+
"self-block-end",
|
|
4524
|
+
"span-self-block-start",
|
|
4525
|
+
"span-self-block-end",
|
|
4526
|
+
"self-inline-start",
|
|
4527
|
+
"self-inline-end",
|
|
4528
|
+
"span-self-inline-start",
|
|
4529
|
+
"span-self-inline-end",
|
|
4530
|
+
"span-start",
|
|
4531
|
+
"span-end",
|
|
4532
|
+
"span-self-start",
|
|
4533
|
+
"span-self-end"
|
|
4437
4534
|
],
|
|
4438
4535
|
"name": "position-area"
|
|
4439
4536
|
},
|
|
@@ -5275,6 +5372,17 @@ export const generatedProperties = [
|
|
|
5275
5372
|
"name": "table-layout"
|
|
5276
5373
|
},
|
|
5277
5374
|
{
|
|
5375
|
+
"devtools_keywords": [
|
|
5376
|
+
"left",
|
|
5377
|
+
"right",
|
|
5378
|
+
"center",
|
|
5379
|
+
"justify",
|
|
5380
|
+
"-webkit-left",
|
|
5381
|
+
"-webkit-right",
|
|
5382
|
+
"-webkit-center",
|
|
5383
|
+
"start",
|
|
5384
|
+
"end"
|
|
5385
|
+
],
|
|
5278
5386
|
"inherited": true,
|
|
5279
5387
|
"keywords": [
|
|
5280
5388
|
"left",
|
|
@@ -5291,6 +5399,15 @@ export const generatedProperties = [
|
|
|
5291
5399
|
"name": "text-align"
|
|
5292
5400
|
},
|
|
5293
5401
|
{
|
|
5402
|
+
"devtools_keywords": [
|
|
5403
|
+
"auto",
|
|
5404
|
+
"start",
|
|
5405
|
+
"end",
|
|
5406
|
+
"left",
|
|
5407
|
+
"right",
|
|
5408
|
+
"center",
|
|
5409
|
+
"justify"
|
|
5410
|
+
],
|
|
5294
5411
|
"inherited": true,
|
|
5295
5412
|
"keywords": [
|
|
5296
5413
|
"auto",
|
|
@@ -5474,7 +5591,8 @@ export const generatedProperties = [
|
|
|
5474
5591
|
"keywords": [
|
|
5475
5592
|
"sideways",
|
|
5476
5593
|
"mixed",
|
|
5477
|
-
"upright"
|
|
5594
|
+
"upright",
|
|
5595
|
+
"sideways-right"
|
|
5478
5596
|
],
|
|
5479
5597
|
"name": "text-orientation"
|
|
5480
5598
|
},
|
|
@@ -5531,6 +5649,13 @@ export const generatedProperties = [
|
|
|
5531
5649
|
"name": "text-spacing-trim"
|
|
5532
5650
|
},
|
|
5533
5651
|
{
|
|
5652
|
+
"devtools_keywords": [
|
|
5653
|
+
"none",
|
|
5654
|
+
"capitalize",
|
|
5655
|
+
"uppercase",
|
|
5656
|
+
"lowercase",
|
|
5657
|
+
"math-auto"
|
|
5658
|
+
],
|
|
5534
5659
|
"inherited": true,
|
|
5535
5660
|
"keywords": [
|
|
5536
5661
|
"none",
|
|
@@ -5588,6 +5713,9 @@ export const generatedProperties = [
|
|
|
5588
5713
|
"name": "text-wrap-style"
|
|
5589
5714
|
},
|
|
5590
5715
|
{
|
|
5716
|
+
"devtools_keywords": [
|
|
5717
|
+
"none"
|
|
5718
|
+
],
|
|
5591
5719
|
"keywords": [
|
|
5592
5720
|
"none",
|
|
5593
5721
|
"all"
|
|
@@ -5799,6 +5927,12 @@ export const generatedProperties = [
|
|
|
5799
5927
|
"name": "unicode-range"
|
|
5800
5928
|
},
|
|
5801
5929
|
{
|
|
5930
|
+
"devtools_keywords": [
|
|
5931
|
+
"auto",
|
|
5932
|
+
"none",
|
|
5933
|
+
"text",
|
|
5934
|
+
"all"
|
|
5935
|
+
],
|
|
5802
5936
|
"inherited": true,
|
|
5803
5937
|
"keywords": [
|
|
5804
5938
|
"auto",
|
|
@@ -5868,6 +6002,9 @@ export const generatedProperties = [
|
|
|
5868
6002
|
"name": "view-transition-group"
|
|
5869
6003
|
},
|
|
5870
6004
|
{
|
|
6005
|
+
"devtools_keywords": [
|
|
6006
|
+
"none"
|
|
6007
|
+
],
|
|
5871
6008
|
"keywords": [
|
|
5872
6009
|
"none",
|
|
5873
6010
|
"auto"
|
|
@@ -6083,6 +6220,12 @@ export const generatedPropertyValues = {
|
|
|
6083
6220
|
"visual"
|
|
6084
6221
|
]
|
|
6085
6222
|
},
|
|
6223
|
+
"-webkit-ruby-position": {
|
|
6224
|
+
"values": [
|
|
6225
|
+
"before",
|
|
6226
|
+
"after"
|
|
6227
|
+
]
|
|
6228
|
+
},
|
|
6086
6229
|
"-webkit-text-combine": {
|
|
6087
6230
|
"values": [
|
|
6088
6231
|
"none",
|
|
@@ -6100,6 +6243,14 @@ export const generatedPropertyValues = {
|
|
|
6100
6243
|
"grammar-error"
|
|
6101
6244
|
]
|
|
6102
6245
|
},
|
|
6246
|
+
"-webkit-text-orientation": {
|
|
6247
|
+
"values": [
|
|
6248
|
+
"sideways",
|
|
6249
|
+
"upright",
|
|
6250
|
+
"sideways-right",
|
|
6251
|
+
"vertical-right"
|
|
6252
|
+
]
|
|
6253
|
+
},
|
|
6103
6254
|
"-webkit-text-security": {
|
|
6104
6255
|
"values": [
|
|
6105
6256
|
"none",
|
|
@@ -6912,8 +7063,7 @@ export const generatedPropertyValues = {
|
|
|
6912
7063
|
"layout",
|
|
6913
7064
|
"style",
|
|
6914
7065
|
"paint",
|
|
6915
|
-
"inline-size"
|
|
6916
|
-
"block-size"
|
|
7066
|
+
"inline-size"
|
|
6917
7067
|
]
|
|
6918
7068
|
},
|
|
6919
7069
|
"contain-intrinsic-block-size": {
|
|
@@ -7198,9 +7348,7 @@ export const generatedPropertyValues = {
|
|
|
7198
7348
|
"flow",
|
|
7199
7349
|
"math",
|
|
7200
7350
|
"ruby",
|
|
7201
|
-
"ruby-text"
|
|
7202
|
-
"grid-lanes",
|
|
7203
|
-
"inline-grid-lanes"
|
|
7351
|
+
"ruby-text"
|
|
7204
7352
|
]
|
|
7205
7353
|
},
|
|
7206
7354
|
"dominant-baseline": {
|
|
@@ -7649,8 +7797,6 @@ export const generatedPropertyValues = {
|
|
|
7649
7797
|
"image-rendering": {
|
|
7650
7798
|
"values": [
|
|
7651
7799
|
"auto",
|
|
7652
|
-
"optimizespeed",
|
|
7653
|
-
"optimizequality",
|
|
7654
7800
|
"-webkit-optimize-contrast",
|
|
7655
7801
|
"pixelated",
|
|
7656
7802
|
"crisp-edges"
|
|
@@ -7745,8 +7891,7 @@ export const generatedPropertyValues = {
|
|
|
7745
7891
|
"loose",
|
|
7746
7892
|
"normal",
|
|
7747
7893
|
"strict",
|
|
7748
|
-
"anywhere"
|
|
7749
|
-
"after-white-space"
|
|
7894
|
+
"anywhere"
|
|
7750
7895
|
]
|
|
7751
7896
|
},
|
|
7752
7897
|
"line-clamp": {
|
|
@@ -7754,8 +7899,7 @@ export const generatedPropertyValues = {
|
|
|
7754
7899
|
"none",
|
|
7755
7900
|
"auto",
|
|
7756
7901
|
"ellipsis",
|
|
7757
|
-
"no-ellipsis"
|
|
7758
|
-
"-webkit-legacy"
|
|
7902
|
+
"no-ellipsis"
|
|
7759
7903
|
]
|
|
7760
7904
|
},
|
|
7761
7905
|
"line-height": {
|
|
@@ -8050,7 +8194,7 @@ export const generatedPropertyValues = {
|
|
|
8050
8194
|
"outline-style": {
|
|
8051
8195
|
"values": [
|
|
8052
8196
|
"none",
|
|
8053
|
-
"
|
|
8197
|
+
"auto",
|
|
8054
8198
|
"inset",
|
|
8055
8199
|
"groove",
|
|
8056
8200
|
"outset",
|
|
@@ -8224,7 +8368,43 @@ export const generatedPropertyValues = {
|
|
|
8224
8368
|
"end",
|
|
8225
8369
|
"self-start",
|
|
8226
8370
|
"self-end",
|
|
8227
|
-
"all"
|
|
8371
|
+
"span-all",
|
|
8372
|
+
"span-left",
|
|
8373
|
+
"span-right",
|
|
8374
|
+
"span-x-start",
|
|
8375
|
+
"span-x-end",
|
|
8376
|
+
"self-x-start",
|
|
8377
|
+
"self-x-end",
|
|
8378
|
+
"span-self-x-start",
|
|
8379
|
+
"span-self-x-end",
|
|
8380
|
+
"span-top",
|
|
8381
|
+
"span-bottom",
|
|
8382
|
+
"span-y-start",
|
|
8383
|
+
"span-y-end",
|
|
8384
|
+
"self-y-start",
|
|
8385
|
+
"self-y-end",
|
|
8386
|
+
"span-self-y-start",
|
|
8387
|
+
"span-self-y-end",
|
|
8388
|
+
"block-start",
|
|
8389
|
+
"block-end",
|
|
8390
|
+
"span-block-start",
|
|
8391
|
+
"span-block-end",
|
|
8392
|
+
"inline-start",
|
|
8393
|
+
"inline-end",
|
|
8394
|
+
"span-inline-start",
|
|
8395
|
+
"span-inline-end",
|
|
8396
|
+
"self-block-start",
|
|
8397
|
+
"self-block-end",
|
|
8398
|
+
"span-self-block-start",
|
|
8399
|
+
"span-self-block-end",
|
|
8400
|
+
"self-inline-start",
|
|
8401
|
+
"self-inline-end",
|
|
8402
|
+
"span-self-inline-start",
|
|
8403
|
+
"span-self-inline-end",
|
|
8404
|
+
"span-start",
|
|
8405
|
+
"span-end",
|
|
8406
|
+
"span-self-start",
|
|
8407
|
+
"span-self-end"
|
|
8228
8408
|
]
|
|
8229
8409
|
},
|
|
8230
8410
|
"position-try-fallbacks": {
|
|
@@ -8601,8 +8781,7 @@ export const generatedPropertyValues = {
|
|
|
8601
8781
|
"-webkit-right",
|
|
8602
8782
|
"-webkit-center",
|
|
8603
8783
|
"start",
|
|
8604
|
-
"end"
|
|
8605
|
-
"match-parent"
|
|
8784
|
+
"end"
|
|
8606
8785
|
]
|
|
8607
8786
|
},
|
|
8608
8787
|
"text-align-last": {
|
|
@@ -8613,8 +8792,7 @@ export const generatedPropertyValues = {
|
|
|
8613
8792
|
"left",
|
|
8614
8793
|
"right",
|
|
8615
8794
|
"center",
|
|
8616
|
-
"justify"
|
|
8617
|
-
"match-parent"
|
|
8795
|
+
"justify"
|
|
8618
8796
|
]
|
|
8619
8797
|
},
|
|
8620
8798
|
"text-anchor": {
|
|
@@ -8722,7 +8900,8 @@ export const generatedPropertyValues = {
|
|
|
8722
8900
|
"values": [
|
|
8723
8901
|
"sideways",
|
|
8724
8902
|
"mixed",
|
|
8725
|
-
"upright"
|
|
8903
|
+
"upright",
|
|
8904
|
+
"sideways-right"
|
|
8726
8905
|
]
|
|
8727
8906
|
},
|
|
8728
8907
|
"text-overflow": {
|
|
@@ -8764,8 +8943,6 @@ export const generatedPropertyValues = {
|
|
|
8764
8943
|
"capitalize",
|
|
8765
8944
|
"uppercase",
|
|
8766
8945
|
"lowercase",
|
|
8767
|
-
"full-width",
|
|
8768
|
-
"full-size-kana",
|
|
8769
8946
|
"math-auto"
|
|
8770
8947
|
]
|
|
8771
8948
|
},
|
|
@@ -8799,8 +8976,7 @@ export const generatedPropertyValues = {
|
|
|
8799
8976
|
},
|
|
8800
8977
|
"timeline-scope": {
|
|
8801
8978
|
"values": [
|
|
8802
|
-
"none"
|
|
8803
|
-
"all"
|
|
8979
|
+
"none"
|
|
8804
8980
|
]
|
|
8805
8981
|
},
|
|
8806
8982
|
"timeline-trigger-active-range-end": {
|
|
@@ -8917,8 +9093,7 @@ export const generatedPropertyValues = {
|
|
|
8917
9093
|
"auto",
|
|
8918
9094
|
"none",
|
|
8919
9095
|
"text",
|
|
8920
|
-
"all"
|
|
8921
|
-
"contain"
|
|
9096
|
+
"all"
|
|
8922
9097
|
]
|
|
8923
9098
|
},
|
|
8924
9099
|
"vector-effect": {
|
|
@@ -8966,8 +9141,7 @@ export const generatedPropertyValues = {
|
|
|
8966
9141
|
},
|
|
8967
9142
|
"view-transition-name": {
|
|
8968
9143
|
"values": [
|
|
8969
|
-
"none"
|
|
8970
|
-
"auto"
|
|
9144
|
+
"none"
|
|
8971
9145
|
]
|
|
8972
9146
|
},
|
|
8973
9147
|
"view-transition-scope": {
|
|
@@ -440,6 +440,29 @@ export namespace Accessibility {
|
|
|
440
440
|
*/
|
|
441
441
|
export namespace Ads {
|
|
442
442
|
|
|
443
|
+
/**
|
|
444
|
+
* Ad frame data.
|
|
445
|
+
*/
|
|
446
|
+
export interface AdFrameData {
|
|
447
|
+
/**
|
|
448
|
+
* The DevTools frame token.
|
|
449
|
+
*/
|
|
450
|
+
frameId: Page.FrameId;
|
|
451
|
+
/**
|
|
452
|
+
* The initial origin of the frame. To minimize the payload size, this is
|
|
453
|
+
* only sent once per frame.
|
|
454
|
+
*/
|
|
455
|
+
initialOrigin?: string;
|
|
456
|
+
/**
|
|
457
|
+
* The network bytes of the frame.
|
|
458
|
+
*/
|
|
459
|
+
networkBytes: number;
|
|
460
|
+
/**
|
|
461
|
+
* The CPU time of the frame, in milliseconds.
|
|
462
|
+
*/
|
|
463
|
+
cpuTime: number;
|
|
464
|
+
}
|
|
465
|
+
|
|
443
466
|
/**
|
|
444
467
|
* Ad metrics for a page.
|
|
445
468
|
*/
|
|
@@ -471,6 +494,14 @@ export namespace Ads {
|
|
|
471
494
|
* The total ad network bytes.
|
|
472
495
|
*/
|
|
473
496
|
totalAdNetworkBytes: number;
|
|
497
|
+
/**
|
|
498
|
+
* The list of ad frames that have been updated since the last event.
|
|
499
|
+
*/
|
|
500
|
+
updateAdFrames: AdFrameData[];
|
|
501
|
+
/**
|
|
502
|
+
* The list of ad frame IDs that have been removed since the last event.
|
|
503
|
+
*/
|
|
504
|
+
removeAdFrames: Page.FrameId[];
|
|
474
505
|
}
|
|
475
506
|
|
|
476
507
|
export interface GetAdMetricsResponse extends ProtocolResponseWithError {
|
|
@@ -1617,6 +1648,8 @@ export namespace Audits {
|
|
|
1617
1648
|
FontSizeTooSmall = 'FontSizeTooSmall',
|
|
1618
1649
|
FontSizeTooLarge = 'FontSizeTooLarge',
|
|
1619
1650
|
InvalidSizeValue = 'InvalidSizeValue',
|
|
1651
|
+
NonSecureContext = 'NonSecureContext',
|
|
1652
|
+
MissingTransientUserActivation = 'MissingTransientUserActivation',
|
|
1620
1653
|
}
|
|
1621
1654
|
|
|
1622
1655
|
/**
|
|
@@ -4804,8 +4837,10 @@ export namespace DOM {
|
|
|
4804
4837
|
FileSelectorButton = 'file-selector-button',
|
|
4805
4838
|
DetailsContent = 'details-content',
|
|
4806
4839
|
Picker = 'picker',
|
|
4840
|
+
SelectListbox = 'select-listbox',
|
|
4807
4841
|
PermissionIcon = 'permission-icon',
|
|
4808
4842
|
OverscrollAreaParent = 'overscroll-area-parent',
|
|
4843
|
+
OverscrollBackdrop = 'overscroll-backdrop',
|
|
4809
4844
|
Skeleton = 'skeleton',
|
|
4810
4845
|
}
|
|
4811
4846
|
|
|
@@ -15789,6 +15824,15 @@ export namespace Page {
|
|
|
15789
15824
|
* option, use with caution.
|
|
15790
15825
|
*/
|
|
15791
15826
|
grantUniveralAccess?: boolean;
|
|
15827
|
+
/**
|
|
15828
|
+
* An optional content security policy to set for the isolated world.
|
|
15829
|
+
* If omitted, any existing CSP for the world will be cleared.
|
|
15830
|
+
* Note that clearing or updating the CSP does not immediately affect the active
|
|
15831
|
+
* context in the same document because LocalDOMWindow caches the
|
|
15832
|
+
* ContentSecurityPolicy object. The change takes effect on subsequent
|
|
15833
|
+
* navigations when a new window context is created.
|
|
15834
|
+
*/
|
|
15835
|
+
contentSecurityPolicy?: string;
|
|
15792
15836
|
}
|
|
15793
15837
|
|
|
15794
15838
|
export interface CreateIsolatedWorldResponse extends ProtocolResponseWithError {
|
|
@@ -19491,13 +19535,11 @@ export namespace Target {
|
|
|
19491
19535
|
*/
|
|
19492
19536
|
hidden?: boolean;
|
|
19493
19537
|
/**
|
|
19494
|
-
* If specified,
|
|
19495
|
-
*
|
|
19496
|
-
*
|
|
19497
|
-
*
|
|
19498
|
-
*
|
|
19499
|
-
* and background=false with focus=undefined will result in the window being focused.
|
|
19500
|
-
* Using background: true and focus: true is not supported and will result in an error.
|
|
19538
|
+
* If specified, determines whether the new target should be focused.
|
|
19539
|
+
* By default, the focus behavior depends on the `background` parameter:
|
|
19540
|
+
* - If `background` is false (default) and `focus` is omitted, the new target is focused and the browser window is brought to the foreground.
|
|
19541
|
+
* - If `background` is false and `focus` is false, the target is opened but the browser window's focus remains unchanged (e.g., if the window was in the background, it stays there).
|
|
19542
|
+
* - If `background` is true, setting `focus` to true is not supported and will result in an error.
|
|
19501
19543
|
*/
|
|
19502
19544
|
focus?: boolean;
|
|
19503
19545
|
}
|
|
@@ -19953,6 +19995,21 @@ export namespace Tracing {
|
|
|
19953
19995
|
* Backend type (defaults to `auto`)
|
|
19954
19996
|
*/
|
|
19955
19997
|
tracingBackend?: TracingBackend;
|
|
19998
|
+
/**
|
|
19999
|
+
* Maximum width and height (in pixels) of each captured screenshot.
|
|
20000
|
+
* Only used when the `disabled-by-default-devtools.screenshot` category is
|
|
20001
|
+
* enabled. Defaults to 500. The combined memory footprint of screenshots
|
|
20002
|
+
* (`screenshotMaxSize` * `screenshotMaxSize` * 4 * `screenshotMaxCount`)
|
|
20003
|
+
* is clamped to the existing per-session budget.
|
|
20004
|
+
*/
|
|
20005
|
+
screenshotMaxSize?: integer;
|
|
20006
|
+
/**
|
|
20007
|
+
* Maximum number of screenshots captured during a single tracing session.
|
|
20008
|
+
* Only used when the `disabled-by-default-devtools.screenshot` category is
|
|
20009
|
+
* enabled. Defaults to 450. Clamped together with `screenshotMaxSize` to
|
|
20010
|
+
* stay within the per-session screenshot memory budget.
|
|
20011
|
+
*/
|
|
20012
|
+
screenshotMaxCount?: integer;
|
|
19956
20013
|
}
|
|
19957
20014
|
|
|
19958
20015
|
export interface BufferUsageEvent {
|
|
@@ -22,7 +22,7 @@ import {debugLog} from './debug.js';
|
|
|
22
22
|
import {ExtensionScope} from './ExtensionScope.js';
|
|
23
23
|
import type {Skill, SkillName} from './skills/Skill.js';
|
|
24
24
|
import {SKILLS} from './skills/SkillRegistry.js';
|
|
25
|
-
import type {
|
|
25
|
+
import type {AllToolsCapabilities, Tool, ToolArgs} from './tools/Tool.js';
|
|
26
26
|
import {ToolRegistry} from './tools/ToolRegistry.js';
|
|
27
27
|
|
|
28
28
|
const SKILL_DISPLAY_NAMES: Record<SkillName, string> = {
|
|
@@ -214,7 +214,7 @@ User query: ${enhancedQuery}`;
|
|
|
214
214
|
* Declares a tool to be available to the agent model, verifying first that
|
|
215
215
|
* it hasn't already been declared to prevent duplicate declaration errors.
|
|
216
216
|
*/
|
|
217
|
-
#declareTool(tool: Tool<ToolArgs, unknown,
|
|
217
|
+
#declareTool(tool: Tool<ToolArgs, unknown, AllToolsCapabilities>): void {
|
|
218
218
|
if (this.#declaredTools.has(tool.name)) {
|
|
219
219
|
debugLog(`AiAgent2: Tool ${tool.name} is already declared`);
|
|
220
220
|
return;
|
|
@@ -225,7 +225,7 @@ User query: ${enhancedQuery}`;
|
|
|
225
225
|
parameters: tool.parameters,
|
|
226
226
|
displayInfoFromArgs: tool.displayInfoFromArgs,
|
|
227
227
|
handler: (args, options) => {
|
|
228
|
-
const context:
|
|
228
|
+
const context: AllToolsCapabilities = {
|
|
229
229
|
conversationContext: this.context ?? null,
|
|
230
230
|
changeManager: this.#changes,
|
|
231
231
|
createExtensionScope: this.#createExtensionScope.bind(this),
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
import {ContextSelectionAgent} from './agents/ContextSelectionAgent.js';
|
|
28
28
|
import {FileAgent} from './agents/FileAgent.js';
|
|
29
29
|
import {NetworkAgent} from './agents/NetworkAgent.js';
|
|
30
|
-
import {PerformanceAgent
|
|
30
|
+
import {PerformanceAgent} from './agents/PerformanceAgent.js';
|
|
31
31
|
import {StorageAgent, StorageContext} from './agents/StorageAgent.js';
|
|
32
32
|
import {StylingAgent} from './agents/StylingAgent.js';
|
|
33
33
|
import {AiAgent2} from './AiAgent2.js';
|
|
@@ -36,6 +36,7 @@ import type {ChangeManager} from './ChangeManager.js';
|
|
|
36
36
|
import {AccessibilityContext} from './contexts/AccessibilityContext.js';
|
|
37
37
|
import {DOMNodeContext} from './contexts/DOMNodeContext.js';
|
|
38
38
|
import {FileContext} from './contexts/FileContext.js';
|
|
39
|
+
import {PerformanceTraceContext} from './contexts/PerformanceTraceContext.js';
|
|
39
40
|
import {RequestContext} from './contexts/RequestContext.js';
|
|
40
41
|
|
|
41
42
|
export const NOT_FOUND_IMAGE_DATA = '';
|
|
@@ -8,7 +8,7 @@ When the user interacts with AI via the AI Assistance Panel, they are having a _
|
|
|
8
8
|
|
|
9
9
|
Each agent has a _context_ defined, which represents the selected data that forms the context of the conversation the user is having with that agent. For example:
|
|
10
10
|
|
|
11
|
-
- The `PerformanceAgent`
|
|
11
|
+
- The `PerformanceAgent` uses `PerformanceTraceContext` wrapping an individual performance trace and a specific focus (an insight, or a call tree) as its context.
|
|
12
12
|
- The `StylingAgent` has a DOM Node as its context.
|
|
13
13
|
|
|
14
14
|
Contexts are defined as subclasses extending the `ConversationContext` abstract class, which defines the following key methods:
|
|
@@ -46,14 +46,14 @@ To support skills requiring execution of code or fetching page state (like compu
|
|
|
46
46
|
|
|
47
47
|
- **BaseTool**: A non-generic base interface capturing tool metadata (`name`, `description`, `parameters`). This acts as the type-erased representation for generic registry storage and fallback string lookups.
|
|
48
48
|
- **Tool**: A generic interface parameterized by `<Args, ReturnType, ContextType>` that binds parameter argument types and handler execution to strict contracts. `ContextType` defaults to `BaseToolCapability`, ensuring that each tool explicitly requests only the dependencies it requires.
|
|
49
|
-
- **Capability Contexts**: Instead of passing a monolithic grab-bag context to all tools, dependencies are broken into narrow capability interfaces (e.g. `PageExecutionCapability`, `StyleMutationCapability`, `TargetCapability`, `OriginLockCapability`). Tools declare their required dependencies by intersecting these interfaces on their generic `ContextType` definition. The caller/Agent fulfills the complete capability context (`
|
|
49
|
+
- **Capability Contexts**: Instead of passing a monolithic grab-bag context to all tools, dependencies are broken into narrow capability interfaces (e.g. `PageExecutionCapability`, `StyleMutationCapability`, `TargetCapability`, `OriginLockCapability`). Tools declare their required dependencies by intersecting these interfaces on their generic `ContextType` definition. The caller/Agent fulfills the complete capability context (`AllToolsCapabilities`), guaranteeing 100% compile-time type safety for dependencies without runtime checks.
|
|
50
50
|
- **ToolRegistry**: A static registry (`ToolRegistry`) storing instantiated tools. It uses TypeScript function overloading and generic lookups (`static get<K extends keyof typeof TOOLS>(name: K): typeof TOOLS[K]`) to return the precise class type of each tool, preventing type-erasure and escape-hatches (such as `any` or `as unknown` type assertions) at integration points like `AiAgent2.ts`. See the [Tools README](tools/README.md) for authoring instructions.
|
|
51
51
|
|
|
52
52
|
## Performance specific documentation
|
|
53
53
|
|
|
54
|
-
### `
|
|
54
|
+
### `PerformanceTraceContext`
|
|
55
55
|
|
|
56
|
-
The context for `PerformanceAgent` is `
|
|
56
|
+
The context for `PerformanceAgent` is `PerformanceTraceContext`, which wraps `AgentFocus`. `AgentFocus` supports different behavior for different entry-points of the "Ask AI" feature for a trace (such as a specific performance insight, flame chart call tree, trace event, or the whole parsed trace). `PerformanceTraceContext` implements `ConversationContext<AgentFocus>` to fetch prompt details, user-facing accordion details, and context-specific AI suggestions.
|
|
57
57
|
|
|
58
58
|
### Adding "Ask AI" to a new Insight
|
|
59
59
|
|
|
@@ -116,4 +116,5 @@ To prevent prompt injection attacks and cross-origin data leaks, the AI Assistan
|
|
|
116
116
|
* **Origin Locking**: Once a conversation session begins, it locks to the origin of the initial data context (e.g. `https://google.com` or a specific file path).
|
|
117
117
|
* **Opaque Origins**: Any origin classified as opaque (e.g. `data:`, `about:`, `detached` nodes, unparsed `undefined://` or empty origins) is blocked from starting AI assistance (`isOpaqueOrigin()`).
|
|
118
118
|
* **File Isolation**: Local files (`file://`) do not share a single wildcard origin. Instead, the path is appended (e.g. `file:///path/to/file.js`) to treat each local file as its own unique origin. Swapping local files in the same conversation is blocked.
|
|
119
|
+
* **Trace Isolation**: Imported performance trace recordings are isolated using the virtual origin `imported-trace://${domain}`. This ensures that loaded local trace files do not share origins with live pages, preventing potential cross-origin prompt injection attacks when switching contexts.
|
|
119
120
|
* **Equivalence**: `areOriginsEquivalent()` ensures opaque origins are never equivalent to anything (including themselves), forcing a conversation reset on transitions.
|
|
@@ -17,6 +17,7 @@ import {isOpaqueOrigin} from '../AiOrigins.js';
|
|
|
17
17
|
import {AccessibilityContext} from '../contexts/AccessibilityContext.js';
|
|
18
18
|
import {DOMNodeContext} from '../contexts/DOMNodeContext.js';
|
|
19
19
|
import {FileContext} from '../contexts/FileContext.js';
|
|
20
|
+
import {PerformanceTraceContext} from '../contexts/PerformanceTraceContext.js';
|
|
20
21
|
import {getRequestContextOrigin, RequestContext} from '../contexts/RequestContext.js';
|
|
21
22
|
import {debugLog} from '../debug.js';
|
|
22
23
|
import {StorageItem} from '../StorageItem.js';
|
|
@@ -28,7 +29,6 @@ import {
|
|
|
28
29
|
type ContextResponse,
|
|
29
30
|
type RequestOptions,
|
|
30
31
|
} from './AiAgent.js';
|
|
31
|
-
import {PerformanceTraceContext} from './PerformanceAgent.js';
|
|
32
32
|
import {StorageContext} from './StorageAgent.js';
|
|
33
33
|
|
|
34
34
|
const lockedString = i18n.i18n.lockedString;
|