chrome-devtools-frontend 1.0.1576915 → 1.0.1577886
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/front_end/core/sdk/DebuggerModel.ts +0 -34
- package/front_end/generated/InspectorBackendCommands.ts +3 -2
- package/front_end/generated/SupportedCSSProperties.js +5 -8
- package/front_end/generated/protocol-mapping.d.ts +9 -0
- package/front_end/generated/protocol-proxy-api.d.ts +7 -0
- package/front_end/generated/protocol.ts +16 -0
- package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +9 -7
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +0 -24
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +0 -52
- package/front_end/models/stack_trace/StackTrace.ts +3 -9
- package/front_end/models/workspace/WorkspaceImpl.ts +1 -1
- package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +3 -5
- package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
- package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +0 -1
- package/front_end/panels/application/components/BackForwardCacheView.ts +2 -4
- package/front_end/panels/autofill/AutofillView.ts +1 -1
- package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +0 -1
- package/front_end/panels/common/GeminiRebrandPromoDialog.ts +2 -0
- package/front_end/panels/console/ConsoleViewMessage.ts +0 -1
- package/front_end/panels/css_overview/cssOverviewCompletedView.css +5 -0
- package/front_end/panels/elements/ElementsTreeElement.ts +0 -1
- package/front_end/panels/elements/LayoutPane.ts +7 -8
- package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
- package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -2
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
- package/front_end/panels/media/PlayerListView.ts +1 -1
- package/front_end/panels/network/NetworkLogViewColumns.ts +1 -2
- package/front_end/panels/network/components/RequestHeaderSection.ts +1 -1
- package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
- package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
- package/front_end/panels/recorder/components/RecordingView.ts +15 -0
- package/front_end/panels/recorder/components/StepEditor.ts +3 -3
- package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -2
- package/front_end/panels/sources/CallStackSidebarPane.ts +74 -175
- package/front_end/panels/sources/DebuggerPlugin.ts +2 -2
- package/front_end/panels/sources/components/HeadersView.ts +2 -2
- package/front_end/panels/timeline/components/BreadcrumbsUI.ts +1 -1
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +1 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/components/suggestion_input/SuggestionInput.ts +12 -7
- package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
- package/front_end/ui/legacy/ListControl.ts +1 -2
- package/front_end/ui/legacy/ListWidget.ts +1 -1
- package/front_end/ui/legacy/SoftContextMenu.ts +1 -2
- package/front_end/ui/legacy/Treeoutline.ts +0 -1
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +2 -4
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
- package/front_end/ui/visual_logging/Debugging.ts +2 -0
- package/package.json +1 -1
|
@@ -150,7 +150,6 @@ export class DebuggerModel extends SDKModel<EventTypes> {
|
|
|
150
150
|
start: Location,
|
|
151
151
|
end: Location,
|
|
152
152
|
}>>)|null = null;
|
|
153
|
-
#expandCallFramesCallback: ((arg0: CallFrame[]) => Promise<CallFrame[]>)|null = null;
|
|
154
153
|
evaluateOnCallFrameCallback:
|
|
155
154
|
((arg0: CallFrame, arg1: EvaluationOptions) => Promise<EvaluationResult|null>)|null = null;
|
|
156
155
|
#synchronizeBreakpointsCallback: ((script: Script) => Promise<void>)|null = null;
|
|
@@ -599,10 +598,6 @@ export class DebuggerModel extends SDKModel<EventTypes> {
|
|
|
599
598
|
this.#beforePausedCallback = callback;
|
|
600
599
|
}
|
|
601
600
|
|
|
602
|
-
setExpandCallFramesCallback(callback: ((arg0: CallFrame[]) => Promise<CallFrame[]>)|null): void {
|
|
603
|
-
this.#expandCallFramesCallback = callback;
|
|
604
|
-
}
|
|
605
|
-
|
|
606
601
|
setEvaluateOnCallFrameCallback(
|
|
607
602
|
callback: ((arg0: CallFrame, arg1: EvaluationOptions) => Promise<EvaluationResult|null>)|null): void {
|
|
608
603
|
this.evaluateOnCallFrameCallback = callback;
|
|
@@ -627,7 +622,6 @@ export class DebuggerModel extends SDKModel<EventTypes> {
|
|
|
627
622
|
|
|
628
623
|
const pausedDetails =
|
|
629
624
|
new DebuggerPausedDetails(this, callFrames, reason, auxData, breakpointIds, asyncStackTrace, asyncStackTraceId);
|
|
630
|
-
await this.#expandCallFrames(pausedDetails);
|
|
631
625
|
|
|
632
626
|
if (this.continueToLocationCallback) {
|
|
633
627
|
const callback = this.continueToLocationCallback;
|
|
@@ -648,13 +642,6 @@ export class DebuggerModel extends SDKModel<EventTypes> {
|
|
|
648
642
|
}
|
|
649
643
|
}
|
|
650
644
|
|
|
651
|
-
/** Delegates to the DebuggerLanguagePlugin and potential attached source maps to expand inlined call frames */
|
|
652
|
-
async #expandCallFrames(pausedDetails: DebuggerPausedDetails): Promise<void> {
|
|
653
|
-
if (this.#expandCallFramesCallback) {
|
|
654
|
-
pausedDetails.callFrames = await this.#expandCallFramesCallback.call(null, pausedDetails.callFrames);
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
|
|
658
645
|
resumedScript(): void {
|
|
659
646
|
this.resetDebuggerPausedDetails();
|
|
660
647
|
this.dispatchEventToListeners(Events.DebuggerResumed, this);
|
|
@@ -708,10 +695,6 @@ export class DebuggerModel extends SDKModel<EventTypes> {
|
|
|
708
695
|
}
|
|
709
696
|
|
|
710
697
|
async setDebugInfoURL(script: Script, _externalURL: Platform.DevToolsPath.UrlString): Promise<void> {
|
|
711
|
-
if (this.#expandCallFramesCallback && this.#debuggerPausedDetails) {
|
|
712
|
-
this.#debuggerPausedDetails.callFrames =
|
|
713
|
-
await this.#expandCallFramesCallback.call(null, this.#debuggerPausedDetails.callFrames);
|
|
714
|
-
}
|
|
715
698
|
this.dispatchEventToListeners(Events.DebugInfoAttached, script);
|
|
716
699
|
}
|
|
717
700
|
|
|
@@ -1186,21 +1169,6 @@ export interface MissingDebugFiles {
|
|
|
1186
1169
|
initiator: PageResourceLoadInitiator;
|
|
1187
1170
|
}
|
|
1188
1171
|
|
|
1189
|
-
export const enum MissingDebugInfoType {
|
|
1190
|
-
/** No debug information at all for the call frame */
|
|
1191
|
-
NO_INFO = 'NO_INFO',
|
|
1192
|
-
|
|
1193
|
-
/** Some debug information available, but it references files with debug information we were not able to retrieve */
|
|
1194
|
-
PARTIAL_INFO = 'PARTIAL_INFO',
|
|
1195
|
-
}
|
|
1196
|
-
|
|
1197
|
-
export type MissingDebugInfo = {
|
|
1198
|
-
type: MissingDebugInfoType.NO_INFO,
|
|
1199
|
-
}|{
|
|
1200
|
-
type: MissingDebugInfoType.PARTIAL_INFO,
|
|
1201
|
-
missingDebugFiles: MissingDebugFiles[],
|
|
1202
|
-
};
|
|
1203
|
-
|
|
1204
1172
|
export class CallFrame {
|
|
1205
1173
|
debuggerModel: DebuggerModel;
|
|
1206
1174
|
readonly script: Script;
|
|
@@ -1212,7 +1180,6 @@ export class CallFrame {
|
|
|
1212
1180
|
readonly functionName: string;
|
|
1213
1181
|
readonly #functionLocation: Location|undefined;
|
|
1214
1182
|
#returnValue: RemoteObject|null;
|
|
1215
|
-
missingDebugInfoDetails: MissingDebugInfo|null;
|
|
1216
1183
|
readonly exception: RemoteObject|null;
|
|
1217
1184
|
|
|
1218
1185
|
readonly canBeRestarted: boolean;
|
|
@@ -1228,7 +1195,6 @@ export class CallFrame {
|
|
|
1228
1195
|
this.#localScope = null;
|
|
1229
1196
|
this.inlineFrameIndex = inlineFrameIndex || 0;
|
|
1230
1197
|
this.functionName = functionName ?? payload.functionName;
|
|
1231
|
-
this.missingDebugInfoDetails = null;
|
|
1232
1198
|
this.canBeRestarted = Boolean(payload.canBeRestarted);
|
|
1233
1199
|
this.exception = exception;
|
|
1234
1200
|
for (let i = 0; i < payload.scopeChain.length; ++i) {
|
|
@@ -571,7 +571,8 @@ inspectorBackend.registerCommand("EventBreakpoints.disable", [], [], "Removes al
|
|
|
571
571
|
|
|
572
572
|
// Extensions.
|
|
573
573
|
inspectorBackend.registerEnum("Extensions.StorageArea", {Session: "session", Local: "local", Sync: "sync", Managed: "managed"});
|
|
574
|
-
inspectorBackend.registerCommand("Extensions.
|
|
574
|
+
inspectorBackend.registerCommand("Extensions.triggerAction", [{"name": "id", "type": "string", "optional": false, "description": "Extension id.", "typeRef": null}, {"name": "targetId", "type": "string", "optional": false, "description": "A tab target ID to trigger the default extension action on.", "typeRef": null}], [], "Runs an extension default action. Available if the client is connected using the --remote-debugging-pipe flag and the --enable-unsafe-extension-debugging flag is set.");
|
|
575
|
+
inspectorBackend.registerCommand("Extensions.loadUnpacked", [{"name": "path", "type": "string", "optional": false, "description": "Absolute file path.", "typeRef": null}, {"name": "enableInIncognito", "type": "boolean", "optional": true, "description": "Enable the extension in incognito", "typeRef": null}], ["id"], "Installs an unpacked extension from the filesystem similar to --load-extension CLI flags. Returns extension ID once the extension has been installed. Available if the client is connected using the --remote-debugging-pipe flag and the --enable-unsafe-extension-debugging flag is set.");
|
|
575
576
|
inspectorBackend.registerCommand("Extensions.uninstall", [{"name": "id", "type": "string", "optional": false, "description": "Extension id.", "typeRef": null}], [], "Uninstalls an unpacked extension (others not supported) from the profile. Available if the client is connected using the --remote-debugging-pipe flag and the --enable-unsafe-extension-debugging.");
|
|
576
577
|
inspectorBackend.registerCommand("Extensions.getStorageItems", [{"name": "id", "type": "string", "optional": false, "description": "ID of extension.", "typeRef": null}, {"name": "storageArea", "type": "string", "optional": false, "description": "StorageArea to retrieve data from.", "typeRef": "Extensions.StorageArea"}, {"name": "keys", "type": "array", "optional": true, "description": "Keys to retrieve.", "typeRef": "string"}], ["data"], "Gets data from extension storage in the given `storageArea`. If `keys` is specified, these are used to filter the result.");
|
|
577
578
|
inspectorBackend.registerCommand("Extensions.removeStorageItems", [{"name": "id", "type": "string", "optional": false, "description": "ID of extension.", "typeRef": null}, {"name": "storageArea", "type": "string", "optional": false, "description": "StorageArea to remove data from.", "typeRef": "Extensions.StorageArea"}, {"name": "keys", "type": "array", "optional": false, "description": "Keys to remove.", "typeRef": "string"}], [], "Removes `keys` from extension storage in the given `storageArea`.");
|
|
@@ -1268,7 +1269,7 @@ inspectorBackend.registerCommand("SmartCardEmulation.reportEstablishContextResul
|
|
|
1268
1269
|
inspectorBackend.registerCommand("SmartCardEmulation.reportReleaseContextResult", [{"name": "requestId", "type": "string", "optional": false, "description": "", "typeRef": null}], [], "Reports the successful result of a |SCardReleaseContext| call. This maps to: PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga6aabcba7744c5c9419fdd6404f73a934 Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardreleasecontext");
|
|
1269
1270
|
inspectorBackend.registerCommand("SmartCardEmulation.reportListReadersResult", [{"name": "requestId", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "readers", "type": "array", "optional": false, "description": "", "typeRef": "string"}], [], "Reports the successful result of a |SCardListReaders| call. This maps to: PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga93b07815789b3cf2629d439ecf20f0d9 Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardlistreadersa");
|
|
1270
1271
|
inspectorBackend.registerCommand("SmartCardEmulation.reportGetStatusChangeResult", [{"name": "requestId", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "readerStates", "type": "array", "optional": false, "description": "", "typeRef": "SmartCardEmulation.ReaderStateOut"}], [], "Reports the successful result of a |SCardGetStatusChange| call. This maps to: PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga33247d5d1257d59e55647c3bb717db24 Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardgetstatuschangea");
|
|
1271
|
-
inspectorBackend.registerCommand("SmartCardEmulation.reportBeginTransactionResult", [{"name": "requestId", "type": "string", "optional": false, "description": "", "typeRef": null}], [], "Reports the result of a |SCardBeginTransaction| call. On success, this creates a new transaction object. This maps to: PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaddb835dce01a0da1d6ca02d33ee7d861 Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardbegintransaction");
|
|
1272
|
+
inspectorBackend.registerCommand("SmartCardEmulation.reportBeginTransactionResult", [{"name": "requestId", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "handle", "type": "number", "optional": false, "description": "", "typeRef": null}], [], "Reports the result of a |SCardBeginTransaction| call. On success, this creates a new transaction object. This maps to: PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaddb835dce01a0da1d6ca02d33ee7d861 Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardbegintransaction");
|
|
1272
1273
|
inspectorBackend.registerCommand("SmartCardEmulation.reportPlainResult", [{"name": "requestId", "type": "string", "optional": false, "description": "", "typeRef": null}], [], "Reports the successful result of a call that returns only a result code. Used for: |SCardCancel|, |SCardDisconnect|, |SCardSetAttrib|, |SCardEndTransaction|. This maps to: 1. SCardCancel PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaacbbc0c6d6c0cbbeb4f4debf6fbeeee6 Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardcancel 2. SCardDisconnect PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga4be198045c73ec0deb79e66c0ca1738a Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scarddisconnect 3. SCardSetAttrib PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga060f0038a4ddfd5dd2b8fadf3c3a2e4f Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardsetattrib 4. SCardEndTransaction PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gae8742473b404363e5c587f570d7e2f3b Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardendtransaction");
|
|
1273
1274
|
inspectorBackend.registerCommand("SmartCardEmulation.reportConnectResult", [{"name": "requestId", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "handle", "type": "number", "optional": false, "description": "", "typeRef": null}, {"name": "activeProtocol", "type": "string", "optional": true, "description": "", "typeRef": "SmartCardEmulation.Protocol"}], [], "Reports the successful result of a |SCardConnect| call. This maps to: PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga4e515829752e0a8dbc4d630696a8d6a5 Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardconnecta");
|
|
1274
1275
|
inspectorBackend.registerCommand("SmartCardEmulation.reportDataResult", [{"name": "requestId", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "data", "type": "string", "optional": false, "description": "", "typeRef": null}], [], "Reports the successful result of a call that sends back data on success. Used for |SCardTransmit|, |SCardControl|, and |SCardGetAttrib|. This maps to: 1. SCardTransmit PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#ga9a2d77242a271310269065e64633ab99 Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardtransmit 2. SCardControl PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gac3454d4657110fd7f753b2d3d8f4e32f Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardcontrol 3. SCardGetAttrib PC/SC Lite: https://pcsclite.apdu.fr/api/group__API.html#gaacfec51917255b7a25b94c5104961602 Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winscard-scardgetattrib");
|
|
@@ -1725,8 +1725,7 @@ export const generatedProperties = [
|
|
|
1725
1725
|
"inherited": false,
|
|
1726
1726
|
"keywords": [
|
|
1727
1727
|
"none",
|
|
1728
|
-
"
|
|
1729
|
-
"spanning-item",
|
|
1728
|
+
"normal",
|
|
1730
1729
|
"intersection"
|
|
1731
1730
|
],
|
|
1732
1731
|
"name": "column-rule-break"
|
|
@@ -2690,6 +2689,7 @@ export const generatedProperties = [
|
|
|
2690
2689
|
"longhands": [
|
|
2691
2690
|
"grid-template-areas",
|
|
2692
2691
|
"grid-template-columns",
|
|
2692
|
+
"grid-template-rows",
|
|
2693
2693
|
"grid-lanes-direction"
|
|
2694
2694
|
],
|
|
2695
2695
|
"name": "grid-lanes"
|
|
@@ -3774,8 +3774,7 @@ export const generatedProperties = [
|
|
|
3774
3774
|
"inherited": false,
|
|
3775
3775
|
"keywords": [
|
|
3776
3776
|
"none",
|
|
3777
|
-
"
|
|
3778
|
-
"spanning-item",
|
|
3777
|
+
"normal",
|
|
3779
3778
|
"intersection"
|
|
3780
3779
|
],
|
|
3781
3780
|
"name": "row-rule-break"
|
|
@@ -5527,8 +5526,7 @@ export const generatedPropertyValues = {
|
|
|
5527
5526
|
"column-rule-break": {
|
|
5528
5527
|
"values": [
|
|
5529
5528
|
"none",
|
|
5530
|
-
"
|
|
5531
|
-
"spanning-item",
|
|
5529
|
+
"normal",
|
|
5532
5530
|
"intersection"
|
|
5533
5531
|
]
|
|
5534
5532
|
},
|
|
@@ -6665,8 +6663,7 @@ export const generatedPropertyValues = {
|
|
|
6665
6663
|
"row-rule-break": {
|
|
6666
6664
|
"values": [
|
|
6667
6665
|
"none",
|
|
6668
|
-
"
|
|
6669
|
-
"spanning-item",
|
|
6666
|
+
"normal",
|
|
6670
6667
|
"intersection"
|
|
6671
6668
|
]
|
|
6672
6669
|
},
|
|
@@ -2790,6 +2790,15 @@ export namespace ProtocolMapping {
|
|
|
2790
2790
|
paramsType: [];
|
|
2791
2791
|
returnType: void;
|
|
2792
2792
|
};
|
|
2793
|
+
/**
|
|
2794
|
+
* Runs an extension default action.
|
|
2795
|
+
* Available if the client is connected using the --remote-debugging-pipe
|
|
2796
|
+
* flag and the --enable-unsafe-extension-debugging flag is set.
|
|
2797
|
+
*/
|
|
2798
|
+
'Extensions.triggerAction': {
|
|
2799
|
+
paramsType: [Protocol.Extensions.TriggerActionRequest];
|
|
2800
|
+
returnType: void;
|
|
2801
|
+
};
|
|
2793
2802
|
/**
|
|
2794
2803
|
* Installs an unpacked extension from the filesystem similar to
|
|
2795
2804
|
* --load-extension CLI flags. Returns extension ID once the extension
|
|
@@ -1876,6 +1876,13 @@ declare namespace ProtocolProxyApi {
|
|
|
1876
1876
|
}
|
|
1877
1877
|
|
|
1878
1878
|
export interface ExtensionsApi {
|
|
1879
|
+
/**
|
|
1880
|
+
* Runs an extension default action.
|
|
1881
|
+
* Available if the client is connected using the --remote-debugging-pipe
|
|
1882
|
+
* flag and the --enable-unsafe-extension-debugging flag is set.
|
|
1883
|
+
*/
|
|
1884
|
+
invoke_triggerAction(params: Protocol.Extensions.TriggerActionRequest): Promise<Protocol.ProtocolResponseWithError>;
|
|
1885
|
+
|
|
1879
1886
|
/**
|
|
1880
1887
|
* Installs an unpacked extension from the filesystem similar to
|
|
1881
1888
|
* --load-extension CLI flags. Returns extension ID once the extension
|
|
@@ -7481,11 +7481,26 @@ export namespace Extensions {
|
|
|
7481
7481
|
Managed = 'managed',
|
|
7482
7482
|
}
|
|
7483
7483
|
|
|
7484
|
+
export interface TriggerActionRequest {
|
|
7485
|
+
/**
|
|
7486
|
+
* Extension id.
|
|
7487
|
+
*/
|
|
7488
|
+
id: string;
|
|
7489
|
+
/**
|
|
7490
|
+
* A tab target ID to trigger the default extension action on.
|
|
7491
|
+
*/
|
|
7492
|
+
targetId: string;
|
|
7493
|
+
}
|
|
7494
|
+
|
|
7484
7495
|
export interface LoadUnpackedRequest {
|
|
7485
7496
|
/**
|
|
7486
7497
|
* Absolute file path.
|
|
7487
7498
|
*/
|
|
7488
7499
|
path: string;
|
|
7500
|
+
/**
|
|
7501
|
+
* Enable the extension in incognito
|
|
7502
|
+
*/
|
|
7503
|
+
enableInIncognito?: boolean;
|
|
7489
7504
|
}
|
|
7490
7505
|
|
|
7491
7506
|
export interface LoadUnpackedResponse extends ProtocolResponseWithError {
|
|
@@ -17395,6 +17410,7 @@ export namespace SmartCardEmulation {
|
|
|
17395
17410
|
|
|
17396
17411
|
export interface ReportBeginTransactionResultRequest {
|
|
17397
17412
|
requestId: string;
|
|
17413
|
+
handle: integer;
|
|
17398
17414
|
}
|
|
17399
17415
|
|
|
17400
17416
|
export interface ReportPlainResultRequest {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as Host from '../../../core/host/host.js';
|
|
6
|
+
import * as i18n from '../../../core/i18n/i18n.js';
|
|
6
7
|
import * as Platform from '../../../core/platform/platform.js';
|
|
7
8
|
import * as Root from '../../../core/root/root.js';
|
|
8
9
|
import * as Logs from '../../logs/logs.js';
|
|
@@ -14,6 +15,7 @@ import {
|
|
|
14
15
|
type RequestOptions,
|
|
15
16
|
} from './AiAgent.js';
|
|
16
17
|
|
|
18
|
+
const lockedString = i18n.i18n.lockedString;
|
|
17
19
|
/**
|
|
18
20
|
* WARNING: preamble defined in code is only used when userTier is
|
|
19
21
|
* TESTERS. Otherwise, a server-side preamble is used (see
|
|
@@ -78,13 +80,10 @@ export class ContextSelectionAgent extends AiAgent<never> {
|
|
|
78
80
|
required: [],
|
|
79
81
|
properties: {},
|
|
80
82
|
},
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
|
|
83
|
+
displayInfoFromArgs: () => {
|
|
84
|
+
return {title: lockedString('Listing network requests…')};
|
|
85
|
+
},
|
|
86
|
+
handler: async () => {
|
|
88
87
|
const requestURls = [];
|
|
89
88
|
for (const request of Logs.NetworkLog.NetworkLog.instance().requests()) {
|
|
90
89
|
requestURls.push(request.url());
|
|
@@ -111,6 +110,9 @@ export class ContextSelectionAgent extends AiAgent<never> {
|
|
|
111
110
|
},
|
|
112
111
|
},
|
|
113
112
|
},
|
|
113
|
+
displayInfoFromArgs: args => {
|
|
114
|
+
return {title: lockedString('Getting network request…'), action: `selectNetworkRequest(${args.url})`};
|
|
115
|
+
},
|
|
114
116
|
handler: async ({url}) => {
|
|
115
117
|
// TODO: Switch to using IDs to make is easier to link to as well.
|
|
116
118
|
const request = Logs.NetworkLog.NetworkLog.instance().requests().find(req => {
|
|
@@ -489,35 +489,12 @@ export class DebuggerLanguagePluginManager implements
|
|
|
489
489
|
return this.callFrameByStopId.get(stopId);
|
|
490
490
|
}
|
|
491
491
|
|
|
492
|
-
private expandCallFrames(callFrames: SDK.DebuggerModel.CallFrame[]): Promise<SDK.DebuggerModel.CallFrame[]> {
|
|
493
|
-
return Promise
|
|
494
|
-
.all(callFrames.map(async callFrame => {
|
|
495
|
-
const functionInfo = await this.getFunctionInfo(callFrame.script, callFrame.location());
|
|
496
|
-
if (functionInfo) {
|
|
497
|
-
if ('frames' in functionInfo && functionInfo.frames.length) {
|
|
498
|
-
return functionInfo.frames.map(({name}, index) => callFrame.createVirtualCallFrame(index, name));
|
|
499
|
-
}
|
|
500
|
-
if ('missingSymbolFiles' in functionInfo && functionInfo.missingSymbolFiles.length) {
|
|
501
|
-
callFrame.missingDebugInfoDetails = {
|
|
502
|
-
type: SDK.DebuggerModel.MissingDebugInfoType.PARTIAL_INFO,
|
|
503
|
-
missingDebugFiles: functionInfo.missingSymbolFiles,
|
|
504
|
-
};
|
|
505
|
-
} else {
|
|
506
|
-
callFrame.missingDebugInfoDetails = {type: SDK.DebuggerModel.MissingDebugInfoType.NO_INFO};
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
return callFrame;
|
|
510
|
-
}))
|
|
511
|
-
.then(callFrames => callFrames.flat());
|
|
512
|
-
}
|
|
513
|
-
|
|
514
492
|
modelAdded(debuggerModel: SDK.DebuggerModel.DebuggerModel): void {
|
|
515
493
|
this.#debuggerModelToData.set(debuggerModel, new ModelData(debuggerModel, this.#workspace));
|
|
516
494
|
debuggerModel.addEventListener(SDK.DebuggerModel.Events.GlobalObjectCleared, this.globalObjectCleared, this);
|
|
517
495
|
debuggerModel.addEventListener(SDK.DebuggerModel.Events.ParsedScriptSource, this.parsedScriptSource, this);
|
|
518
496
|
debuggerModel.addEventListener(SDK.DebuggerModel.Events.DebuggerResumed, this.debuggerResumed, this);
|
|
519
497
|
debuggerModel.setEvaluateOnCallFrameCallback(this.evaluateOnCallFrame.bind(this));
|
|
520
|
-
debuggerModel.setExpandCallFramesCallback(this.expandCallFrames.bind(this));
|
|
521
498
|
}
|
|
522
499
|
|
|
523
500
|
modelRemoved(debuggerModel: SDK.DebuggerModel.DebuggerModel): void {
|
|
@@ -525,7 +502,6 @@ export class DebuggerLanguagePluginManager implements
|
|
|
525
502
|
debuggerModel.removeEventListener(SDK.DebuggerModel.Events.ParsedScriptSource, this.parsedScriptSource, this);
|
|
526
503
|
debuggerModel.removeEventListener(SDK.DebuggerModel.Events.DebuggerResumed, this.debuggerResumed, this);
|
|
527
504
|
debuggerModel.setEvaluateOnCallFrameCallback(null);
|
|
528
|
-
debuggerModel.setExpandCallFramesCallback(null);
|
|
529
505
|
const modelData = this.#debuggerModelToData.get(debuggerModel);
|
|
530
506
|
if (modelData) {
|
|
531
507
|
modelData.dispose();
|
|
@@ -38,10 +38,6 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
38
38
|
this.workspace = workspace;
|
|
39
39
|
|
|
40
40
|
this.#debuggerModelToData = new Map();
|
|
41
|
-
targetManager.addModelListener(
|
|
42
|
-
SDK.DebuggerModel.DebuggerModel, SDK.DebuggerModel.Events.GlobalObjectCleared, this.globalObjectCleared, this);
|
|
43
|
-
targetManager.addModelListener(
|
|
44
|
-
SDK.DebuggerModel.DebuggerModel, SDK.DebuggerModel.Events.DebuggerResumed, this.debuggerResumed, this);
|
|
45
41
|
targetManager.observeModels(SDK.DebuggerModel.DebuggerModel, this);
|
|
46
42
|
this.ignoreListManager.addEventListener(
|
|
47
43
|
Workspace.IgnoreListManager.Events.IGNORED_SCRIPT_RANGES_UPDATED, event => this.updateLocations(event.data));
|
|
@@ -221,24 +217,6 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
221
217
|
return await locationPromise;
|
|
222
218
|
}
|
|
223
219
|
|
|
224
|
-
async createCallFrameLiveLocation(
|
|
225
|
-
location: SDK.DebuggerModel.Location, updateDelegate: (arg0: LiveLocation) => Promise<void>,
|
|
226
|
-
locationPool: LiveLocationPool): Promise<Location|null> {
|
|
227
|
-
const script = location.script();
|
|
228
|
-
if (!script) {
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
const debuggerModel = location.debuggerModel;
|
|
232
|
-
const liveLocationPromise = this.createLiveLocation(location, updateDelegate, locationPool);
|
|
233
|
-
this.recordLiveLocationChange(liveLocationPromise);
|
|
234
|
-
const liveLocation = await liveLocationPromise;
|
|
235
|
-
if (!liveLocation) {
|
|
236
|
-
return null;
|
|
237
|
-
}
|
|
238
|
-
this.registerCallFrameLiveLocation(debuggerModel, liveLocation);
|
|
239
|
-
return liveLocation;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
220
|
async rawLocationToUILocation(rawLocation: SDK.DebuggerModel.Location):
|
|
243
221
|
Promise<Workspace.UISourceCode.UILocation|null> {
|
|
244
222
|
const uiLocation = await this.pluginManager.rawLocationToUILocation(rawLocation);
|
|
@@ -409,21 +387,6 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
409
387
|
return scripts.every(script => script.isJavaScript());
|
|
410
388
|
}
|
|
411
389
|
|
|
412
|
-
private globalObjectCleared(event: Common.EventTarget.EventTargetEvent<SDK.DebuggerModel.DebuggerModel>): void {
|
|
413
|
-
this.reset(event.data);
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
private reset(debuggerModel: SDK.DebuggerModel.DebuggerModel): void {
|
|
417
|
-
const modelData = this.#debuggerModelToData.get(debuggerModel);
|
|
418
|
-
if (!modelData) {
|
|
419
|
-
return;
|
|
420
|
-
}
|
|
421
|
-
for (const location of modelData.callFrameLocations.values()) {
|
|
422
|
-
this.removeLiveLocation(location);
|
|
423
|
-
}
|
|
424
|
-
modelData.callFrameLocations.clear();
|
|
425
|
-
}
|
|
426
|
-
|
|
427
390
|
resetForTest(target: SDK.Target.Target): void {
|
|
428
391
|
const debuggerModel = (target.model(SDK.DebuggerModel.DebuggerModel) as SDK.DebuggerModel.DebuggerModel);
|
|
429
392
|
const modelData = this.#debuggerModelToData.get(debuggerModel);
|
|
@@ -432,14 +395,6 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
432
395
|
}
|
|
433
396
|
}
|
|
434
397
|
|
|
435
|
-
private registerCallFrameLiveLocation(debuggerModel: SDK.DebuggerModel.DebuggerModel, location: Location): void {
|
|
436
|
-
const modelData = this.#debuggerModelToData.get(debuggerModel);
|
|
437
|
-
if (modelData) {
|
|
438
|
-
const locations = modelData.callFrameLocations;
|
|
439
|
-
locations.add(location);
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
|
|
443
398
|
removeLiveLocation(location: Location): void {
|
|
444
399
|
const modelData = this.#debuggerModelToData.get(location.rawLocation.debuggerModel);
|
|
445
400
|
if (modelData) {
|
|
@@ -447,10 +402,6 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
447
402
|
}
|
|
448
403
|
}
|
|
449
404
|
|
|
450
|
-
private debuggerResumed(event: Common.EventTarget.EventTargetEvent<SDK.DebuggerModel.DebuggerModel>): void {
|
|
451
|
-
this.reset(event.data);
|
|
452
|
-
}
|
|
453
|
-
|
|
454
405
|
private async shouldPause(
|
|
455
406
|
debuggerPausedDetails: SDK.DebuggerModel.DebuggerPausedDetails,
|
|
456
407
|
autoSteppingContext: SDK.DebuggerModel.Location|null): Promise<boolean> {
|
|
@@ -509,7 +460,6 @@ export class DebuggerWorkspaceBinding implements SDK.TargetManager.SDKModelObser
|
|
|
509
460
|
class ModelData {
|
|
510
461
|
readonly #debuggerModel: SDK.DebuggerModel.DebuggerModel;
|
|
511
462
|
readonly #debuggerWorkspaceBinding: DebuggerWorkspaceBinding;
|
|
512
|
-
callFrameLocations: Set<Location>;
|
|
513
463
|
#defaultMapping: DefaultScriptMapping;
|
|
514
464
|
readonly #resourceMapping: ResourceMapping;
|
|
515
465
|
#resourceScriptMapping: ResourceScriptMapping;
|
|
@@ -520,8 +470,6 @@ class ModelData {
|
|
|
520
470
|
this.#debuggerModel = debuggerModel;
|
|
521
471
|
this.#debuggerWorkspaceBinding = debuggerWorkspaceBinding;
|
|
522
472
|
|
|
523
|
-
this.callFrameLocations = new Set();
|
|
524
|
-
|
|
525
473
|
const {workspace} = debuggerWorkspaceBinding.resourceMapping;
|
|
526
474
|
this.#defaultMapping = new DefaultScriptMapping(debuggerModel, workspace, debuggerWorkspaceBinding);
|
|
527
475
|
this.#resourceMapping = debuggerWorkspaceBinding.resourceMapping;
|
|
@@ -75,15 +75,9 @@ export class DebuggableFrameFlavor {
|
|
|
75
75
|
|
|
76
76
|
readonly frame: DebuggableFrame;
|
|
77
77
|
|
|
78
|
-
// TODO(crbug.com/465879478): Remove once this is no longer part of SDK.CallFrame.
|
|
79
|
-
// We need to stash this separately because DebuggerModel sets this on CallFrame after the
|
|
80
|
-
// fact so we can't just check it in the `equals` below.
|
|
81
|
-
readonly #missingDebugInfo: SDK.DebuggerModel.MissingDebugInfo|null;
|
|
82
|
-
|
|
83
78
|
/** Use the static {@link for}. Only public to satisfy the `setFlavor` Ctor type */
|
|
84
79
|
constructor(frame: DebuggableFrame) {
|
|
85
80
|
this.frame = frame;
|
|
86
|
-
this.#missingDebugInfo = frame.sdkFrame.missingDebugInfoDetails;
|
|
87
81
|
}
|
|
88
82
|
|
|
89
83
|
get sdkFrame(): SDK.DebuggerModel.CallFrame {
|
|
@@ -94,11 +88,11 @@ export class DebuggableFrameFlavor {
|
|
|
94
88
|
static for(frame: DebuggableFrame): DebuggableFrameFlavor {
|
|
95
89
|
function equals(a: DebuggableFrame, b: DebuggableFrame): boolean {
|
|
96
90
|
return a.url === b.url && a.uiSourceCode === b.uiSourceCode && a.name === b.name && a.line === b.line &&
|
|
97
|
-
a.column === b.column && a.sdkFrame === b.sdkFrame
|
|
91
|
+
a.column === b.column && a.sdkFrame === b.sdkFrame &&
|
|
92
|
+
JSON.stringify(a.missingDebugInfo) === JSON.stringify(b.missingDebugInfo);
|
|
98
93
|
}
|
|
99
94
|
|
|
100
|
-
if (!DebuggableFrameFlavor.#last || !equals(DebuggableFrameFlavor.#last.frame, frame)
|
|
101
|
-
DebuggableFrameFlavor.#last.#missingDebugInfo !== frame.sdkFrame.missingDebugInfoDetails) {
|
|
95
|
+
if (!DebuggableFrameFlavor.#last || !equals(DebuggableFrameFlavor.#last.frame, frame)) {
|
|
102
96
|
DebuggableFrameFlavor.#last = new DebuggableFrameFlavor(frame);
|
|
103
97
|
}
|
|
104
98
|
return DebuggableFrameFlavor.#last;
|
|
@@ -268,7 +268,7 @@ export class WorkspaceImpl extends Common.ObjectWrapper.ObjectWrapper<EventTypes
|
|
|
268
268
|
return [...this.#projects.values()];
|
|
269
269
|
}
|
|
270
270
|
|
|
271
|
-
projectsForType(type:
|
|
271
|
+
projectsForType(type: projectTypes): Project[] {
|
|
272
272
|
function filterByType(project: Project): boolean {
|
|
273
273
|
return project.type() === type;
|
|
274
274
|
}
|
|
@@ -452,11 +452,9 @@ export class AXBreadcrumb {
|
|
|
452
452
|
|
|
453
453
|
this.#element = document.createElement('div');
|
|
454
454
|
this.#element.classList.add('ax-breadcrumb');
|
|
455
|
-
this.#element.setAttribute(
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter'
|
|
459
|
-
})}`);
|
|
455
|
+
this.#element.setAttribute(
|
|
456
|
+
'jslog',
|
|
457
|
+
`${VisualLogging.treeItem().track({click: true, keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter'})}`);
|
|
460
458
|
elementsToAXBreadcrumb.set(this.#element, this);
|
|
461
459
|
|
|
462
460
|
this.#nodeElement = document.createElement('div');
|
|
@@ -98,7 +98,7 @@ const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
98
98
|
render(html`
|
|
99
99
|
<div class="animation-group-preview-ui">
|
|
100
100
|
<button
|
|
101
|
-
jslog=${VisualLogging.item(`animations.buffer-preview${input.isScrollDrivenAnimationGroup ? '-sda' : ''}`).track({click: true
|
|
101
|
+
jslog=${VisualLogging.item(`animations.buffer-preview${input.isScrollDrivenAnimationGroup ? '-sda' : ''}`).track({click: true})}
|
|
102
102
|
class=${classes}
|
|
103
103
|
role="option"
|
|
104
104
|
aria-label=${input.label}
|
|
@@ -180,7 +180,6 @@ export class ServiceWorkerUpdateCycleView {
|
|
|
180
180
|
const tr = this.tableElement.createChild('tr', 'service-worker-update-timeline');
|
|
181
181
|
tr.setAttribute('jslog', `${VisualLogging.treeItem('update-timeline').track({
|
|
182
182
|
click: true,
|
|
183
|
-
resize: true,
|
|
184
183
|
keydown: 'ArrowLeft|ArrowRight|ArrowUp|ArrowDown|Enter|Space',
|
|
185
184
|
})}`);
|
|
186
185
|
this.rows.push(tr);
|
|
@@ -353,7 +353,7 @@ function renderFramesPerReason(frames: string[]|undefined): LitTemplate {
|
|
|
353
353
|
}
|
|
354
354
|
const rows = [html`<div>${i18nString(UIStrings.framesPerIssue, {n: frames.length})}</div>`];
|
|
355
355
|
rows.push(...frames.map(url => html`<div class="text-ellipsis" title=${url}
|
|
356
|
-
jslog=${VisualLogging.treeItem()
|
|
356
|
+
jslog=${VisualLogging.treeItem()}>${url}</div>`));
|
|
357
357
|
return html`
|
|
358
358
|
<div class="details-list"
|
|
359
359
|
jslog=${VisualLogging.tree('frames-per-issue')}>
|
|
@@ -361,9 +361,7 @@ function renderFramesPerReason(frames: string[]|undefined): LitTemplate {
|
|
|
361
361
|
rows,
|
|
362
362
|
title: i18nString(UIStrings.framesPerIssue, {n: frames.length}),
|
|
363
363
|
} as ExpandableList.ExpandableList.ExpandableListData}
|
|
364
|
-
jslog=${VisualLogging.treeItem()
|
|
365
|
-
resize: true
|
|
366
|
-
})}></devtools-expandable-list>
|
|
364
|
+
jslog=${VisualLogging.treeItem()}></devtools-expandable-list>
|
|
367
365
|
</div>
|
|
368
366
|
`;
|
|
369
367
|
}
|
|
@@ -144,7 +144,7 @@ const DEFAULT_VIEW: View = (input: ViewInput, _output: ViewOutput, target: HTMLE
|
|
|
144
144
|
// clang-format off
|
|
145
145
|
return html`
|
|
146
146
|
<span class=${spanClasses}
|
|
147
|
-
jslog=${VisualLogging.item('matched-address-item').track({hover: true
|
|
147
|
+
jslog=${VisualLogging.item('matched-address-item').track({hover: true})}
|
|
148
148
|
@mouseenter=${() => input.onHighlightMatchesInAddress(startIndex)}
|
|
149
149
|
@mouseleave=${input.onClearHighlightedMatches}>
|
|
150
150
|
${templateLines}
|
|
@@ -238,7 +238,6 @@ export class XHRBreakpointsSidebarPane extends UI.Widget.VBox implements UI.Cont
|
|
|
238
238
|
listItemElement.setAttribute('jslog', `${VisualLogging.item().track({
|
|
239
239
|
click: true,
|
|
240
240
|
dblclick: true,
|
|
241
|
-
resize: true,
|
|
242
241
|
keydown: 'ArrowUp|ArrowDown|PageUp|PageDown|Enter|Space',
|
|
243
242
|
})}`);
|
|
244
243
|
return listItemElement;
|
|
@@ -77,6 +77,8 @@ export const DEFAULT_VIEW: View = (input, _output, target): void => {
|
|
|
77
77
|
<div class="title">Gemini 3 Flash in DevTools</div>
|
|
78
78
|
<div class="close-button">
|
|
79
79
|
<devtools-button
|
|
80
|
+
aria-hidden="true"
|
|
81
|
+
tabindex="-1"
|
|
80
82
|
.iconName=${'cross'}
|
|
81
83
|
.variant=${Buttons.Button.Variant.ICON}
|
|
82
84
|
.size=${Buttons.Button.Size.REGULAR}
|
|
@@ -1457,7 +1457,6 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
|
|
|
1457
1457
|
this.elementInternal.className = 'console-message-wrapper';
|
|
1458
1458
|
this.elementInternal.setAttribute('jslog', `${VisualLogging.item('console-message').track({
|
|
1459
1459
|
click: true,
|
|
1460
|
-
resize: true,
|
|
1461
1460
|
keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space|Home|End',
|
|
1462
1461
|
})}`);
|
|
1463
1462
|
this.elementInternal.removeChildren();
|
|
@@ -680,7 +680,6 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
|
|
|
680
680
|
this.listItemElement.setAttribute(
|
|
681
681
|
'jslog', `${VisualLogging.treeItem().parent('elementsTreeOutline').track({
|
|
682
682
|
keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Backspace|Delete|Enter|Space|Home|End',
|
|
683
|
-
resize: true,
|
|
684
683
|
drag: true,
|
|
685
684
|
click: true,
|
|
686
685
|
})}`);
|
|
@@ -228,27 +228,26 @@ const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
228
228
|
event.preventDefault();
|
|
229
229
|
}
|
|
230
230
|
};
|
|
231
|
-
// clang-format off
|
|
232
231
|
const renderElement = (element: LayoutElement): Lit.LitTemplate => html`<div
|
|
233
232
|
class="element"
|
|
234
|
-
jslog=${VisualLogging.item()
|
|
233
|
+
jslog=${VisualLogging.item()}>
|
|
235
234
|
<devtools-checkbox
|
|
236
235
|
data-element="true"
|
|
237
236
|
class="checkbox-label"
|
|
238
237
|
.checked=${element.enabled}
|
|
239
238
|
@change=${(e: Event) => input.onElementToggle(element, e)}
|
|
240
|
-
jslog=${VisualLogging.toggle().track({
|
|
239
|
+
jslog=${VisualLogging.toggle().track({
|
|
240
|
+
click: true
|
|
241
|
+
})}>
|
|
241
242
|
<span
|
|
242
243
|
class="node-text-container"
|
|
243
244
|
data-label="true"
|
|
244
245
|
@mouseenter=${(e: MouseEvent) => input.onMouseEnter(element, e)}
|
|
245
246
|
@mouseleave=${(e: MouseEvent) => input.onMouseLeave(element, e)}>
|
|
246
247
|
<devtools-node-text .data=${{
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
}}>
|
|
251
|
-
</devtools-node-text>
|
|
248
|
+
nodeId: element.domId, nodeTitle: element.name, nodeClasses: element.domClasses,
|
|
249
|
+
}
|
|
250
|
+
}></devtools-node-text>
|
|
252
251
|
</span>
|
|
253
252
|
</devtools-checkbox>
|
|
254
253
|
<label
|
|
@@ -303,7 +303,7 @@ export class ElementsBreadcrumbs extends HTMLElement {
|
|
|
303
303
|
data-crumb="true"
|
|
304
304
|
>
|
|
305
305
|
<a href="#" draggable=false class="crumb-link"
|
|
306
|
-
jslog=${VisualLogging.item().track({click:true
|
|
306
|
+
jslog=${VisualLogging.item().track({click:true})}
|
|
307
307
|
@click=${this.#onCrumbClick(crumb.node)}
|
|
308
308
|
@mousemove=${this.#onCrumbMouseMove(crumb.node)}
|
|
309
309
|
@mouseleave=${this.#onCrumbMouseLeave(crumb.node)}
|
|
@@ -194,8 +194,7 @@ export class StylePropertyEditor extends HTMLElement {
|
|
|
194
194
|
return html`
|
|
195
195
|
<button title=${title}
|
|
196
196
|
class=${classes}
|
|
197
|
-
jslog=${
|
|
198
|
-
VisualLogging.item().track({click: true, resize: true}).context(`${propertyName}-${propertyValue}`)}
|
|
197
|
+
jslog=${VisualLogging.item().track({click: true}).context(`${propertyName}-${propertyValue}`)}
|
|
199
198
|
@click=${() => this.#onButtonClick(propertyName, propertyValue, selected)}>
|
|
200
199
|
<devtools-icon style=${transform} name=${iconInfo.iconName}>
|
|
201
200
|
</devtools-icon>
|