chrome-devtools-frontend 1.0.1534717 → 1.0.1536371
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/docs/contributing/images/issues-nearestslo.png +0 -0
- package/docs/contributing/issues.md +32 -58
- package/eslint.config.mjs +1 -0
- package/front_end/core/common/Console.ts +1 -8
- package/front_end/core/common/ParsedURL.ts +10 -20
- package/front_end/core/common/SegmentedRange.ts +1 -2
- package/front_end/core/common/StringOutputStream.ts +1 -4
- package/front_end/core/host/InspectorFrontendHost.ts +6 -0
- package/front_end/core/host/UserMetrics.ts +5 -1
- package/front_end/core/i18n/i18nImpl.ts +0 -24
- package/front_end/core/protocol_client/CDPConnection.ts +53 -5
- package/front_end/core/protocol_client/protocol_client.ts +2 -0
- package/front_end/core/sdk/AnimationModel.ts +1 -2
- package/front_end/core/sdk/CSSMatchedStyles.ts +2 -2
- package/front_end/core/sdk/CSSModel.ts +1 -1
- package/front_end/core/sdk/CSSProperty.ts +3 -6
- package/front_end/core/sdk/CSSStyleDeclaration.ts +4 -4
- package/front_end/core/sdk/DebuggerModel.ts +1 -2
- package/front_end/core/sdk/EnhancedTracesParser.ts +4 -0
- package/front_end/core/sdk/SourceMap.ts +2 -3
- package/front_end/devtools_compatibility.js +32 -24
- package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +2 -1
- package/front_end/generated/InspectorBackendCommands.js +1 -2
- package/front_end/generated/SupportedCSSProperties.js +57 -0
- package/front_end/generated/protocol.ts +0 -27
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +18 -17
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +9 -12
- package/front_end/panels/ai_assistance/PatchWidget.ts +39 -40
- package/front_end/panels/ai_assistance/components/ChatView.ts +5 -4
- package/front_end/panels/ai_assistance/components/ExploreWidget.ts +0 -2
- package/front_end/panels/application/AppManifestView.ts +7 -6
- package/front_end/panels/application/ApplicationPanelSidebar.ts +4 -4
- package/front_end/panels/application/OpenedWindowDetailsView.ts +6 -6
- package/front_end/panels/application/StorageView.ts +9 -8
- package/front_end/panels/application/components/BackForwardCacheView.ts +333 -314
- package/front_end/panels/application/components/ProtocolHandlersView.ts +3 -2
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -1
- package/front_end/panels/autofill/AutofillView.ts +2 -3
- package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +8 -8
- package/front_end/panels/changes/CombinedDiffView.ts +13 -14
- package/front_end/panels/common/BadgeNotification.ts +2 -1
- package/front_end/panels/common/GdpSignUpDialog.ts +2 -1
- package/front_end/panels/console/ConsoleInsightTeaser.ts +13 -2
- package/front_end/panels/console/ConsolePinPane.ts +12 -7
- package/front_end/panels/console/ConsoleView.ts +1 -0
- package/front_end/panels/console/consoleView.css +0 -1
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +9 -9
- package/front_end/panels/elements/ComputedStyleWidget.ts +7 -7
- package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
- package/front_end/panels/elements/EventListenersWidget.ts +9 -9
- package/front_end/panels/elements/NodeStackTraceWidget.ts +6 -6
- package/front_end/panels/elements/PlatformFontsWidget.ts +5 -5
- package/front_end/panels/elements/PropertiesWidget.ts +8 -8
- package/front_end/panels/layer_viewer/Layers3DView.ts +2 -1
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +3 -3
- package/front_end/panels/network/RequestCookiesView.ts +2 -1
- package/front_end/panels/network/RequestTimingView.ts +2 -1
- package/front_end/panels/network/components/DirectSocketConnectionView.ts +4 -6
- package/front_end/panels/recorder/RecorderController.ts +34 -23
- package/front_end/panels/recorder/components/CreateRecordingView.ts +249 -240
- package/front_end/panels/security/CookieControlsView.ts +74 -67
- package/front_end/panels/security/CookieReportView.ts +18 -16
- package/front_end/panels/security/IPProtectionView.ts +1 -2
- package/front_end/panels/security/SecurityPanel.ts +19 -19
- package/front_end/panels/settings/AISettingsTab.ts +2 -1
- package/front_end/panels/settings/KeybindsSettingsTab.ts +6 -0
- package/front_end/panels/settings/components/SyncSection.ts +2 -1
- package/front_end/panels/sources/DebuggerPausedMessage.ts +4 -3
- package/front_end/panels/sources/ResourceOriginPlugin.ts +3 -2
- package/front_end/panels/sources/SourcesNavigator.ts +2 -1
- package/front_end/panels/sources/TabbedEditorContainer.ts +3 -2
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +9 -9
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +36 -36
- package/front_end/panels/timeline/TimelineUIUtils.ts +3 -2
- package/front_end/panels/timeline/components/DetailsView.ts +5 -4
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +2 -1
- package/front_end/panels/timeline/components/LiveMetricsView.ts +5 -4
- package/front_end/panels/timeline/components/MetricCompareStrings.ts +25 -24
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +1 -2
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +2 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/components/docs/tooltip/basic.ts +1 -1
- package/front_end/ui/components/tooltips/Tooltip.ts +32 -17
- package/front_end/ui/i18n/i18n.ts +31 -0
- package/front_end/ui/legacy/SoftDropDown.ts +1 -12
- package/front_end/ui/legacy/ViewManager.ts +2 -4
- package/front_end/ui/legacy/Widget.ts +33 -17
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +2 -1
- package/front_end/ui/legacy/legacy.ts +0 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +5 -0
- package/mcp/mcp.ts +1 -0
- package/package.json +1 -1
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.html +0 -20
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.ts +0 -27
- package/front_end/ui/legacy/ThrottledWidget.ts +0 -48
|
@@ -7,8 +7,13 @@
|
|
|
7
7
|
// https://crsrc.org/c/third_party/blink/renderer/controller/dev_tools_frontend_impl.cc;l=107
|
|
8
8
|
(window => {
|
|
9
9
|
/**
|
|
10
|
+
* A function that tries to check the remotely connected instance
|
|
11
|
+
* major version. You should check against this to provide
|
|
12
|
+
* forward and backwards compatibility.
|
|
13
|
+
*
|
|
10
14
|
* @returns {number|null}
|
|
11
15
|
*/
|
|
16
|
+
|
|
12
17
|
function getRemoteMajorVersion() {
|
|
13
18
|
try {
|
|
14
19
|
const remoteVersion = new URLSearchParams(window.location.search).get('remoteVersion');
|
|
@@ -97,7 +102,9 @@
|
|
|
97
102
|
}
|
|
98
103
|
|
|
99
104
|
/**
|
|
100
|
-
* @
|
|
105
|
+
* @typedef {import('./core/host/InspectorFrontendHostAPI.js').Events} Events
|
|
106
|
+
* @typedef {import('./core/host/InspectorFrontendHost.js').InspectorFrontendAPIImplMethods} Methods
|
|
107
|
+
* @param {`${Events|Methods}`} method
|
|
101
108
|
* @param args
|
|
102
109
|
*/
|
|
103
110
|
_dispatchOnInspectorFrontendAPI(method, args) {
|
|
@@ -114,7 +121,7 @@
|
|
|
114
121
|
// API methods below this line --------------------------------------------
|
|
115
122
|
|
|
116
123
|
/**
|
|
117
|
-
* @param
|
|
124
|
+
* @param {ExtensionDescriptor[]} extensions
|
|
118
125
|
*/
|
|
119
126
|
addExtensions(extensions) {
|
|
120
127
|
// The addExtensions command is sent as the onload event happens for
|
|
@@ -128,7 +135,7 @@
|
|
|
128
135
|
}
|
|
129
136
|
|
|
130
137
|
/**
|
|
131
|
-
* @param
|
|
138
|
+
* @param {string[]} forbiddenOrigins
|
|
132
139
|
*/
|
|
133
140
|
setOriginsForbiddenForExtensions(forbiddenOrigins) {
|
|
134
141
|
this._originsForbiddenForExtensions = forbiddenOrigins;
|
|
@@ -142,14 +149,14 @@
|
|
|
142
149
|
}
|
|
143
150
|
|
|
144
151
|
/**
|
|
145
|
-
* @param
|
|
152
|
+
* @param {string} url
|
|
146
153
|
*/
|
|
147
154
|
appendedToURL(url) {
|
|
148
155
|
this._dispatchOnInspectorFrontendAPI('appendedToURL', [url]);
|
|
149
156
|
}
|
|
150
157
|
|
|
151
158
|
/**
|
|
152
|
-
* @param
|
|
159
|
+
* @param {string} url
|
|
153
160
|
*/
|
|
154
161
|
canceledSaveURL(url) {
|
|
155
162
|
this._dispatchOnInspectorFrontendAPI('canceledSaveURL', [url]);
|
|
@@ -167,7 +174,7 @@
|
|
|
167
174
|
}
|
|
168
175
|
|
|
169
176
|
/**
|
|
170
|
-
* @param count
|
|
177
|
+
* @param {number} count
|
|
171
178
|
*/
|
|
172
179
|
deviceCountUpdated(count) {
|
|
173
180
|
this._dispatchOnInspectorFrontendAPI('deviceCountUpdated', [count]);
|
|
@@ -287,7 +294,7 @@
|
|
|
287
294
|
}
|
|
288
295
|
|
|
289
296
|
/**
|
|
290
|
-
* @param
|
|
297
|
+
* @param {(param: object) => unknown} callback
|
|
291
298
|
*/
|
|
292
299
|
setAddExtensionCallback(callback) {
|
|
293
300
|
this._addExtensionCallback = callback;
|
|
@@ -298,7 +305,7 @@
|
|
|
298
305
|
}
|
|
299
306
|
|
|
300
307
|
/**
|
|
301
|
-
* @param
|
|
308
|
+
* @param {boolean} hard
|
|
302
309
|
*/
|
|
303
310
|
reloadInspectedPage(hard) {
|
|
304
311
|
this._dispatchOnInspectorFrontendAPI('reloadInspectedPage', [hard]);
|
|
@@ -335,7 +342,7 @@
|
|
|
335
342
|
}
|
|
336
343
|
|
|
337
344
|
/**
|
|
338
|
-
* @param
|
|
345
|
+
* @param {string} tabId
|
|
339
346
|
*/
|
|
340
347
|
setInspectedTabId(tabId) {
|
|
341
348
|
this._inspectedTabIdValue = tabId;
|
|
@@ -344,7 +351,7 @@
|
|
|
344
351
|
}
|
|
345
352
|
|
|
346
353
|
/**
|
|
347
|
-
* @param
|
|
354
|
+
* @param {string} targetId
|
|
348
355
|
*/
|
|
349
356
|
setInitialTargetId(targetId) {
|
|
350
357
|
this._setInitialTargetId(targetId);
|
|
@@ -358,30 +365,30 @@
|
|
|
358
365
|
}
|
|
359
366
|
|
|
360
367
|
/**
|
|
361
|
-
* @param
|
|
368
|
+
* @param {boolean} useSoftMenu
|
|
362
369
|
*/
|
|
363
370
|
setUseSoftMenu(useSoftMenu) {
|
|
364
371
|
this._dispatchOnInspectorFrontendAPI('setUseSoftMenu', [useSoftMenu]);
|
|
365
372
|
}
|
|
366
373
|
|
|
367
374
|
/**
|
|
368
|
-
* @param
|
|
375
|
+
* @param {string} panelName
|
|
369
376
|
*/
|
|
370
377
|
showPanel(panelName) {
|
|
371
378
|
this._dispatchOnInspectorFrontendAPI('showPanel', [panelName]);
|
|
372
379
|
}
|
|
373
380
|
|
|
374
381
|
/**
|
|
375
|
-
* @param
|
|
376
|
-
* @param
|
|
377
|
-
* @param
|
|
382
|
+
* @param {number} id
|
|
383
|
+
* @param {string} chunk
|
|
384
|
+
* @param {boolean} encoded
|
|
378
385
|
*/
|
|
379
386
|
streamWrite(id, chunk, encoded) {
|
|
380
387
|
this._dispatchOnInspectorFrontendAPI('streamWrite', [id, encoded ? this._decodeBase64(chunk) : chunk]);
|
|
381
388
|
}
|
|
382
389
|
|
|
383
390
|
/**
|
|
384
|
-
* @param
|
|
391
|
+
* @param {string} chunk
|
|
385
392
|
* @returns {string}
|
|
386
393
|
*/
|
|
387
394
|
_decodeBase64(chunk) {
|
|
@@ -516,7 +523,7 @@
|
|
|
516
523
|
|
|
517
524
|
/**
|
|
518
525
|
* @param trigger
|
|
519
|
-
* @param
|
|
526
|
+
* @param {(param: object) => unknown} callback
|
|
520
527
|
*/
|
|
521
528
|
showSurvey(trigger, callback) {
|
|
522
529
|
DevToolsAPI.sendMessageToEmbedder('showSurvey', [trigger], callback);
|
|
@@ -524,7 +531,7 @@
|
|
|
524
531
|
|
|
525
532
|
/**
|
|
526
533
|
* @param trigger
|
|
527
|
-
* @param
|
|
534
|
+
* @param {(param: object) => unknown} callback
|
|
528
535
|
*/
|
|
529
536
|
canShowSurvey(trigger, callback) {
|
|
530
537
|
DevToolsAPI.sendMessageToEmbedder('canShowSurvey', [trigger], callback);
|
|
@@ -546,7 +553,7 @@
|
|
|
546
553
|
* @param url
|
|
547
554
|
* @param headers
|
|
548
555
|
* @param streamId
|
|
549
|
-
* @param
|
|
556
|
+
* @param {(param: object) => unknown} callback
|
|
550
557
|
*/
|
|
551
558
|
loadNetworkResource(url, headers, streamId, callback) {
|
|
552
559
|
DevToolsAPI.sendMessageToEmbedder('loadNetworkResource', [url, headers, streamId], callback);
|
|
@@ -561,7 +568,7 @@
|
|
|
561
568
|
}
|
|
562
569
|
|
|
563
570
|
/**
|
|
564
|
-
* @param
|
|
571
|
+
* @param {(param: object) => unknown} callback
|
|
565
572
|
*/
|
|
566
573
|
getPreferences(callback) {
|
|
567
574
|
DevToolsAPI.sendMessageToEmbedder('getPreferences', [], callback);
|
|
@@ -569,7 +576,7 @@
|
|
|
569
576
|
|
|
570
577
|
/**
|
|
571
578
|
* @param name
|
|
572
|
-
* @param
|
|
579
|
+
* @param {(param: object) => unknown} callback
|
|
573
580
|
*/
|
|
574
581
|
getPreference(name, callback) {
|
|
575
582
|
DevToolsAPI.sendMessageToEmbedder('getPreference', [name], callback);
|
|
@@ -709,9 +716,10 @@
|
|
|
709
716
|
}
|
|
710
717
|
|
|
711
718
|
/**
|
|
712
|
-
* @param
|
|
719
|
+
* @param {string} _url
|
|
713
720
|
*/
|
|
714
|
-
close(
|
|
721
|
+
close(_url) {
|
|
722
|
+
// This is required when InspectorFrontendHostStub is used
|
|
715
723
|
}
|
|
716
724
|
|
|
717
725
|
/**
|
|
@@ -1136,7 +1144,7 @@
|
|
|
1136
1144
|
]);
|
|
1137
1145
|
|
|
1138
1146
|
/**
|
|
1139
|
-
* @param
|
|
1147
|
+
* @param {number} keyCode
|
|
1140
1148
|
* @returns
|
|
1141
1149
|
*/
|
|
1142
1150
|
function keyCodeToKeyIdentifier(keyCode) {
|
|
@@ -7,6 +7,7 @@ import type * as Common from '../../core/common/common.js';
|
|
|
7
7
|
import * as Host from '../../core/host/host.js';
|
|
8
8
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
9
9
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
10
|
+
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
10
11
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
11
12
|
|
|
12
13
|
import nodeConnectionsPanelStyles from './nodeConnectionsPanel.css.js';
|
|
@@ -97,7 +98,7 @@ export class NodeConnectionsView extends UI.Widget.VBox implements UI.ListWidget
|
|
|
97
98
|
'https://nodejs.org/en/docs/inspector/', i18nString(UIStrings.nodejsDebuggingGuide), undefined, undefined,
|
|
98
99
|
'node-js-debugging');
|
|
99
100
|
networkDiscoveryFooter.appendChild(
|
|
100
|
-
|
|
101
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.specifyNetworkEndpointAnd, {PH1: documentationLink}));
|
|
101
102
|
|
|
102
103
|
this.#list = new UI.ListWidget.ListWidget(this);
|
|
103
104
|
this.#list.registerRequiredCSS(nodeConnectionsPanelStyles);
|
|
@@ -1340,8 +1340,7 @@ inspectorBackend.registerType("SystemInfo.GPUDevice", [{"name": "vendorId", "typ
|
|
|
1340
1340
|
inspectorBackend.registerType("SystemInfo.Size", [{"name": "width", "type": "number", "optional": false, "description": "Width in pixels.", "typeRef": null}, {"name": "height", "type": "number", "optional": false, "description": "Height in pixels.", "typeRef": null}]);
|
|
1341
1341
|
inspectorBackend.registerType("SystemInfo.VideoDecodeAcceleratorCapability", [{"name": "profile", "type": "string", "optional": false, "description": "Video codec profile that is supported, e.g. VP9 Profile 2.", "typeRef": null}, {"name": "maxResolution", "type": "object", "optional": false, "description": "Maximum video dimensions in pixels supported for this |profile|.", "typeRef": "SystemInfo.Size"}, {"name": "minResolution", "type": "object", "optional": false, "description": "Minimum video dimensions in pixels supported for this |profile|.", "typeRef": "SystemInfo.Size"}]);
|
|
1342
1342
|
inspectorBackend.registerType("SystemInfo.VideoEncodeAcceleratorCapability", [{"name": "profile", "type": "string", "optional": false, "description": "Video codec profile that is supported, e.g H264 Main.", "typeRef": null}, {"name": "maxResolution", "type": "object", "optional": false, "description": "Maximum video dimensions in pixels supported for this |profile|.", "typeRef": "SystemInfo.Size"}, {"name": "maxFramerateNumerator", "type": "number", "optional": false, "description": "Maximum encoding framerate in frames per second supported for this |profile|, as fraction's numerator and denominator, e.g. 24/1 fps, 24000/1001 fps, etc.", "typeRef": null}, {"name": "maxFramerateDenominator", "type": "number", "optional": false, "description": "", "typeRef": null}]);
|
|
1343
|
-
inspectorBackend.registerType("SystemInfo.
|
|
1344
|
-
inspectorBackend.registerType("SystemInfo.GPUInfo", [{"name": "devices", "type": "array", "optional": false, "description": "The graphics devices on the system. Element 0 is the primary GPU.", "typeRef": "SystemInfo.GPUDevice"}, {"name": "auxAttributes", "type": "object", "optional": true, "description": "An optional dictionary of additional GPU related attributes.", "typeRef": null}, {"name": "featureStatus", "type": "object", "optional": true, "description": "An optional dictionary of graphics features and their status.", "typeRef": null}, {"name": "driverBugWorkarounds", "type": "array", "optional": false, "description": "An optional array of GPU driver bug workarounds.", "typeRef": "string"}, {"name": "videoDecoding", "type": "array", "optional": false, "description": "Supported accelerated video decoding capabilities.", "typeRef": "SystemInfo.VideoDecodeAcceleratorCapability"}, {"name": "videoEncoding", "type": "array", "optional": false, "description": "Supported accelerated video encoding capabilities.", "typeRef": "SystemInfo.VideoEncodeAcceleratorCapability"}, {"name": "imageDecoding", "type": "array", "optional": false, "description": "Supported accelerated image decoding capabilities.", "typeRef": "SystemInfo.ImageDecodeAcceleratorCapability"}]);
|
|
1343
|
+
inspectorBackend.registerType("SystemInfo.GPUInfo", [{"name": "devices", "type": "array", "optional": false, "description": "The graphics devices on the system. Element 0 is the primary GPU.", "typeRef": "SystemInfo.GPUDevice"}, {"name": "auxAttributes", "type": "object", "optional": true, "description": "An optional dictionary of additional GPU related attributes.", "typeRef": null}, {"name": "featureStatus", "type": "object", "optional": true, "description": "An optional dictionary of graphics features and their status.", "typeRef": null}, {"name": "driverBugWorkarounds", "type": "array", "optional": false, "description": "An optional array of GPU driver bug workarounds.", "typeRef": "string"}, {"name": "videoDecoding", "type": "array", "optional": false, "description": "Supported accelerated video decoding capabilities.", "typeRef": "SystemInfo.VideoDecodeAcceleratorCapability"}, {"name": "videoEncoding", "type": "array", "optional": false, "description": "Supported accelerated video encoding capabilities.", "typeRef": "SystemInfo.VideoEncodeAcceleratorCapability"}]);
|
|
1345
1344
|
inspectorBackend.registerType("SystemInfo.ProcessInfo", [{"name": "type", "type": "string", "optional": false, "description": "Specifies process type.", "typeRef": null}, {"name": "id", "type": "number", "optional": false, "description": "Specifies process id.", "typeRef": null}, {"name": "cpuTime", "type": "number", "optional": false, "description": "Specifies cumulative CPU usage in seconds across all threads of the process since the process start.", "typeRef": null}]);
|
|
1346
1345
|
|
|
1347
1346
|
// Target.
|
|
@@ -421,6 +421,7 @@ export const generatedProperties = [
|
|
|
421
421
|
"column-rule-color",
|
|
422
422
|
"column-rule-outset",
|
|
423
423
|
"column-rule-style",
|
|
424
|
+
"column-rule-visibility-items",
|
|
424
425
|
"column-rule-width",
|
|
425
426
|
"column-span",
|
|
426
427
|
"column-width",
|
|
@@ -639,6 +640,7 @@ export const generatedProperties = [
|
|
|
639
640
|
"row-rule-color",
|
|
640
641
|
"row-rule-outset",
|
|
641
642
|
"row-rule-style",
|
|
643
|
+
"row-rule-visibility-items",
|
|
642
644
|
"row-rule-width",
|
|
643
645
|
"ruby-align",
|
|
644
646
|
"ruby-overhang",
|
|
@@ -720,6 +722,7 @@ export const generatedProperties = [
|
|
|
720
722
|
"text-emphasis-style",
|
|
721
723
|
"text-grow",
|
|
722
724
|
"text-indent",
|
|
725
|
+
"text-justify",
|
|
723
726
|
"text-orientation",
|
|
724
727
|
"text-overflow",
|
|
725
728
|
"text-rendering",
|
|
@@ -1736,6 +1739,16 @@ export const generatedProperties = [
|
|
|
1736
1739
|
],
|
|
1737
1740
|
"name": "column-rule-style"
|
|
1738
1741
|
},
|
|
1742
|
+
{
|
|
1743
|
+
"inherited": false,
|
|
1744
|
+
"keywords": [
|
|
1745
|
+
"all",
|
|
1746
|
+
"around",
|
|
1747
|
+
"between",
|
|
1748
|
+
"none"
|
|
1749
|
+
],
|
|
1750
|
+
"name": "column-rule-visibility-items"
|
|
1751
|
+
},
|
|
1739
1752
|
{
|
|
1740
1753
|
"keywords": [
|
|
1741
1754
|
"thin",
|
|
@@ -3714,6 +3727,16 @@ export const generatedProperties = [
|
|
|
3714
3727
|
],
|
|
3715
3728
|
"name": "row-rule-style"
|
|
3716
3729
|
},
|
|
3730
|
+
{
|
|
3731
|
+
"inherited": false,
|
|
3732
|
+
"keywords": [
|
|
3733
|
+
"all",
|
|
3734
|
+
"around",
|
|
3735
|
+
"between",
|
|
3736
|
+
"none"
|
|
3737
|
+
],
|
|
3738
|
+
"name": "row-rule-visibility-items"
|
|
3739
|
+
},
|
|
3717
3740
|
{
|
|
3718
3741
|
"keywords": [
|
|
3719
3742
|
"thin",
|
|
@@ -4321,6 +4344,16 @@ export const generatedProperties = [
|
|
|
4321
4344
|
"inherited": true,
|
|
4322
4345
|
"name": "text-indent"
|
|
4323
4346
|
},
|
|
4347
|
+
{
|
|
4348
|
+
"inherited": true,
|
|
4349
|
+
"keywords": [
|
|
4350
|
+
"auto",
|
|
4351
|
+
"none",
|
|
4352
|
+
"inter-word",
|
|
4353
|
+
"inter-character"
|
|
4354
|
+
],
|
|
4355
|
+
"name": "text-justify"
|
|
4356
|
+
},
|
|
4324
4357
|
{
|
|
4325
4358
|
"inherited": true,
|
|
4326
4359
|
"keywords": [
|
|
@@ -5364,6 +5397,14 @@ export const generatedPropertyValues = {
|
|
|
5364
5397
|
"double"
|
|
5365
5398
|
]
|
|
5366
5399
|
},
|
|
5400
|
+
"column-rule-visibility-items": {
|
|
5401
|
+
"values": [
|
|
5402
|
+
"all",
|
|
5403
|
+
"around",
|
|
5404
|
+
"between",
|
|
5405
|
+
"none"
|
|
5406
|
+
]
|
|
5407
|
+
},
|
|
5367
5408
|
"column-rule-width": {
|
|
5368
5409
|
"values": [
|
|
5369
5410
|
"thin",
|
|
@@ -6480,6 +6521,14 @@ export const generatedPropertyValues = {
|
|
|
6480
6521
|
"double"
|
|
6481
6522
|
]
|
|
6482
6523
|
},
|
|
6524
|
+
"row-rule-visibility-items": {
|
|
6525
|
+
"values": [
|
|
6526
|
+
"all",
|
|
6527
|
+
"around",
|
|
6528
|
+
"between",
|
|
6529
|
+
"none"
|
|
6530
|
+
]
|
|
6531
|
+
},
|
|
6483
6532
|
"row-rule-width": {
|
|
6484
6533
|
"values": [
|
|
6485
6534
|
"thin",
|
|
@@ -6773,6 +6822,14 @@ export const generatedPropertyValues = {
|
|
|
6773
6822
|
"currentcolor"
|
|
6774
6823
|
]
|
|
6775
6824
|
},
|
|
6825
|
+
"text-justify": {
|
|
6826
|
+
"values": [
|
|
6827
|
+
"auto",
|
|
6828
|
+
"none",
|
|
6829
|
+
"inter-word",
|
|
6830
|
+
"inter-character"
|
|
6831
|
+
]
|
|
6832
|
+
},
|
|
6776
6833
|
"text-orientation": {
|
|
6777
6834
|
"values": [
|
|
6778
6835
|
"sideways",
|
|
@@ -18029,29 +18029,6 @@ export namespace SystemInfo {
|
|
|
18029
18029
|
Unknown = 'unknown',
|
|
18030
18030
|
}
|
|
18031
18031
|
|
|
18032
|
-
/**
|
|
18033
|
-
* Describes a supported image decoding profile with its associated minimum and
|
|
18034
|
-
* maximum resolutions and subsampling.
|
|
18035
|
-
*/
|
|
18036
|
-
export interface ImageDecodeAcceleratorCapability {
|
|
18037
|
-
/**
|
|
18038
|
-
* Image coded, e.g. Jpeg.
|
|
18039
|
-
*/
|
|
18040
|
-
imageType: ImageType;
|
|
18041
|
-
/**
|
|
18042
|
-
* Maximum supported dimensions of the image in pixels.
|
|
18043
|
-
*/
|
|
18044
|
-
maxDimensions: Size;
|
|
18045
|
-
/**
|
|
18046
|
-
* Minimum supported dimensions of the image in pixels.
|
|
18047
|
-
*/
|
|
18048
|
-
minDimensions: Size;
|
|
18049
|
-
/**
|
|
18050
|
-
* Optional array of supported subsampling formats, e.g. 4:2:0, if known.
|
|
18051
|
-
*/
|
|
18052
|
-
subsamplings: SubsamplingFormat[];
|
|
18053
|
-
}
|
|
18054
|
-
|
|
18055
18032
|
/**
|
|
18056
18033
|
* Provides information about the GPU(s) on the system.
|
|
18057
18034
|
*/
|
|
@@ -18080,10 +18057,6 @@ export namespace SystemInfo {
|
|
|
18080
18057
|
* Supported accelerated video encoding capabilities.
|
|
18081
18058
|
*/
|
|
18082
18059
|
videoEncoding: VideoEncodeAcceleratorCapability[];
|
|
18083
|
-
/**
|
|
18084
|
-
* Supported accelerated image decoding capabilities.
|
|
18085
|
-
*/
|
|
18086
|
-
imageDecoding: ImageDecodeAcceleratorCapability[];
|
|
18087
18060
|
}
|
|
18088
18061
|
|
|
18089
18062
|
/**
|
|
@@ -7,6 +7,7 @@ import * as Common from '../../core/common/common.js';
|
|
|
7
7
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
8
8
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
9
9
|
import * as Protocol from '../../generated/protocol.js';
|
|
10
|
+
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
10
11
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
11
12
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
12
13
|
|
|
@@ -626,65 +627,65 @@ export class AXNodeIgnoredReasonTreeElement extends AXNodePropertyTreeElement {
|
|
|
626
627
|
let reasonElement: Element|null = null;
|
|
627
628
|
switch (reason) {
|
|
628
629
|
case 'activeModalDialog':
|
|
629
|
-
reasonElement =
|
|
630
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementIsHiddenBy, {});
|
|
630
631
|
break;
|
|
631
632
|
case 'hiddenByChildTree':
|
|
632
|
-
reasonElement =
|
|
633
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementIsHiddenByChildTree, {});
|
|
633
634
|
break;
|
|
634
635
|
case 'ancestorIsLeafNode':
|
|
635
|
-
reasonElement =
|
|
636
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.ancestorChildrenAreAll, {});
|
|
636
637
|
break;
|
|
637
638
|
case 'ariaHiddenElement': {
|
|
638
639
|
const ariaHiddenSpan = document.createElement('span', {is: 'source-code'}).textContent = 'aria-hidden';
|
|
639
|
-
reasonElement =
|
|
640
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementIsPlaceholder, {PH1: ariaHiddenSpan});
|
|
640
641
|
break;
|
|
641
642
|
}
|
|
642
643
|
case 'ariaHiddenSubtree': {
|
|
643
644
|
const ariaHiddenSpan = document.createElement('span', {is: 'source-code'}).textContent = 'aria-hidden';
|
|
644
645
|
const trueSpan = document.createElement('span', {is: 'source-code'}).textContent = 'true';
|
|
645
|
-
reasonElement =
|
|
646
|
+
reasonElement = uiI18n.getFormatLocalizedString(
|
|
646
647
|
str_, UIStrings.placeholderIsPlaceholderOnAncestor, {PH1: ariaHiddenSpan, PH2: trueSpan});
|
|
647
648
|
break;
|
|
648
649
|
}
|
|
649
650
|
case 'emptyAlt':
|
|
650
|
-
reasonElement =
|
|
651
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementHasEmptyAltText, {});
|
|
651
652
|
break;
|
|
652
653
|
case 'emptyText':
|
|
653
|
-
reasonElement =
|
|
654
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.noTextContent, {});
|
|
654
655
|
break;
|
|
655
656
|
case 'inertElement':
|
|
656
|
-
reasonElement =
|
|
657
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementIsInert, {});
|
|
657
658
|
break;
|
|
658
659
|
case 'inertSubtree':
|
|
659
|
-
reasonElement =
|
|
660
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementIsInAnInertSubTree, {});
|
|
660
661
|
break;
|
|
661
662
|
case 'inheritsPresentation':
|
|
662
|
-
reasonElement =
|
|
663
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementsInheritsPresentational, {});
|
|
663
664
|
break;
|
|
664
665
|
case 'labelContainer':
|
|
665
|
-
reasonElement =
|
|
666
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.partOfLabelElement, {});
|
|
666
667
|
break;
|
|
667
668
|
case 'labelFor':
|
|
668
|
-
reasonElement =
|
|
669
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.labelFor, {});
|
|
669
670
|
break;
|
|
670
671
|
case 'notRendered':
|
|
671
|
-
reasonElement =
|
|
672
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementIsNotRendered, {});
|
|
672
673
|
break;
|
|
673
674
|
case 'notVisible':
|
|
674
|
-
reasonElement =
|
|
675
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementIsNotVisible, {});
|
|
675
676
|
break;
|
|
676
677
|
case 'presentationalRole': {
|
|
677
678
|
const role = axNode?.role()?.value || '';
|
|
678
679
|
const rolePresentationSpan = document.createElement('span', {is: 'source-code'}).textContent = 'role=' + role;
|
|
679
680
|
reasonElement =
|
|
680
|
-
|
|
681
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.elementHasPlaceholder, {PH1: rolePresentationSpan});
|
|
681
682
|
break;
|
|
682
683
|
}
|
|
683
684
|
case 'probablyPresentational':
|
|
684
|
-
reasonElement =
|
|
685
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementIsPresentational, {});
|
|
685
686
|
break;
|
|
686
687
|
case 'uninteresting':
|
|
687
|
-
reasonElement =
|
|
688
|
+
reasonElement = uiI18n.getFormatLocalizedString(str_, UIStrings.elementNotInteresting, {});
|
|
688
689
|
break;
|
|
689
690
|
}
|
|
690
691
|
if (reasonElement) {
|
|
@@ -15,7 +15,7 @@ import {SourceOrderPane} from './SourceOrderView.js';
|
|
|
15
15
|
|
|
16
16
|
let accessibilitySidebarViewInstance: AccessibilitySidebarView;
|
|
17
17
|
|
|
18
|
-
export class AccessibilitySidebarView extends UI.
|
|
18
|
+
export class AccessibilitySidebarView extends UI.Widget.VBox {
|
|
19
19
|
#node: SDK.DOMModel.DOMNode|null;
|
|
20
20
|
#axNode: SDK.AccessibilityModel.AccessibilityNode|null;
|
|
21
21
|
private skipNextPullNode: boolean;
|
|
@@ -24,8 +24,8 @@ export class AccessibilitySidebarView extends UI.ThrottledWidget.ThrottledWidget
|
|
|
24
24
|
private readonly ariaSubPane: ARIAAttributesPane;
|
|
25
25
|
private readonly axNodeSubPane: AXNodeSubPane;
|
|
26
26
|
private readonly sourceOrderSubPane: SourceOrderPane;
|
|
27
|
-
private constructor(
|
|
28
|
-
super(
|
|
27
|
+
private constructor() {
|
|
28
|
+
super();
|
|
29
29
|
this.element.classList.add('accessibility-sidebar-view');
|
|
30
30
|
this.#node = null;
|
|
31
31
|
this.#axNode = null;
|
|
@@ -44,12 +44,9 @@ export class AccessibilitySidebarView extends UI.ThrottledWidget.ThrottledWidget
|
|
|
44
44
|
this.pullNode();
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
static instance(opts?: {
|
|
48
|
-
forceNew: boolean,
|
|
49
|
-
throttlingTimeout: number,
|
|
50
|
-
}): AccessibilitySidebarView {
|
|
47
|
+
static instance(opts?: {forceNew: boolean}): AccessibilitySidebarView {
|
|
51
48
|
if (!accessibilitySidebarViewInstance || opts?.forceNew) {
|
|
52
|
-
accessibilitySidebarViewInstance = new AccessibilitySidebarView(
|
|
49
|
+
accessibilitySidebarViewInstance = new AccessibilitySidebarView();
|
|
53
50
|
}
|
|
54
51
|
return accessibilitySidebarViewInstance;
|
|
55
52
|
}
|
|
@@ -65,7 +62,7 @@ export class AccessibilitySidebarView extends UI.ThrottledWidget.ThrottledWidget
|
|
|
65
62
|
setNode(node: SDK.DOMModel.DOMNode|null, fromAXTree?: boolean): void {
|
|
66
63
|
this.skipNextPullNode = Boolean(fromAXTree);
|
|
67
64
|
this.#node = node;
|
|
68
|
-
this.
|
|
65
|
+
this.requestUpdate();
|
|
69
66
|
}
|
|
70
67
|
|
|
71
68
|
accessibilityNodeCallback(axNode: SDK.AccessibilityModel.AccessibilityNode|null): void {
|
|
@@ -85,7 +82,7 @@ export class AccessibilitySidebarView extends UI.ThrottledWidget.ThrottledWidget
|
|
|
85
82
|
this.breadcrumbsSubPane.setAXNode(axNode);
|
|
86
83
|
}
|
|
87
84
|
|
|
88
|
-
override async
|
|
85
|
+
override async performUpdate(): Promise<void> {
|
|
89
86
|
const node = this.node();
|
|
90
87
|
this.axNodeSubPane.setNode(node);
|
|
91
88
|
this.ariaSubPane.setNode(node);
|
|
@@ -109,7 +106,7 @@ export class AccessibilitySidebarView extends UI.ThrottledWidget.ThrottledWidget
|
|
|
109
106
|
super.wasShown();
|
|
110
107
|
|
|
111
108
|
// Pull down the latest date for this node.
|
|
112
|
-
void this.
|
|
109
|
+
void this.performUpdate();
|
|
113
110
|
|
|
114
111
|
SDK.TargetManager.TargetManager.instance().addModelListener(
|
|
115
112
|
SDK.DOMModel.DOMModel, SDK.DOMModel.Events.AttrModified, this.onNodeChange, this, {scoped: true});
|
|
@@ -152,6 +149,6 @@ export class AccessibilitySidebarView extends UI.ThrottledWidget.ThrottledWidget
|
|
|
152
149
|
if (this.node() !== node) {
|
|
153
150
|
return;
|
|
154
151
|
}
|
|
155
|
-
this.
|
|
152
|
+
this.requestUpdate();
|
|
156
153
|
}
|
|
157
154
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// Copyright 2025 The Chromium Authors
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
|
-
/* eslint-disable @devtools/no-lit-render-outside-of-view */
|
|
5
4
|
|
|
6
5
|
import '../../ui/legacy/legacy.js';
|
|
7
6
|
import '../../ui/components/markdown_view/markdown_view.js';
|
|
@@ -187,42 +186,8 @@ export interface ViewOutput {
|
|
|
187
186
|
}
|
|
188
187
|
|
|
189
188
|
type View = (input: ViewInput, output: ViewOutput, target: HTMLElement) => void;
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
changeSummary = '';
|
|
193
|
-
changeManager: AiAssistanceModel.ChangeManager.ChangeManager|undefined;
|
|
194
|
-
// Whether the user completed first run experience dialog or not.
|
|
195
|
-
#aiPatchingFreCompletedSetting =
|
|
196
|
-
Common.Settings.Settings.instance().createSetting('ai-assistance-patching-fre-completed', false);
|
|
197
|
-
#projectIdSetting =
|
|
198
|
-
Common.Settings.Settings.instance().createSetting('ai-assistance-patching-selected-project-id', '');
|
|
199
|
-
#view: View;
|
|
200
|
-
#viewOutput: ViewOutput = {};
|
|
201
|
-
#aidaClient: Host.AidaClient.AidaClient;
|
|
202
|
-
#applyPatchAbortController?: AbortController;
|
|
203
|
-
#project?: Workspace.Workspace.Project;
|
|
204
|
-
#patchSources?: string;
|
|
205
|
-
#savedToDisk?: boolean;
|
|
206
|
-
#noLogging: boolean; // Whether the enterprise setting is `ALLOW_WITHOUT_LOGGING` or not.
|
|
207
|
-
#patchSuggestionState = PatchSuggestionState.INITIAL;
|
|
208
|
-
#workspaceDiff = WorkspaceDiff.WorkspaceDiff.workspaceDiff();
|
|
209
|
-
#workspace = Workspace.Workspace.WorkspaceImpl.instance();
|
|
210
|
-
#automaticFileSystem =
|
|
211
|
-
Persistence.AutomaticFileSystemManager.AutomaticFileSystemManager.instance().automaticFileSystem;
|
|
212
|
-
#applyToDisconnectedAutomaticWorkspace = false;
|
|
213
|
-
// `rpcId` from the `applyPatch` request
|
|
214
|
-
#rpcId: Host.AidaClient.RpcGlobalId|null = null;
|
|
215
|
-
|
|
216
|
-
constructor(element?: HTMLElement, view?: View, opts?: {
|
|
217
|
-
aidaClient: Host.AidaClient.AidaClient,
|
|
218
|
-
}) {
|
|
219
|
-
super(element);
|
|
220
|
-
this.#aidaClient = opts?.aidaClient ?? new Host.AidaClient.AidaClient();
|
|
221
|
-
this.#noLogging = Root.Runtime.hostConfig.aidaAvailability?.enterprisePolicyValue ===
|
|
222
|
-
Root.Runtime.GenAiEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING;
|
|
223
|
-
|
|
224
|
-
// clang-format off
|
|
225
|
-
this.#view = view ?? ((input, output, target) => {
|
|
189
|
+
const DEFAULT_VIEW: View =
|
|
190
|
+
(input, output, target) => {
|
|
226
191
|
if (!input.changeSummary && input.patchSuggestionState === PatchSuggestionState.INITIAL) {
|
|
227
192
|
return;
|
|
228
193
|
}
|
|
@@ -428,9 +393,43 @@ export class PatchWidget extends UI.Widget.Widget {
|
|
|
428
393
|
</details>
|
|
429
394
|
`;
|
|
430
395
|
|
|
431
|
-
render(template, target
|
|
432
|
-
}
|
|
433
|
-
|
|
396
|
+
render(template, target);
|
|
397
|
+
};
|
|
398
|
+
|
|
399
|
+
export class PatchWidget extends UI.Widget.Widget {
|
|
400
|
+
changeSummary = '';
|
|
401
|
+
changeManager: AiAssistanceModel.ChangeManager.ChangeManager|undefined;
|
|
402
|
+
// Whether the user completed first run experience dialog or not.
|
|
403
|
+
#aiPatchingFreCompletedSetting =
|
|
404
|
+
Common.Settings.Settings.instance().createSetting('ai-assistance-patching-fre-completed', false);
|
|
405
|
+
#projectIdSetting =
|
|
406
|
+
Common.Settings.Settings.instance().createSetting('ai-assistance-patching-selected-project-id', '');
|
|
407
|
+
#view: View;
|
|
408
|
+
#viewOutput: ViewOutput = {};
|
|
409
|
+
#aidaClient: Host.AidaClient.AidaClient;
|
|
410
|
+
#applyPatchAbortController?: AbortController;
|
|
411
|
+
#project?: Workspace.Workspace.Project;
|
|
412
|
+
#patchSources?: string;
|
|
413
|
+
#savedToDisk?: boolean;
|
|
414
|
+
#noLogging: boolean; // Whether the enterprise setting is `ALLOW_WITHOUT_LOGGING` or not.
|
|
415
|
+
#patchSuggestionState = PatchSuggestionState.INITIAL;
|
|
416
|
+
#workspaceDiff = WorkspaceDiff.WorkspaceDiff.workspaceDiff();
|
|
417
|
+
#workspace = Workspace.Workspace.WorkspaceImpl.instance();
|
|
418
|
+
#automaticFileSystem =
|
|
419
|
+
Persistence.AutomaticFileSystemManager.AutomaticFileSystemManager.instance().automaticFileSystem;
|
|
420
|
+
#applyToDisconnectedAutomaticWorkspace = false;
|
|
421
|
+
// `rpcId` from the `applyPatch` request
|
|
422
|
+
#rpcId: Host.AidaClient.RpcGlobalId|null = null;
|
|
423
|
+
|
|
424
|
+
constructor(element?: HTMLElement, view = DEFAULT_VIEW, opts?: {
|
|
425
|
+
aidaClient: Host.AidaClient.AidaClient,
|
|
426
|
+
}) {
|
|
427
|
+
super(element);
|
|
428
|
+
this.#aidaClient = opts?.aidaClient ?? new Host.AidaClient.AidaClient();
|
|
429
|
+
this.#noLogging = Root.Runtime.hostConfig.aidaAvailability?.enterprisePolicyValue ===
|
|
430
|
+
Root.Runtime.GenAiEnterprisePolicyValue.ALLOW_WITHOUT_LOGGING;
|
|
431
|
+
this.#view = view;
|
|
432
|
+
|
|
434
433
|
this.requestUpdate();
|
|
435
434
|
}
|
|
436
435
|
|