chrome-devtools-frontend 1.0.1679704 → 1.0.1681091
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/AUTHORS +1 -0
- package/front_end/core/platform/TypescriptUtilities.ts +0 -9
- package/front_end/core/platform/platform.ts +1 -1
- package/front_end/core/sdk/ConsoleModel.ts +6 -3
- package/front_end/core/sdk/DOMModel.ts +102 -0
- package/front_end/core/sdk/EmulationModel.ts +4 -2
- package/front_end/core/sdk/NetworkManager.ts +7 -6
- package/front_end/core/sdk/PageResourceLoader.ts +4 -3
- package/front_end/core/sdk/RuntimeModel.ts +5 -3
- package/front_end/core/sdk/SDKSettings.ts +47 -0
- package/front_end/core/sdk/sdk-meta.ts +0 -138
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +4 -2
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +32 -0
- package/front_end/entrypoints/main/MainImpl.ts +1 -1
- package/front_end/generated/InspectorBackendCommands.ts +3 -1
- package/front_end/generated/SupportedCSSProperties.ts +20 -0
- package/front_end/generated/protocol-mapping.d.ts +7 -0
- package/front_end/generated/protocol-proxy-api.d.ts +5 -0
- package/front_end/generated/protocol.ts +15 -3
- package/front_end/panels/console/ConsoleView.ts +2 -1
- package/front_end/panels/console/console-meta.ts +10 -5
- package/front_end/panels/elements/DOMTreeContextMenu.ts +541 -0
- package/front_end/panels/elements/ElementsTreeElement.ts +27 -494
- package/front_end/panels/elements/ElementsTreeOutline.ts +173 -287
- package/front_end/panels/elements/StylesSidebarPane.ts +2 -1
- package/front_end/panels/elements/elements.ts +3 -0
- package/front_end/panels/issues/CorsIssueDetailsView.ts +13 -9
- package/front_end/panels/mobile_throttling/NetworkPanelIndicator.ts +3 -1
- package/front_end/panels/network/NetworkConfigView.ts +2 -1
- package/front_end/panels/network/NetworkPanel.ts +1 -1
- package/front_end/panels/network/network-meta.ts +60 -0
- package/front_end/panels/profiler/HeapDetachedElementsDataGrid.ts +2 -1
- package/front_end/panels/profiler/ProfileLauncherView.ts +19 -16
- package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +1 -1
- package/front_end/panels/security/security.ts +6 -0
- package/front_end/panels/sources/SourcesView.ts +8 -107
- package/front_end/panels/sources/TabbedEditorContainer.ts +110 -7
- package/front_end/panels/sources/sources-meta.ts +16 -0
- package/front_end/panels/timeline/TimelineLoader.ts +1 -1
- package/front_end/panels/timeline/TimelineUIUtils.ts +6 -0
- package/front_end/panels/timeline/components/LayoutShiftDetails.ts +4 -3
- package/front_end/panels/timeline/components/LiveMetricsView.ts +1 -1
- package/front_end/panels/timeline/components/MetricCard.ts +4 -3
- package/front_end/panels/timeline/components/NetworkRequestDetails.ts +5 -2
- package/front_end/panels/timeline/components/TimelineRangeSummaryView.ts +1 -1
- package/front_end/panels/timeline/components/TimelineSummary.ts +8 -5
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/legacy/TabbedPane.ts +34 -2
- package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +5 -5
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +7 -7
- package/front_end/ui/legacy/components/quick_open/QuickOpen.ts +1 -1
- package/front_end/ui/legacy/components/quick_open/quick_open-meta.ts +2 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +29 -0
- package/package.json +1 -1
|
@@ -18,6 +18,14 @@ import * as SettingsUI from '../../ui/settings/settings.js';
|
|
|
18
18
|
import type * as Sources from './sources.js';
|
|
19
19
|
|
|
20
20
|
const UIStrings = {
|
|
21
|
+
/**
|
|
22
|
+
* @description Label of a checkbox in the DevTools settings UI.
|
|
23
|
+
*/
|
|
24
|
+
enableRemoteFileLoading: 'Allow loading remote file path resources in DevTools',
|
|
25
|
+
/**
|
|
26
|
+
* @description Tooltip text for a setting that controls whether external resource can be loaded in DevTools.
|
|
27
|
+
*/
|
|
28
|
+
remoteFileLoadingInfo: 'Example resources are source maps. Disabled by default for security reasons.',
|
|
21
29
|
/**
|
|
22
30
|
* @description Title of a setting under the Debugger category in Settings.
|
|
23
31
|
*/
|
|
@@ -1611,6 +1619,14 @@ SettingsUI.SettingUIRegistration.register(SDK.SDKSettings.cssSourceMapsEnabledSe
|
|
|
1611
1619
|
],
|
|
1612
1620
|
});
|
|
1613
1621
|
|
|
1622
|
+
SettingsUI.SettingUIRegistration.register(SDK.SDKSettings.enableRemoteFileLoadingSettingDescriptor, {
|
|
1623
|
+
category: Common.Settings.SettingCategory.SOURCES,
|
|
1624
|
+
title: i18nLazyString(UIStrings.enableRemoteFileLoading),
|
|
1625
|
+
learnMore: {
|
|
1626
|
+
tooltip: i18nLazyString(UIStrings.remoteFileLoadingInfo),
|
|
1627
|
+
},
|
|
1628
|
+
});
|
|
1629
|
+
|
|
1614
1630
|
SettingsUI.SettingUIRegistration.register(SDK.SDKSettings.javaScriptDisabledSettingDescriptor, {
|
|
1615
1631
|
category: Common.Settings.SettingCategory.DEBUGGER,
|
|
1616
1632
|
title: i18nLazyString(UIStrings.disableJavascript),
|
|
@@ -119,7 +119,7 @@ export class TimelineLoader {
|
|
|
119
119
|
client.loadingStarted();
|
|
120
120
|
|
|
121
121
|
const allowRemoteFilePaths =
|
|
122
|
-
Common.Settings.Settings.instance().
|
|
122
|
+
Common.Settings.Settings.instance().resolve(SDK.SDKSettings.enableRemoteFileLoadingSettingDescriptor).get();
|
|
123
123
|
Host.ResourceLoader.loadAsStream(url, null, stream, finishedCallback, allowRemoteFilePaths);
|
|
124
124
|
|
|
125
125
|
async function finishedCallback(success: boolean, _headers: Record<string, string>,
|
|
@@ -62,6 +62,7 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
|
62
62
|
import * as ThemeSupport from '../../ui/legacy/theme_support/theme_support.js';
|
|
63
63
|
import {html, render} from '../../ui/lit/lit.js';
|
|
64
64
|
import * as SettingUIRegistration from '../../ui/settings/settings.js';
|
|
65
|
+
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
65
66
|
import * as PanelsCommon from '../common/common.js';
|
|
66
67
|
|
|
67
68
|
import {getDurationString} from './AppenderUtils.js';
|
|
@@ -2235,6 +2236,7 @@ export class TimelineDetailsContentHelper {
|
|
|
2235
2236
|
|
|
2236
2237
|
this.element = document.createElement('div');
|
|
2237
2238
|
this.element.classList.add('timeline-details-view-block');
|
|
2239
|
+
this.element.setAttribute('jslog', `${VisualLogging.section('timeline.event-details')}`);
|
|
2238
2240
|
this.tableElement = this.element.createChild('div', 'vbox timeline-details-chip-body');
|
|
2239
2241
|
this.fragment.appendChild(this.element);
|
|
2240
2242
|
}
|
|
@@ -2245,6 +2247,7 @@ export class TimelineDetailsContentHelper {
|
|
|
2245
2247
|
} else {
|
|
2246
2248
|
this.element = document.createElement('div');
|
|
2247
2249
|
this.element.classList.add('timeline-details-view-block');
|
|
2250
|
+
this.element.setAttribute('jslog', `${VisualLogging.section('timeline.event-details')}`);
|
|
2248
2251
|
this.fragment.appendChild(this.element);
|
|
2249
2252
|
}
|
|
2250
2253
|
|
|
@@ -2309,12 +2312,14 @@ export class TimelineDetailsContentHelper {
|
|
|
2309
2312
|
|
|
2310
2313
|
appendTextRow(title: string, value: string|number|boolean): void {
|
|
2311
2314
|
const rowElement = this.tableElement.createChild('div', 'timeline-details-view-row');
|
|
2315
|
+
rowElement.setAttribute('jslog', `${VisualLogging.item('detail-row')}`);
|
|
2312
2316
|
rowElement.createChild('div', 'timeline-details-view-row-title').textContent = title;
|
|
2313
2317
|
rowElement.createChild('div', 'timeline-details-view-row-value').textContent = value.toString();
|
|
2314
2318
|
}
|
|
2315
2319
|
|
|
2316
2320
|
appendElementRow(title: string, content: string|Node, isWarning?: boolean, isStacked?: boolean): void {
|
|
2317
2321
|
const rowElement = this.tableElement.createChild('div', 'timeline-details-view-row');
|
|
2322
|
+
rowElement.setAttribute('jslog', `${VisualLogging.item('detail-row')}`);
|
|
2318
2323
|
rowElement.setAttribute('data-row-title', title);
|
|
2319
2324
|
if (isWarning) {
|
|
2320
2325
|
rowElement.classList.add('timeline-details-warning');
|
|
@@ -2403,6 +2408,7 @@ export class TimelineDetailsContentHelper {
|
|
|
2403
2408
|
|
|
2404
2409
|
const stackTraceElement = document.createElement('div');
|
|
2405
2410
|
stackTraceElement.classList.add('timeline-details-view-row', 'timeline-details-stack-values');
|
|
2411
|
+
stackTraceElement.setAttribute('jslog', `${VisualLogging.item('detail-row')}`);
|
|
2406
2412
|
callFrameContents.markAsRoot();
|
|
2407
2413
|
callFrameContents.show(stackTraceElement);
|
|
2408
2414
|
return stackTraceElement;
|
|
@@ -12,6 +12,7 @@ import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
|
|
12
12
|
import * as LegacyComponents from '../../../ui/legacy/components/utils/utils.js';
|
|
13
13
|
import * as UI from '../../../ui/legacy/legacy.js';
|
|
14
14
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
15
|
+
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
15
16
|
|
|
16
17
|
import * as Insights from './insights/insights.js';
|
|
17
18
|
import {nodeLink} from './insights/NodeLink.js';
|
|
@@ -228,7 +229,7 @@ function renderLayoutShiftDetails(
|
|
|
228
229
|
|
|
229
230
|
// clang-format off
|
|
230
231
|
return html`
|
|
231
|
-
<table class="layout-shift-details-table">
|
|
232
|
+
<table class="layout-shift-details-table" jslog=${VisualLogging.section('layout-shift-details')}>
|
|
232
233
|
<thead class="table-title">
|
|
233
234
|
<tr>
|
|
234
235
|
<th>${i18nString(UIStrings.startTime)}</th>
|
|
@@ -271,7 +272,7 @@ function renderLayoutShiftClusterDetails(
|
|
|
271
272
|
|
|
272
273
|
// clang-format off
|
|
273
274
|
return html`
|
|
274
|
-
<table class="layout-shift-details-table">
|
|
275
|
+
<table class="layout-shift-details-table" jslog=${VisualLogging.section('layout-shift-details')}>
|
|
275
276
|
<thead class="table-title">
|
|
276
277
|
<tr>
|
|
277
278
|
<th>${i18nString(UIStrings.startTime)}</th>
|
|
@@ -314,7 +315,7 @@ function renderShiftRow(
|
|
|
314
315
|
|
|
315
316
|
// clang-format off
|
|
316
317
|
return html`
|
|
317
|
-
<tr class="shift-row" data-ts=${currentShift.ts}>
|
|
318
|
+
<tr class="shift-row" data-ts=${currentShift.ts} jslog=${VisualLogging.tableRow('shift-row')}>
|
|
318
319
|
<td>${renderStartTime(currentShift, userHasSingleShiftSelected, parsedTrace, onEventClick)}</td>
|
|
319
320
|
<td>${(score.toFixed(4))}</td>
|
|
320
321
|
${elementsShifted.length ? html`
|
|
@@ -662,7 +662,7 @@ function renderRecordingSettings(input: ViewInput): Lit.LitTemplate {
|
|
|
662
662
|
<setting-checkbox
|
|
663
663
|
class="network-cache-setting"
|
|
664
664
|
.data=${{
|
|
665
|
-
setting: Common.Settings.Settings.instance().
|
|
665
|
+
setting: Common.Settings.Settings.instance().resolve(SDK.SDKSettings.cacheDisabledSettingDescriptor),
|
|
666
666
|
textOverride: i18nString(UIStrings.disableNetworkCache),
|
|
667
667
|
} as Settings.SettingCheckbox.SettingCheckboxData}
|
|
668
668
|
></setting-checkbox>
|
|
@@ -11,6 +11,7 @@ import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
|
|
11
11
|
import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
|
|
12
12
|
import * as UIHelpers from '../../../ui/helpers/helpers.js';
|
|
13
13
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
14
|
+
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
14
15
|
|
|
15
16
|
import metricCardStyles from './metricCard.css.js';
|
|
16
17
|
import {type CompareRating, renderCompareText, renderDetailedCompareText} from './MetricCompareStrings.js';
|
|
@@ -551,7 +552,7 @@ export class MetricCard extends HTMLElement {
|
|
|
551
552
|
|
|
552
553
|
// clang-format off
|
|
553
554
|
return html`
|
|
554
|
-
<div class="bucket-summaries histogram">
|
|
555
|
+
<div class="bucket-summaries histogram" jslog=${VisualLogging.canvas('metric-histogram')}>
|
|
555
556
|
${goodLabel}
|
|
556
557
|
<div class="histogram-bar good-bg" style="width: ${this.#getBarWidthForRating('good')}"></div>
|
|
557
558
|
<div class="histogram-percent">${this.#getPercentLabelForRating('good')}</div>
|
|
@@ -585,7 +586,7 @@ export class MetricCard extends HTMLElement {
|
|
|
585
586
|
` : nothing}
|
|
586
587
|
</div>
|
|
587
588
|
${subparts.map(subpart => html`
|
|
588
|
-
<div class="subpart-table-row" role="row">
|
|
589
|
+
<div class="subpart-table-row" role="row" jslog=${VisualLogging.tableRow('metric-subpart')}>
|
|
589
590
|
<div role="cell">${subpart[0]}</div>
|
|
590
591
|
<div role="cell" class="subpart-table-value">${i18n.TimeUtilities.preciseMillisToString(subpart[1])}</div>
|
|
591
592
|
${subpart[2] !== undefined ? html`
|
|
@@ -614,7 +615,7 @@ export class MetricCard extends HTMLElement {
|
|
|
614
615
|
const output = html`
|
|
615
616
|
<style>${metricCardStyles}</style>
|
|
616
617
|
<style>${metricValueStyles}</style>
|
|
617
|
-
<div class="metric-card">
|
|
618
|
+
<div class="metric-card" jslog=${VisualLogging.section(Platform.StringUtilities.toKebabCase(this.#data.metric))}>
|
|
618
619
|
<h3 class="title">
|
|
619
620
|
${this.#getTitle()}
|
|
620
621
|
<devtools-button
|
|
@@ -13,6 +13,7 @@ import * as Trace from '../../../models/trace/trace.js';
|
|
|
13
13
|
import * as LegacyComponents from '../../../ui/legacy/components/utils/utils.js';
|
|
14
14
|
import * as UI from '../../../ui/legacy/legacy.js';
|
|
15
15
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
16
|
+
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
16
17
|
|
|
17
18
|
import networkRequestDetailsStyles from './networkRequestDetails.css.js';
|
|
18
19
|
import networkRequestTooltipStyles from './networkRequestTooltip.css.js';
|
|
@@ -210,7 +211,9 @@ export const DEFAULT_VIEW: (
|
|
|
210
211
|
<style>${networkRequestDetailsStyles}</style>
|
|
211
212
|
<style>${networkRequestTooltipStyles}</style>
|
|
212
213
|
|
|
213
|
-
<div class="network-request-details-content"
|
|
214
|
+
<div class="network-request-details-content"
|
|
215
|
+
data-network-request-id=${input.request.args.data.requestId}
|
|
216
|
+
jslog=${VisualLogging.section('timeline.network-request-details')}>
|
|
214
217
|
${renderTitle(input.request)}
|
|
215
218
|
${renderURL(input.request)}
|
|
216
219
|
<div class="network-request-details-cols">
|
|
@@ -337,7 +340,7 @@ function renderRow(title: string, value?: string|Node|Lit.TemplateResult): Lit.L
|
|
|
337
340
|
}
|
|
338
341
|
// clang-format off
|
|
339
342
|
return html`
|
|
340
|
-
<div class="network-request-details-row">
|
|
343
|
+
<div class="network-request-details-row" jslog=${VisualLogging.item('detail-row')}>
|
|
341
344
|
<div class="title">${title}</div>
|
|
342
345
|
<div class="value">${value}</div>
|
|
343
346
|
</div>`;
|
|
@@ -54,7 +54,7 @@ export const TIMELINE_RANGE_SUMMARY_VIEW_DEFAULT_VIEW: View = (input, _output, t
|
|
|
54
54
|
if (!value) {
|
|
55
55
|
continue;
|
|
56
56
|
}
|
|
57
|
-
categories.push({value, color: category.getCSSValue(), title: category.title});
|
|
57
|
+
categories.push({value, color: category.getCSSValue(), title: category.title, name: category.name});
|
|
58
58
|
}
|
|
59
59
|
categories.sort((a, b) => b.value - a.value);
|
|
60
60
|
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as i18n from '../../../core/i18n/i18n.js';
|
|
6
|
+
import * as Platform from '../../../core/platform/platform.js';
|
|
6
7
|
import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
|
7
8
|
import * as UI from '../../../ui/legacy/legacy.js';
|
|
8
9
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
10
|
+
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
9
11
|
|
|
10
12
|
import timelineSummaryStyles from './timelineSummary.css.js';
|
|
11
13
|
|
|
@@ -30,6 +32,7 @@ export interface CategoryData {
|
|
|
30
32
|
value: number;
|
|
31
33
|
color: string;
|
|
32
34
|
title: string;
|
|
35
|
+
name?: string;
|
|
33
36
|
}
|
|
34
37
|
|
|
35
38
|
interface ViewInput {
|
|
@@ -52,15 +55,15 @@ export const CATEGORY_SUMMARY_DEFAULT_VIEW: View = (input, _output, target): voi
|
|
|
52
55
|
<style>${timelineSummaryStyles}</style>
|
|
53
56
|
<style>@scope to (devtools-widget > *) { ${UI.inspectorCommonStyles} }</style>
|
|
54
57
|
<style>@scope to (devtools-widget > *) { ${Buttons.textButtonStyles} }</style>
|
|
55
|
-
<div class=${summaryClasses}>
|
|
58
|
+
<div class=${summaryClasses} jslog=${VisualLogging.section('timeline-summary')}>
|
|
56
59
|
<div class="summary-range">${i18nString(UIStrings.rangeSS, {PH1: i18n.TimeUtilities.millisToString(input.rangeStart), PH2: i18n.TimeUtilities.millisToString(input.rangeEnd)})}</div>
|
|
57
60
|
<div class="category-summary">
|
|
58
61
|
${input.categories.map(category => {
|
|
59
62
|
return html`
|
|
60
|
-
<div class="category-row">
|
|
63
|
+
<div class="category-row" jslog=${VisualLogging.item(category.name || Platform.StringUtilities.toKebabCase(category.title))}>
|
|
61
64
|
<div class="category-swatch" style="background-color: ${category.color};"></div>
|
|
62
65
|
<div class="category-name">${category.title}</div>
|
|
63
|
-
<div class="category-value">
|
|
66
|
+
<div class="category-value" jslog=${VisualLogging.value()}>
|
|
64
67
|
${i18n.TimeUtilities.preciseMillisToString(category.value)}
|
|
65
68
|
<div class="background-bar-container">
|
|
66
69
|
<div class="background-bar" style='width: ${(category.value * 100 / input.total).toFixed(1)}%;'></div>
|
|
@@ -68,10 +71,10 @@ export const CATEGORY_SUMMARY_DEFAULT_VIEW: View = (input, _output, target): voi
|
|
|
68
71
|
</div>
|
|
69
72
|
</div>`;
|
|
70
73
|
})}
|
|
71
|
-
<div class="category-row">
|
|
74
|
+
<div class="category-row" jslog=${VisualLogging.item('total')}>
|
|
72
75
|
<div class="category-swatch"></div>
|
|
73
76
|
<div class="category-name">${i18nString(UIStrings.total)}</div>
|
|
74
|
-
<div class="category-value">
|
|
77
|
+
<div class="category-value" jslog=${VisualLogging.value()}>
|
|
75
78
|
${i18n.TimeUtilities.preciseMillisToString(input.total)}
|
|
76
79
|
<div class="background-bar-container">
|
|
77
80
|
<div class="background-bar"></div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Name: Dependencies sourced from the upstream `chromium` repository
|
|
2
2
|
URL: Internal
|
|
3
3
|
Version: N/A
|
|
4
|
-
Revision:
|
|
4
|
+
Revision: 86cee6df69e0463a839c0cc8435c9d4c259434d3
|
|
5
5
|
Update Mechanism: Manual (https://crbug.com/428069060)
|
|
6
6
|
License: BSD-3-Clause
|
|
7
7
|
License File: LICENSE
|
|
@@ -1672,6 +1672,24 @@ export interface TabbedPaneTabDelegate {
|
|
|
1672
1672
|
}
|
|
1673
1673
|
|
|
1674
1674
|
export class TabbedPaneElement extends WidgetElement<TabbedPane> {
|
|
1675
|
+
#closeableTabs = false;
|
|
1676
|
+
#allowTabReorder = false;
|
|
1677
|
+
#automaticReorder = false;
|
|
1678
|
+
|
|
1679
|
+
set closeableTabs(closeable: boolean) {
|
|
1680
|
+
this.#closeableTabs = closeable;
|
|
1681
|
+
this.getWidget()?.setCloseableTabs(closeable);
|
|
1682
|
+
}
|
|
1683
|
+
|
|
1684
|
+
set allowTabReorder(allow: boolean) {
|
|
1685
|
+
this.#allowTabReorder = allow;
|
|
1686
|
+
this.getWidget()?.setAllowTabReorder(this.#allowTabReorder, this.#automaticReorder);
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
set automaticReorder(automatic: boolean) {
|
|
1690
|
+
this.#automaticReorder = automatic;
|
|
1691
|
+
this.getWidget()?.setAllowTabReorder(this.#allowTabReorder, this.#automaticReorder);
|
|
1692
|
+
}
|
|
1675
1693
|
readonly #tabObserver = new MutationObserver(() => this.#updateTabs());
|
|
1676
1694
|
|
|
1677
1695
|
constructor() {
|
|
@@ -1679,6 +1697,8 @@ export class TabbedPaneElement extends WidgetElement<TabbedPane> {
|
|
|
1679
1697
|
|
|
1680
1698
|
registerWidgetConfig(this, widgetConfig(element => {
|
|
1681
1699
|
const widget = new TabbedPane(element as TabbedPaneElement);
|
|
1700
|
+
widget.setCloseableTabs(this.#closeableTabs);
|
|
1701
|
+
widget.setAllowTabReorder(this.#allowTabReorder, this.#automaticReorder);
|
|
1682
1702
|
const slot = widget.contentElement.querySelector('slot:not([name])');
|
|
1683
1703
|
if (slot) {
|
|
1684
1704
|
slot.addEventListener('slotchange', () => this.#syncTabs());
|
|
@@ -1696,6 +1716,13 @@ export class TabbedPaneElement extends WidgetElement<TabbedPane> {
|
|
|
1696
1716
|
}
|
|
1697
1717
|
this.dispatchEvent(new CustomEvent('select', {detail: {tabId: widget.selectedTabId}}));
|
|
1698
1718
|
});
|
|
1719
|
+
widget.addEventListener(Events.TabClosed, event => {
|
|
1720
|
+
this.dispatchEvent(new CustomEvent('close', {detail: {tabId: event.data.tabId}}));
|
|
1721
|
+
});
|
|
1722
|
+
widget.addEventListener(Events.TabOrderChanged, event => {
|
|
1723
|
+
this.dispatchEvent(new CustomEvent(
|
|
1724
|
+
'taborderchanged', {detail: {tabId: event.data.tabId, tabIds: widget.tabIds()}}));
|
|
1725
|
+
});
|
|
1699
1726
|
this.#syncTabs(widget);
|
|
1700
1727
|
return widget;
|
|
1701
1728
|
}));
|
|
@@ -1719,8 +1746,10 @@ export class TabbedPaneElement extends WidgetElement<TabbedPane> {
|
|
|
1719
1746
|
const slot = widget.contentElement.querySelector('slot:not([name])') as HTMLSlotElement | null;
|
|
1720
1747
|
const nodes = slot ? slot.assignedElements() : [];
|
|
1721
1748
|
for (const child of nodes) {
|
|
1722
|
-
this.#tabObserver.observe(
|
|
1723
|
-
|
|
1749
|
+
this.#tabObserver.observe(child, {
|
|
1750
|
+
attributes: true,
|
|
1751
|
+
attributeFilter: ['title', 'jslogcontext', 'selected', 'disabled', 'closeable', 'uncloseable'],
|
|
1752
|
+
});
|
|
1724
1753
|
}
|
|
1725
1754
|
}
|
|
1726
1755
|
|
|
@@ -1737,6 +1766,8 @@ export class TabbedPaneElement extends WidgetElement<TabbedPane> {
|
|
|
1737
1766
|
const jslogContext = child.getAttribute('jslogcontext') || undefined;
|
|
1738
1767
|
const selected = child.hasAttribute('selected');
|
|
1739
1768
|
const enabled = !child.hasAttribute('disabled');
|
|
1769
|
+
const isCloseable =
|
|
1770
|
+
child.hasAttribute('closeable') ? true : (child.hasAttribute('uncloseable') ? false : undefined);
|
|
1740
1771
|
const view = Widget.getOrCreateWidget(child as HTMLElement);
|
|
1741
1772
|
view.setHideOnDetach();
|
|
1742
1773
|
if (widget.selectedTabId !== id) {
|
|
@@ -1752,6 +1783,7 @@ export class TabbedPaneElement extends WidgetElement<TabbedPane> {
|
|
|
1752
1783
|
jslogContext,
|
|
1753
1784
|
selected,
|
|
1754
1785
|
enabled,
|
|
1786
|
+
isCloseable,
|
|
1755
1787
|
});
|
|
1756
1788
|
}
|
|
1757
1789
|
|
|
@@ -19,23 +19,23 @@ import {QuickOpenImpl} from './QuickOpen.js';
|
|
|
19
19
|
|
|
20
20
|
const UIStrings = {
|
|
21
21
|
/**
|
|
22
|
-
* @description
|
|
22
|
+
* @description Warning message displayed when a setting change requires reloading DevTools.
|
|
23
23
|
*/
|
|
24
24
|
settingsChangedReloadDevTools: 'Settings changed. To apply, reload DevTools.',
|
|
25
25
|
/**
|
|
26
|
-
* @description
|
|
26
|
+
* @description Message shown when no commands match the query in the command menu.
|
|
27
27
|
*/
|
|
28
28
|
noCommandsFound: 'No commands found',
|
|
29
29
|
/**
|
|
30
|
-
* @description
|
|
30
|
+
* @description Prefix text for the prompt in the command menu.
|
|
31
31
|
*/
|
|
32
32
|
run: 'Run',
|
|
33
33
|
/**
|
|
34
|
-
* @description
|
|
34
|
+
* @description Suggestion placeholder text for the prompt in the command menu.
|
|
35
35
|
*/
|
|
36
36
|
command: 'Command',
|
|
37
37
|
/**
|
|
38
|
-
* @description
|
|
38
|
+
* @description Title for the command menu entry in the help menu.
|
|
39
39
|
*/
|
|
40
40
|
runCommand: 'Run command',
|
|
41
41
|
} as const;
|
|
@@ -18,28 +18,28 @@ import filteredListWidgetStyles from './filteredListWidget.css.js';
|
|
|
18
18
|
|
|
19
19
|
const UIStrings = {
|
|
20
20
|
/**
|
|
21
|
-
* @description
|
|
21
|
+
* @description Accessible name for the input prompt in the quick open dialog.
|
|
22
22
|
*/
|
|
23
23
|
quickOpenPrompt: 'Quick open prompt',
|
|
24
24
|
/**
|
|
25
|
-
* @description Title
|
|
25
|
+
* @description Title for the quick open dialog.
|
|
26
26
|
*/
|
|
27
27
|
quickOpen: 'Quick open',
|
|
28
28
|
/**
|
|
29
|
-
* @description
|
|
29
|
+
* @description Message displayed when a search returns no matching items.
|
|
30
30
|
*/
|
|
31
31
|
noResultsFound: 'No results found',
|
|
32
32
|
/**
|
|
33
|
-
* @description
|
|
34
|
-
* @example {
|
|
33
|
+
* @description Announcement for screen readers when navigating items in a list.
|
|
34
|
+
* @example {Show Console} PH1
|
|
35
35
|
* @example {2} PH2
|
|
36
36
|
* @example {5} PH3
|
|
37
37
|
*/
|
|
38
38
|
sItemSOfS: '{PH1}, item {PH2} of {PH3}',
|
|
39
39
|
/**
|
|
40
|
-
* @description Text
|
|
40
|
+
* @description Text announced by screen readers when an item has a new feature badge.
|
|
41
41
|
*/
|
|
42
|
-
newFeature: '
|
|
42
|
+
newFeature: 'New feature',
|
|
43
43
|
} as const;
|
|
44
44
|
const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/quick_open/FilteredListWidget.ts', UIStrings);
|
|
45
45
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
|
|
15
15
|
const UIStrings = {
|
|
16
16
|
/**
|
|
17
|
-
* @description
|
|
17
|
+
* @description Hint text displayed below the quick open input prompt.
|
|
18
18
|
*/
|
|
19
19
|
typeToSeeAvailableCommands: 'Type ? to see available commands',
|
|
20
20
|
} as const;
|
|
@@ -9,11 +9,11 @@ import type * as QuickOpen from './quick_open.js';
|
|
|
9
9
|
|
|
10
10
|
const UIStrings = {
|
|
11
11
|
/**
|
|
12
|
-
* @description Title of action that opens a file
|
|
12
|
+
* @description Title of an action that opens a file.
|
|
13
13
|
*/
|
|
14
14
|
openFile: 'Open file',
|
|
15
15
|
/**
|
|
16
|
-
* @description Title of
|
|
16
|
+
* @description Title of an action that opens the command menu.
|
|
17
17
|
*/
|
|
18
18
|
runCommand: 'Run command',
|
|
19
19
|
} as const;
|
|
@@ -518,6 +518,7 @@ export const knownContextValues = new Set([
|
|
|
518
518
|
'aspect-ratio',
|
|
519
519
|
'asserted-events',
|
|
520
520
|
'asus-zenbook-fold',
|
|
521
|
+
'async',
|
|
521
522
|
'attribute',
|
|
522
523
|
'attribute-modified',
|
|
523
524
|
'attributes',
|
|
@@ -828,6 +829,7 @@ export const knownContextValues = new Set([
|
|
|
828
829
|
'close-walkthrough',
|
|
829
830
|
'closeable-tabs',
|
|
830
831
|
'closeableTabs',
|
|
832
|
+
'cls',
|
|
831
833
|
'cls-culprits-widget',
|
|
832
834
|
'code',
|
|
833
835
|
'code-completion.accordion',
|
|
@@ -1351,8 +1353,11 @@ export const knownContextValues = new Set([
|
|
|
1351
1353
|
'desktop',
|
|
1352
1354
|
'desktop-touch',
|
|
1353
1355
|
'destination',
|
|
1356
|
+
'detached-element',
|
|
1357
|
+
'detached-elements',
|
|
1354
1358
|
'detached-node',
|
|
1355
1359
|
'detached-node-count',
|
|
1360
|
+
'detail-row',
|
|
1356
1361
|
'details',
|
|
1357
1362
|
'details-general',
|
|
1358
1363
|
'details-response-headers',
|
|
@@ -1457,6 +1462,7 @@ export const knownContextValues = new Set([
|
|
|
1457
1462
|
'dragstart',
|
|
1458
1463
|
'drawer',
|
|
1459
1464
|
'drawer-view-closeableTabs',
|
|
1465
|
+
'drawing',
|
|
1460
1466
|
'drjones.network-floating-button',
|
|
1461
1467
|
'drjones.network-panel-context',
|
|
1462
1468
|
'drjones.network-panel-context.failures',
|
|
@@ -1557,6 +1563,7 @@ export const knownContextValues = new Set([
|
|
|
1557
1563
|
'emulate-page-focus-true',
|
|
1558
1564
|
'emulated-css-media',
|
|
1559
1565
|
'emulated-css-media-feature-color-gamut',
|
|
1566
|
+
'emulated-css-media-feature-color-gamut-srgb',
|
|
1560
1567
|
'emulated-css-media-feature-forced-colors',
|
|
1561
1568
|
'emulated-css-media-feature-forced-colors-active',
|
|
1562
1569
|
'emulated-css-media-feature-forced-colors-none',
|
|
@@ -1568,6 +1575,7 @@ export const knownContextValues = new Set([
|
|
|
1568
1575
|
'emulated-css-media-feature-prefers-reduced-motion',
|
|
1569
1576
|
'emulated-css-media-feature-prefers-reduced-motion-reduce',
|
|
1570
1577
|
'emulated-css-media-feature-prefers-reduced-transparency',
|
|
1578
|
+
'emulated-css-media-feature-prefers-reduced-transparency-reduce',
|
|
1571
1579
|
'emulated-css-media-print',
|
|
1572
1580
|
'emulated-css-media-screen',
|
|
1573
1581
|
'emulated-os-text-scale',
|
|
@@ -1654,6 +1662,7 @@ export const knownContextValues = new Set([
|
|
|
1654
1662
|
'execution-context',
|
|
1655
1663
|
'expand',
|
|
1656
1664
|
'expand-recursively',
|
|
1665
|
+
'experience',
|
|
1657
1666
|
'experimental-item',
|
|
1658
1667
|
'experiments',
|
|
1659
1668
|
'experiments-filter',
|
|
@@ -1697,6 +1706,7 @@ export const knownContextValues = new Set([
|
|
|
1697
1706
|
'fantasy',
|
|
1698
1707
|
'fast-4g',
|
|
1699
1708
|
'fast-out-linear-in',
|
|
1709
|
+
'fcp',
|
|
1700
1710
|
'feedback',
|
|
1701
1711
|
'fetch',
|
|
1702
1712
|
'fetch-and-xhr',
|
|
@@ -1896,6 +1906,7 @@ export const knownContextValues = new Set([
|
|
|
1896
1906
|
'googlebot-desktop',
|
|
1897
1907
|
'googlebot-smartphone',
|
|
1898
1908
|
'gotpointercapture',
|
|
1909
|
+
'gpu',
|
|
1899
1910
|
'grace-period-link',
|
|
1900
1911
|
'grace-period-mitigation-disabled',
|
|
1901
1912
|
'greendev',
|
|
@@ -1969,7 +1980,9 @@ export const knownContextValues = new Set([
|
|
|
1969
1980
|
'headers-view.add-override-rule',
|
|
1970
1981
|
'headers-view.remove-apply-to-section',
|
|
1971
1982
|
'headers-view.remove-header',
|
|
1983
|
+
'heap',
|
|
1972
1984
|
'heap-profiler',
|
|
1985
|
+
'heap-record',
|
|
1973
1986
|
'heap-snapshot.constructors-view',
|
|
1974
1987
|
'heap-snapshot.retaining-paths-view',
|
|
1975
1988
|
'heap-tracking-overview',
|
|
@@ -2038,6 +2051,7 @@ export const knownContextValues = new Set([
|
|
|
2038
2051
|
'icons',
|
|
2039
2052
|
'id',
|
|
2040
2053
|
'identity',
|
|
2054
|
+
'idle',
|
|
2041
2055
|
'ignore-this-retainer',
|
|
2042
2056
|
'image',
|
|
2043
2057
|
'image-animation',
|
|
@@ -2080,6 +2094,7 @@ export const knownContextValues = new Set([
|
|
|
2080
2094
|
'inline-size',
|
|
2081
2095
|
'inline-variable-values',
|
|
2082
2096
|
'inline-variable-values-false',
|
|
2097
|
+
'inp',
|
|
2083
2098
|
'inp-breakdown-widget',
|
|
2084
2099
|
'input',
|
|
2085
2100
|
'insertCompositionText',
|
|
@@ -2350,8 +2365,10 @@ export const knownContextValues = new Set([
|
|
|
2350
2365
|
'layers.zoom-out',
|
|
2351
2366
|
'layout',
|
|
2352
2367
|
'layout-count',
|
|
2368
|
+
'layout-shift-details',
|
|
2353
2369
|
'layout-shifts',
|
|
2354
2370
|
'lazy-load-image-details',
|
|
2371
|
+
'lcp',
|
|
2355
2372
|
'lcp-breakdown',
|
|
2356
2373
|
'lcp-breakdown-widget',
|
|
2357
2374
|
'lcp-discovery-widget',
|
|
@@ -2764,6 +2781,8 @@ export const knownContextValues = new Set([
|
|
|
2764
2781
|
'metadata',
|
|
2765
2782
|
'metadata-allowed-sites-details',
|
|
2766
2783
|
'method',
|
|
2784
|
+
'metric-histogram',
|
|
2785
|
+
'metric-subpart',
|
|
2767
2786
|
'microsoft-edge-android-mobile',
|
|
2768
2787
|
'microsoft-edge-android-tablet',
|
|
2769
2788
|
'microsoft-edge-chromium-mac',
|
|
@@ -3036,6 +3055,7 @@ export const knownContextValues = new Set([
|
|
|
3036
3055
|
'overscroll-behavior-inline',
|
|
3037
3056
|
'overscroll-behavior-x',
|
|
3038
3057
|
'overscroll-behavior-y',
|
|
3058
|
+
'overscroll-container-type',
|
|
3039
3059
|
'overscroll-position',
|
|
3040
3060
|
'p3',
|
|
3041
3061
|
'pa',
|
|
@@ -3209,6 +3229,7 @@ export const knownContextValues = new Set([
|
|
|
3209
3229
|
'private-state-tokens',
|
|
3210
3230
|
'processing-instruction-value',
|
|
3211
3231
|
'production-origin',
|
|
3232
|
+
'profile-item',
|
|
3212
3233
|
'profile-loading-failed',
|
|
3213
3234
|
'profile-options',
|
|
3214
3235
|
'profile-view',
|
|
@@ -3226,6 +3247,7 @@ export const knownContextValues = new Set([
|
|
|
3226
3247
|
'profiler.heap-snapshot-statistics-view',
|
|
3227
3248
|
'profiler.heap-toggle-recording',
|
|
3228
3249
|
'profiler.js-toggle-recording',
|
|
3250
|
+
'profiler.launcher',
|
|
3229
3251
|
'profiler.load-from-file',
|
|
3230
3252
|
'profiler.profile-type',
|
|
3231
3253
|
'profiler.save-to-file',
|
|
@@ -3273,6 +3295,7 @@ export const knownContextValues = new Set([
|
|
|
3273
3295
|
'quotes',
|
|
3274
3296
|
'r',
|
|
3275
3297
|
'range',
|
|
3298
|
+
'rasterizing',
|
|
3276
3299
|
'ratechange',
|
|
3277
3300
|
'raw-headers',
|
|
3278
3301
|
'raw-headers-show-more',
|
|
@@ -3509,6 +3532,7 @@ export const knownContextValues = new Set([
|
|
|
3509
3532
|
'safe-area-right',
|
|
3510
3533
|
'safe-area-top',
|
|
3511
3534
|
'same-site',
|
|
3535
|
+
'sampling-heap',
|
|
3512
3536
|
'sampling-heap-profiler-timeline',
|
|
3513
3537
|
'samsung-galaxy-a24-4g',
|
|
3514
3538
|
'samsung-galaxy-a51-71',
|
|
@@ -3747,6 +3771,7 @@ export const knownContextValues = new Set([
|
|
|
3747
3771
|
'shift-home',
|
|
3748
3772
|
'shift-pagedown',
|
|
3749
3773
|
'shift-pageup',
|
|
3774
|
+
'shift-row',
|
|
3750
3775
|
'shift-tab',
|
|
3751
3776
|
'shortcut',
|
|
3752
3777
|
'shortcut-panel-switch',
|
|
@@ -4164,6 +4189,7 @@ export const knownContextValues = new Set([
|
|
|
4164
4189
|
'timeline-show-settings-toolbar',
|
|
4165
4190
|
'timeline-sidebar-opened-at-least-once',
|
|
4166
4191
|
'timeline-status',
|
|
4192
|
+
'timeline-summary',
|
|
4167
4193
|
'timeline-tree-current-thread',
|
|
4168
4194
|
'timeline-tree-group-by',
|
|
4169
4195
|
'timeline-trigger',
|
|
@@ -4213,6 +4239,7 @@ export const knownContextValues = new Set([
|
|
|
4213
4239
|
'timeline.disable',
|
|
4214
4240
|
'timeline.download-after-error',
|
|
4215
4241
|
'timeline.enable',
|
|
4242
|
+
'timeline.event-details',
|
|
4216
4243
|
'timeline.export-trace-options',
|
|
4217
4244
|
'timeline.export-trace-options.annotations-checkbox',
|
|
4218
4245
|
'timeline.export-trace-options.resource-content-checkbox',
|
|
@@ -4296,6 +4323,7 @@ export const knownContextValues = new Set([
|
|
|
4296
4323
|
'timeline.layout-shifts',
|
|
4297
4324
|
'timeline.load-from-file',
|
|
4298
4325
|
'timeline.network',
|
|
4326
|
+
'timeline.network-request-details',
|
|
4299
4327
|
'timeline.next-recording',
|
|
4300
4328
|
'timeline.overlays.candy-striped-time-range',
|
|
4301
4329
|
'timeline.overlays.cursor-timestamp-marker',
|
|
@@ -4364,6 +4392,7 @@ export const knownContextValues = new Set([
|
|
|
4364
4392
|
'timezone-id',
|
|
4365
4393
|
'timing',
|
|
4366
4394
|
'timing-info',
|
|
4395
|
+
'timing-rows',
|
|
4367
4396
|
'title',
|
|
4368
4397
|
'toggle-accessibility-tree',
|
|
4369
4398
|
'toggle-drawer-orientation',
|
package/package.json
CHANGED