chrome-devtools-frontend 1.0.1576915 → 1.0.1578486
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/front_end/core/sdk/DebuggerModel.ts +0 -34
- package/front_end/core/sdk/HeapProfilerModel.ts +7 -1
- package/front_end/generated/InspectorBackendCommands.ts +5 -4
- 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 +18 -2
- 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/ai_assistance/components/ChatMessage.ts +4 -7
- package/front_end/panels/ai_assistance/components/ChatView.ts +1 -1
- package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
- package/front_end/panels/application/DeviceBoundSessionsView.ts +76 -51
- 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/settings/keybindsSettingsTab.css +57 -0
- 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
|
@@ -582,25 +582,27 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTML
|
|
|
582
582
|
<devtools-report>
|
|
583
583
|
<devtools-report-section-header role="heading" aria-level="2">${
|
|
584
584
|
i18nString(UIStrings.sessionConfig)}</devtools-report-section-header>
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
585
|
+
${renderKeyValue(i18nString(UIStrings.keySite), key.site, 'dbsc-site')}
|
|
586
|
+
${renderKeyValue(i18nString(UIStrings.keyId), key.id, 'dbsc-id')}
|
|
587
|
+
${renderKeyValue(i18nString(UIStrings.refreshUrl), sessionAndEvents.session.refreshUrl, 'dbsc-refresh-url')}
|
|
588
|
+
${
|
|
589
|
+
renderKeyValue(
|
|
590
|
+
i18nString(UIStrings.expiryDate), new Date(sessionAndEvents.session.expiryDate * 1000).toLocaleString(),
|
|
591
|
+
'dbsc-expiry-date')}
|
|
592
|
+
${
|
|
593
|
+
renderKeyValue(
|
|
594
|
+
i18nString(UIStrings.cachedChallenge), sessionAndEvents.session.cachedChallenge || '',
|
|
595
|
+
'dbsc-cached-challenge')}
|
|
596
|
+
${
|
|
597
|
+
renderKeyValue(
|
|
598
|
+
i18nString(UIStrings.allowedRefreshInitiators),
|
|
599
|
+
sessionAndEvents.session.allowedRefreshInitiators.join(', '), 'dbsc-allowed-refresh-initiators')}
|
|
598
600
|
<devtools-report-section-header role="heading" aria-level="2">${
|
|
599
601
|
i18nString(UIStrings.scope)}</devtools-report-section-header>
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
602
|
+
${renderKeyValue(i18nString(UIStrings.origin), inclusionRules.origin, 'dbsc-origin')}
|
|
603
|
+
${
|
|
604
|
+
renderKeyValue(
|
|
605
|
+
i18nString(UIStrings.includeSite), boolToString(inclusionRules.includeSite), 'dbsc-include-site')}
|
|
604
606
|
</devtools-report>
|
|
605
607
|
${
|
|
606
608
|
inclusionRules.urlRules.length > 0 ? html`
|
|
@@ -708,62 +710,78 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTML
|
|
|
708
710
|
const creationEventDetails =
|
|
709
711
|
selectedEvent?.creationEventDetails &&
|
|
710
712
|
html`
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
713
|
+
${
|
|
714
|
+
renderKeyValue(
|
|
715
|
+
i18nString(UIStrings.fetchResult), fetchResultToString(selectedEvent.creationEventDetails.fetchResult),
|
|
716
|
+
'dbsc-creation-fetch-result')}
|
|
717
|
+
${
|
|
718
|
+
selectedEvent.creationEventDetails.newSession &&
|
|
719
|
+
html`
|
|
720
|
+
${
|
|
721
|
+
renderKeyValue(
|
|
722
|
+
i18nString(UIStrings.updatedSessionConfig), i18nString(UIStrings.yes),
|
|
723
|
+
'dbsc-creation-updated-session-config')}
|
|
717
724
|
`}
|
|
718
725
|
`;
|
|
719
726
|
const refreshEventDetails =
|
|
720
727
|
selectedEvent?.refreshEventDetails &&
|
|
721
728
|
html`
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
729
|
+
${
|
|
730
|
+
renderKeyValue(
|
|
731
|
+
i18nString(UIStrings.refreshResult),
|
|
732
|
+
refreshResultToString(selectedEvent.refreshEventDetails.refreshResult), 'dbsc-refresh-result')}
|
|
733
|
+
${
|
|
734
|
+
renderKeyValue(
|
|
735
|
+
i18nString(UIStrings.causedAnyRequestDeferrals),
|
|
736
|
+
boolToString(!selectedEvent.refreshEventDetails.wasFullyProactiveRefresh),
|
|
737
|
+
'dbsc-refresh-was-fully-proactive-refresh')}
|
|
728
738
|
${
|
|
729
739
|
selectedEvent.refreshEventDetails.fetchResult &&
|
|
730
740
|
html`
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
741
|
+
${
|
|
742
|
+
renderKeyValue(
|
|
743
|
+
i18nString(UIStrings.fetchResult), fetchResultToString(selectedEvent.refreshEventDetails.fetchResult),
|
|
744
|
+
'dbsc-refresh-fetch-result')}
|
|
734
745
|
`}
|
|
735
|
-
${
|
|
736
|
-
|
|
737
|
-
|
|
746
|
+
${
|
|
747
|
+
selectedEvent.refreshEventDetails.newSession &&
|
|
748
|
+
html`
|
|
749
|
+
${
|
|
750
|
+
renderKeyValue(
|
|
751
|
+
i18nString(UIStrings.updatedSessionConfig), i18nString(UIStrings.yes),
|
|
752
|
+
'dbsc-refresh-updated-session-config')}
|
|
738
753
|
`}
|
|
739
754
|
`;
|
|
740
755
|
const challengeEventDetails =
|
|
741
756
|
selectedEvent?.challengeEventDetails &&
|
|
742
757
|
html`
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
758
|
+
${
|
|
759
|
+
renderKeyValue(
|
|
760
|
+
i18nString(UIStrings.challengeResult),
|
|
761
|
+
challengeResultToString(selectedEvent.challengeEventDetails.challengeResult), 'dbsc-challenge-result')}
|
|
762
|
+
${
|
|
763
|
+
renderKeyValue(
|
|
764
|
+
i18nString(UIStrings.challenge), selectedEvent.challengeEventDetails.challenge, 'dbsc-challenge')}
|
|
748
765
|
`;
|
|
749
766
|
const terminationEventDetails =
|
|
750
767
|
selectedEvent?.terminationEventDetails &&
|
|
751
768
|
html`
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
769
|
+
${
|
|
770
|
+
renderKeyValue(
|
|
771
|
+
i18nString(UIStrings.deletionReason),
|
|
772
|
+
deletionReasonToString(selectedEvent.terminationEventDetails.deletionReason), 'dbsc-termination-reason')}
|
|
755
773
|
`;
|
|
756
774
|
const eventDetailsContentHtml = selectedEvent ?
|
|
757
775
|
html`
|
|
758
776
|
<devtools-report>
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
777
|
+
${renderKeyValue(i18nString(UIStrings.keySite), selectedEvent.site, 'dbsc-event-site')}
|
|
778
|
+
${
|
|
779
|
+
selectedEvent.sessionId &&
|
|
780
|
+
renderKeyValue(i18nString(UIStrings.sessionId), selectedEvent.sessionId, 'dbsc-event-session-id')}
|
|
781
|
+
${renderKeyValue(i18nString(UIStrings.type), getEventTypeString(selectedEvent), 'dbsc-event-type')}
|
|
782
|
+
${
|
|
783
|
+
renderKeyValue(
|
|
784
|
+
i18nString(UIStrings.eventResult), succeededToString(selectedEvent.succeeded), 'dbsc-event-result')}
|
|
767
785
|
${creationEventDetails}
|
|
768
786
|
${refreshEventDetails}
|
|
769
787
|
${challengeEventDetails}
|
|
@@ -870,6 +888,13 @@ export class DeviceBoundSessionsView extends UI.Widget.VBox {
|
|
|
870
888
|
}
|
|
871
889
|
}
|
|
872
890
|
|
|
891
|
+
function renderKeyValue(key: string, value: string, id: string): TemplateResult {
|
|
892
|
+
return html`
|
|
893
|
+
<devtools-report-key id=${id}>${key}</devtools-report-key>
|
|
894
|
+
<devtools-report-value role="text" aria-describedby=${id}>${value}</devtools-report-value>
|
|
895
|
+
`;
|
|
896
|
+
}
|
|
897
|
+
|
|
873
898
|
function ruleTypeToString(ruleType: Protocol.Network.DeviceBoundSessionUrlRuleRuleType): string {
|
|
874
899
|
switch (ruleType) {
|
|
875
900
|
case Protocol.Network.DeviceBoundSessionUrlRuleRuleType.Exclude:
|
|
@@ -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>
|
|
@@ -197,7 +197,7 @@ export class LighthouseReportRenderer {
|
|
|
197
197
|
continue;
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
auditEl.setAttribute('jslog', `${VisualLogging.item(`lighthouse.audit.${id}`)
|
|
200
|
+
auditEl.setAttribute('jslog', `${VisualLogging.item(`lighthouse.audit.${id}`)}`);
|
|
201
201
|
|
|
202
202
|
let state: string|undefined;
|
|
203
203
|
for (const className of auditEl.classList) {
|
|
@@ -60,7 +60,7 @@ function renderEndiannessSetting(
|
|
|
60
60
|
data-endianness="true" @change=${(e: Event) => onEndiannessChanged((e.target as HTMLSelectElement).value as Endianness)}>
|
|
61
61
|
${[Endianness.LITTLE, Endianness.BIG].map(endianness => {
|
|
62
62
|
return html`<option value=${endianness} .selected=${currentEndiannes === endianness}
|
|
63
|
-
jslog=${VisualLogging.item(Platform.StringUtilities.toKebabCase(endianness)).track({click: true
|
|
63
|
+
jslog=${VisualLogging.item(Platform.StringUtilities.toKebabCase(endianness)).track({click: true})}>${
|
|
64
64
|
i18n.i18n.lockedString(endianness)}</option>`;
|
|
65
65
|
})}
|
|
66
66
|
</select>
|
|
@@ -104,7 +104,7 @@ export const DEFAULT_VIEW: View = (input: ViewInput, _output: undefined, target:
|
|
|
104
104
|
${VALUE_TYPE_MODE_LIST.filter(x => isValidMode(type, x)).map(mode => {
|
|
105
105
|
return html`
|
|
106
106
|
<option value=${mode} .selected=${input.valueTypeModes.get(type) === mode}
|
|
107
|
-
jslog=${VisualLogging.item(mode).track({click: true
|
|
107
|
+
jslog=${VisualLogging.item(mode).track({click: true})}>${
|
|
108
108
|
i18n.i18n.lockedString(mode)}
|
|
109
109
|
</option>`;
|
|
110
110
|
})}
|
|
@@ -73,7 +73,7 @@ const DEFAULT_VIEW: View = (input, _output, target) => {
|
|
|
73
73
|
})}
|
|
74
74
|
@click=${() => input.onPlayerClick(player.playerID)}
|
|
75
75
|
@contextmenu=${(e: Event) => input.onPlayerContextMenu(player.playerID, e)}
|
|
76
|
-
jslog=${VisualLogging.item('player').track({click: true
|
|
76
|
+
jslog=${VisualLogging.item('player').track({click: true})}>
|
|
77
77
|
<div class="player-entry-status-icon vbox">
|
|
78
78
|
<div class="player-entry-status-icon-centering">
|
|
79
79
|
<devtools-icon name=${player.iconName}></devtools-icon>
|
|
@@ -409,8 +409,7 @@ export class NetworkLogViewColumns {
|
|
|
409
409
|
|
|
410
410
|
private createWaterfallHeader(): void {
|
|
411
411
|
this.waterfallHeaderElement = this.waterfallColumn.contentElement.createChild('div', 'network-waterfall-header');
|
|
412
|
-
this.waterfallHeaderElement.setAttribute(
|
|
413
|
-
'jslog', `${VisualLogging.tableHeader('waterfall').track({click: true, resize: true})}`);
|
|
412
|
+
this.waterfallHeaderElement.setAttribute('jslog', `${VisualLogging.tableHeader('waterfall').track({click: true})}`);
|
|
414
413
|
this.waterfallHeaderElement.addEventListener('click', waterfallHeaderClicked.bind(this));
|
|
415
414
|
this.waterfallHeaderElement.addEventListener('contextmenu', event => {
|
|
416
415
|
const contextMenu = new UI.ContextMenu.ContextMenu(event);
|
|
@@ -59,7 +59,7 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
|
|
|
59
59
|
${headers.map(header => html`
|
|
60
60
|
<devtools-header-section-row
|
|
61
61
|
.data=${{ header }}
|
|
62
|
-
jslog=${VisualLogging.item('request-header')
|
|
62
|
+
jslog=${VisualLogging.item('request-header')}
|
|
63
63
|
></devtools-header-section-row>
|
|
64
64
|
`)}
|
|
65
65
|
`, target);
|
|
@@ -990,7 +990,7 @@ function renderTargetSelectorRow(input: ViewInput): Lit.TemplateResult|undefined
|
|
|
990
990
|
jslog=${VisualLogging.dropDown('target-selector').track({change: true})}
|
|
991
991
|
@change=${input.onTargetSelected}>
|
|
992
992
|
${input.targets.map(target => html`
|
|
993
|
-
<option jslog=${VisualLogging.item('target').track({click: true
|
|
993
|
+
<option jslog=${VisualLogging.item('target').track({click: true})}
|
|
994
994
|
value=${target.id()} ?selected=${target.id() === input.targetId}>
|
|
995
995
|
${target.name()} (${target.inspectedURL()})
|
|
996
996
|
</option>`)}
|
|
@@ -140,7 +140,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTML
|
|
|
140
140
|
@keydown=${(event: Event) => onKeyDown(recording.storageName, event)}
|
|
141
141
|
@click=${(event: Event) => onOpenClick(recording.storageName, event)}
|
|
142
142
|
jslog=${VisualLogging.item()
|
|
143
|
-
.track({ click: true
|
|
143
|
+
.track({ click: true })
|
|
144
144
|
.context('recording')}>
|
|
145
145
|
<div class="icon">
|
|
146
146
|
<devtools-icon name="flow">
|
|
@@ -140,6 +140,14 @@ const UIStrings = {
|
|
|
140
140
|
* @description The title of the button that open current recording in Performance panel.
|
|
141
141
|
*/
|
|
142
142
|
performancePanel: 'Performance panel',
|
|
143
|
+
/**
|
|
144
|
+
* @description The announcement when the code sidebar is opened.
|
|
145
|
+
*/
|
|
146
|
+
codeSidebarOpened: 'Code sidebar opened',
|
|
147
|
+
/**
|
|
148
|
+
* @description The announcement when the code sidebar is closed.
|
|
149
|
+
*/
|
|
150
|
+
codeSidebarClosed: 'Code sidebar closed'
|
|
143
151
|
} as const;
|
|
144
152
|
const str_ = i18n.i18n.registerUIStrings(
|
|
145
153
|
'panels/recorder/components/RecordingView.ts',
|
|
@@ -1189,6 +1197,13 @@ export class RecordingView extends UI.Widget.Widget {
|
|
|
1189
1197
|
|
|
1190
1198
|
showCodeToggle = (): void => {
|
|
1191
1199
|
this.#showCodeView = !this.#showCodeView;
|
|
1200
|
+
|
|
1201
|
+
if (this.#showCodeView) {
|
|
1202
|
+
UI.ARIAUtils.LiveAnnouncer.alert(i18nString(UIStrings.codeSidebarOpened));
|
|
1203
|
+
} else {
|
|
1204
|
+
UI.ARIAUtils.LiveAnnouncer.alert(i18nString(UIStrings.codeSidebarClosed));
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1192
1207
|
void this.#convertToCode();
|
|
1193
1208
|
};
|
|
1194
1209
|
|
|
@@ -646,7 +646,7 @@ export class StepEditor extends LitElement {
|
|
|
646
646
|
#renderTypeRow(editable: boolean): Lit.TemplateResult {
|
|
647
647
|
this.#renderedAttributes.add('type');
|
|
648
648
|
// clang-format off
|
|
649
|
-
return html`<div class="row attribute" data-attribute="type" jslog=${VisualLogging.treeItem('type')
|
|
649
|
+
return html`<div class="row attribute" data-attribute="type" jslog=${VisualLogging.treeItem('type')}>
|
|
650
650
|
<div id="type">type<span class="separator">:</span></div>
|
|
651
651
|
<devtools-suggestion-input
|
|
652
652
|
aria-labelledby="type"
|
|
@@ -667,7 +667,7 @@ export class StepEditor extends LitElement {
|
|
|
667
667
|
return;
|
|
668
668
|
}
|
|
669
669
|
// clang-format off
|
|
670
|
-
return html`<div class="row attribute" data-attribute=${attribute} jslog=${VisualLogging.treeItem(Platform.StringUtilities.toKebabCase(attribute))
|
|
670
|
+
return html`<div class="row attribute" data-attribute=${attribute} jslog=${VisualLogging.treeItem(Platform.StringUtilities.toKebabCase(attribute))}>
|
|
671
671
|
<div id=${attribute}>${attribute}<span class="separator">:</span></div>
|
|
672
672
|
<devtools-suggestion-input
|
|
673
673
|
.disabled=${this.disabled}
|
|
@@ -706,7 +706,7 @@ export class StepEditor extends LitElement {
|
|
|
706
706
|
}
|
|
707
707
|
// clang-format off
|
|
708
708
|
return html`
|
|
709
|
-
<div class="attribute" data-attribute="frame" jslog=${VisualLogging.treeItem('frame')
|
|
709
|
+
<div class="attribute" data-attribute="frame" jslog=${VisualLogging.treeItem('frame')}>
|
|
710
710
|
<div class="row">
|
|
711
711
|
<div id="frame">frame<span class="separator">:</span></div>
|
|
712
712
|
${this.#renderDeleteButton('frame')}
|
|
@@ -344,8 +344,7 @@ export class ShortcutListItem {
|
|
|
344
344
|
this.settingsTab = settingsTab;
|
|
345
345
|
this.item = item;
|
|
346
346
|
this.element = document.createElement('div');
|
|
347
|
-
this.element.setAttribute(
|
|
348
|
-
'jslog', `${VisualLogging.item().context(item.id()).track({keydown: 'Escape', resize: true})}`);
|
|
347
|
+
this.element.setAttribute('jslog', `${VisualLogging.item().context(item.id()).track({keydown: 'Escape'})}`);
|
|
349
348
|
this.editedShortcuts = new Map();
|
|
350
349
|
this.shortcutInputs = new Map();
|
|
351
350
|
this.shortcuts = UI.ShortcutRegistry.ShortcutRegistry.instance().shortcutsForAction(item.id());
|
|
@@ -166,3 +166,60 @@ button.text-button {
|
|
|
166
166
|
min-height: fit-content;
|
|
167
167
|
margin-top: 10px;
|
|
168
168
|
}
|
|
169
|
+
|
|
170
|
+
@media (forced-colors: active) {
|
|
171
|
+
/* Keyboard focus on wrapper element (shortcut items) */
|
|
172
|
+
.keybinds-list-item-wrapper {
|
|
173
|
+
&:focus,
|
|
174
|
+
&:focus-visible {
|
|
175
|
+
background-color: Highlight !important; /* stylelint-disable-line declaration-no-important */
|
|
176
|
+
forced-color-adjust: none;
|
|
177
|
+
|
|
178
|
+
& .keybinds-list-text,
|
|
179
|
+
& .keybinds-action-name {
|
|
180
|
+
color: HighlightText !important; /* stylelint-disable-line declaration-no-important */
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
& .keybinds-key {
|
|
184
|
+
background: HighlightText;
|
|
185
|
+
color: Highlight;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/* Hover state (shortcut items) */
|
|
190
|
+
&:has(.keybinds-list-item:hover) {
|
|
191
|
+
background-color: Highlight !important; /* stylelint-disable-line declaration-no-important */
|
|
192
|
+
forced-color-adjust: none;
|
|
193
|
+
|
|
194
|
+
& .keybinds-list-text {
|
|
195
|
+
color: HighlightText !important; /* stylelint-disable-line declaration-no-important */
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
& .keybinds-key {
|
|
199
|
+
background: HighlightText;
|
|
200
|
+
color: Highlight;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/* Editing state */
|
|
206
|
+
.keybinds-list-item.keybinds-editing {
|
|
207
|
+
background-color: Highlight !important; /* stylelint-disable-line declaration-no-important */
|
|
208
|
+
forced-color-adjust: none;
|
|
209
|
+
|
|
210
|
+
& .keybinds-list-text {
|
|
211
|
+
color: HighlightText !important; /* stylelint-disable-line declaration-no-important */
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* Category headers (e.g., "Background Services", "Debugger") */
|
|
216
|
+
.keybinds-category-header {
|
|
217
|
+
&:hover,
|
|
218
|
+
&:focus,
|
|
219
|
+
&:focus-visible {
|
|
220
|
+
background-color: Highlight !important; /* stylelint-disable-line declaration-no-important */
|
|
221
|
+
color: HighlightText !important; /* stylelint-disable-line declaration-no-important */
|
|
222
|
+
forced-color-adjust: none;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|