chrome-devtools-frontend 1.0.1534717 → 1.0.1536371
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/contributing/images/issues-nearestslo.png +0 -0
- package/docs/contributing/issues.md +32 -58
- package/eslint.config.mjs +1 -0
- package/front_end/core/common/Console.ts +1 -8
- package/front_end/core/common/ParsedURL.ts +10 -20
- package/front_end/core/common/SegmentedRange.ts +1 -2
- package/front_end/core/common/StringOutputStream.ts +1 -4
- package/front_end/core/host/InspectorFrontendHost.ts +6 -0
- package/front_end/core/host/UserMetrics.ts +5 -1
- package/front_end/core/i18n/i18nImpl.ts +0 -24
- package/front_end/core/protocol_client/CDPConnection.ts +53 -5
- package/front_end/core/protocol_client/protocol_client.ts +2 -0
- package/front_end/core/sdk/AnimationModel.ts +1 -2
- package/front_end/core/sdk/CSSMatchedStyles.ts +2 -2
- package/front_end/core/sdk/CSSModel.ts +1 -1
- package/front_end/core/sdk/CSSProperty.ts +3 -6
- package/front_end/core/sdk/CSSStyleDeclaration.ts +4 -4
- package/front_end/core/sdk/DebuggerModel.ts +1 -2
- package/front_end/core/sdk/EnhancedTracesParser.ts +4 -0
- package/front_end/core/sdk/SourceMap.ts +2 -3
- package/front_end/devtools_compatibility.js +32 -24
- package/front_end/entrypoints/node_app/NodeConnectionsPanel.ts +2 -1
- package/front_end/generated/InspectorBackendCommands.js +1 -2
- package/front_end/generated/SupportedCSSProperties.js +57 -0
- package/front_end/generated/protocol.ts +0 -27
- package/front_end/panels/accessibility/AccessibilityNodeView.ts +18 -17
- package/front_end/panels/accessibility/AccessibilitySidebarView.ts +9 -12
- package/front_end/panels/ai_assistance/PatchWidget.ts +39 -40
- package/front_end/panels/ai_assistance/components/ChatView.ts +5 -4
- package/front_end/panels/ai_assistance/components/ExploreWidget.ts +0 -2
- package/front_end/panels/application/AppManifestView.ts +7 -6
- package/front_end/panels/application/ApplicationPanelSidebar.ts +4 -4
- package/front_end/panels/application/OpenedWindowDetailsView.ts +6 -6
- package/front_end/panels/application/StorageView.ts +9 -8
- package/front_end/panels/application/components/BackForwardCacheView.ts +333 -314
- package/front_end/panels/application/components/ProtocolHandlersView.ts +3 -2
- package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +2 -1
- package/front_end/panels/autofill/AutofillView.ts +2 -3
- package/front_end/panels/browser_debugger/ObjectEventListenersSidebarPane.ts +8 -8
- package/front_end/panels/changes/CombinedDiffView.ts +13 -14
- package/front_end/panels/common/BadgeNotification.ts +2 -1
- package/front_end/panels/common/GdpSignUpDialog.ts +2 -1
- package/front_end/panels/console/ConsoleInsightTeaser.ts +13 -2
- package/front_end/panels/console/ConsolePinPane.ts +12 -7
- package/front_end/panels/console/ConsoleView.ts +1 -0
- package/front_end/panels/console/consoleView.css +0 -1
- package/front_end/panels/developer_resources/DeveloperResourcesView.ts +9 -9
- package/front_end/panels/elements/ComputedStyleWidget.ts +7 -7
- package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
- package/front_end/panels/elements/EventListenersWidget.ts +9 -9
- package/front_end/panels/elements/NodeStackTraceWidget.ts +6 -6
- package/front_end/panels/elements/PlatformFontsWidget.ts +5 -5
- package/front_end/panels/elements/PropertiesWidget.ts +8 -8
- package/front_end/panels/layer_viewer/Layers3DView.ts +2 -1
- package/front_end/panels/layer_viewer/PaintProfilerView.ts +3 -3
- package/front_end/panels/network/RequestCookiesView.ts +2 -1
- package/front_end/panels/network/RequestTimingView.ts +2 -1
- package/front_end/panels/network/components/DirectSocketConnectionView.ts +4 -6
- package/front_end/panels/recorder/RecorderController.ts +34 -23
- package/front_end/panels/recorder/components/CreateRecordingView.ts +249 -240
- package/front_end/panels/security/CookieControlsView.ts +74 -67
- package/front_end/panels/security/CookieReportView.ts +18 -16
- package/front_end/panels/security/IPProtectionView.ts +1 -2
- package/front_end/panels/security/SecurityPanel.ts +19 -19
- package/front_end/panels/settings/AISettingsTab.ts +2 -1
- package/front_end/panels/settings/KeybindsSettingsTab.ts +6 -0
- package/front_end/panels/settings/components/SyncSection.ts +2 -1
- package/front_end/panels/sources/DebuggerPausedMessage.ts +4 -3
- package/front_end/panels/sources/ResourceOriginPlugin.ts +3 -2
- package/front_end/panels/sources/SourcesNavigator.ts +2 -1
- package/front_end/panels/sources/TabbedEditorContainer.ts +3 -2
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +9 -9
- package/front_end/panels/timeline/TimelineSelectorStatsView.ts +36 -36
- package/front_end/panels/timeline/TimelineUIUtils.ts +3 -2
- package/front_end/panels/timeline/components/DetailsView.ts +5 -4
- package/front_end/panels/timeline/components/FieldSettingsDialog.ts +2 -1
- package/front_end/panels/timeline/components/LiveMetricsView.ts +5 -4
- package/front_end/panels/timeline/components/MetricCompareStrings.ts +25 -24
- package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +1 -2
- package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +2 -1
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/components/docs/tooltip/basic.ts +1 -1
- package/front_end/ui/components/tooltips/Tooltip.ts +32 -17
- package/front_end/ui/i18n/i18n.ts +31 -0
- package/front_end/ui/legacy/SoftDropDown.ts +1 -12
- package/front_end/ui/legacy/ViewManager.ts +2 -4
- package/front_end/ui/legacy/Widget.ts +33 -17
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +2 -1
- package/front_end/ui/legacy/legacy.ts +0 -2
- package/front_end/ui/visual_logging/KnownContextValues.ts +5 -0
- package/mcp/mcp.ts +1 -0
- package/package.json +1 -1
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.html +0 -20
- package/front_end/ui/components/docs/recorder_create_recording_view/basic.ts +0 -27
- package/front_end/ui/legacy/ThrottledWidget.ts +0 -48
|
@@ -19,6 +19,7 @@ import * as Marked from '../../../third_party/marked/marked.js';
|
|
|
19
19
|
import * as Buttons from '../../../ui/components/buttons/buttons.js';
|
|
20
20
|
import type * as MarkdownView from '../../../ui/components/markdown_view/markdown_view.js';
|
|
21
21
|
import type {MarkdownLitRenderer} from '../../../ui/components/markdown_view/MarkdownView.js';
|
|
22
|
+
import * as uiI18n from '../../../ui/i18n/i18n.js';
|
|
22
23
|
import * as UI from '../../../ui/legacy/legacy.js';
|
|
23
24
|
import * as Lit from '../../../ui/lit/lit.js';
|
|
24
25
|
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
|
|
@@ -1546,16 +1547,16 @@ function renderConsentViewContents(): Lit.TemplateResult {
|
|
|
1546
1547
|
return html`${i18nString(UIStrings.notAvailableInIncognitoMode)}`;
|
|
1547
1548
|
}
|
|
1548
1549
|
if (config.devToolsAiAssistancePerformanceAgent?.enabled) {
|
|
1549
|
-
consentViewContents =
|
|
1550
|
+
consentViewContents = uiI18n.getFormatLocalizedString(
|
|
1550
1551
|
str_, UIStrings.turnOnForStylesRequestsPerformanceAndFiles, {PH1: settingsLink});
|
|
1551
1552
|
} else if (config.devToolsAiAssistanceFileAgent?.enabled) {
|
|
1552
1553
|
consentViewContents =
|
|
1553
|
-
|
|
1554
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.turnOnForStylesRequestsAndFiles, {PH1: settingsLink});
|
|
1554
1555
|
} else if (config.devToolsAiAssistanceNetworkAgent?.enabled) {
|
|
1555
1556
|
consentViewContents =
|
|
1556
|
-
|
|
1557
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.turnOnForStylesAndRequests, {PH1: settingsLink});
|
|
1557
1558
|
} else {
|
|
1558
|
-
consentViewContents =
|
|
1559
|
+
consentViewContents = uiI18n.getFormatLocalizedString(str_, UIStrings.turnOnForStyles, {PH1: settingsLink});
|
|
1559
1560
|
}
|
|
1560
1561
|
|
|
1561
1562
|
return html`${consentViewContents}`;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
// Copyright 2025 The Chromium Authors
|
|
3
3
|
// Use of this source code is governed by a BSD-style license that can be
|
|
4
4
|
// found in the LICENSE file.
|
|
5
|
-
/* eslint-disable @devtools/no-lit-render-outside-of-view */
|
|
6
5
|
|
|
7
6
|
import * as i18n from '../../../core/i18n/i18n.js';
|
|
8
7
|
import * as Root from '../../../core/root/root.js';
|
|
@@ -105,7 +104,6 @@ export const DEFAULT_VIEW = (
|
|
|
105
104
|
</div>
|
|
106
105
|
`,
|
|
107
106
|
target,
|
|
108
|
-
{ host: target },
|
|
109
107
|
);
|
|
110
108
|
// clang-format on
|
|
111
109
|
};
|
|
@@ -11,6 +11,7 @@ import * as SDK from '../../core/sdk/sdk.js';
|
|
|
11
11
|
import type * as Protocol from '../../generated/protocol.js';
|
|
12
12
|
import * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
13
13
|
import * as IconButton from '../../ui/components/icon_button/icon_button.js';
|
|
14
|
+
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
14
15
|
import * as InlineEditor from '../../ui/legacy/components/inline_editor/inline_editor.js';
|
|
15
16
|
import * as Components from '../../ui/legacy/components/utils/utils.js';
|
|
16
17
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
@@ -704,7 +705,7 @@ export class AppManifestView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
704
705
|
Host.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(recommendedId);
|
|
705
706
|
});
|
|
706
707
|
suggestedIdNote.appendChild(
|
|
707
|
-
|
|
708
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.appIdNote, {PH1: suggestedIdSpan, PH2: copyButton}));
|
|
708
709
|
}
|
|
709
710
|
} else {
|
|
710
711
|
this.identitySection.removeField(i18nString(UIStrings.computedAppId));
|
|
@@ -781,7 +782,7 @@ export class AppManifestView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
781
782
|
'https://web.dev/maskable-icon/', i18nString(UIStrings.documentationOnMaskableIcons), undefined, undefined,
|
|
782
783
|
'learn-more');
|
|
783
784
|
this.iconsSection.appendRow().appendChild(
|
|
784
|
-
|
|
785
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.needHelpReadOurS, {PH1: documentationLink}));
|
|
785
786
|
|
|
786
787
|
let squareSizedIconAvailable = false;
|
|
787
788
|
for (const icon of icons) {
|
|
@@ -938,8 +939,8 @@ export class AppManifestView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
938
939
|
const wco = document.createElement('code');
|
|
939
940
|
wco.classList.add('wco');
|
|
940
941
|
wco.textContent = 'window-controls-overlay';
|
|
941
|
-
wcoStatusMessage.appendChild(
|
|
942
|
-
str_, UIStrings.wcoFound, {PH1: wco, PH2: displayOverrideText, PH3: link}));
|
|
942
|
+
wcoStatusMessage.appendChild(
|
|
943
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.wcoFound, {PH1: wco, PH2: displayOverrideText, PH3: link}));
|
|
943
944
|
|
|
944
945
|
if (this.overlayModel) {
|
|
945
946
|
await this.appendWindowControlsToSection(this.overlayModel, url, stringProperty('theme_color'));
|
|
@@ -950,14 +951,14 @@ export class AppManifestView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
950
951
|
wcoStatusMessage.appendChild(infoIcon);
|
|
951
952
|
|
|
952
953
|
wcoStatusMessage.appendChild(
|
|
953
|
-
|
|
954
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.wcoNotFound, {PH1: displayOverrideText}));
|
|
954
955
|
}
|
|
955
956
|
|
|
956
957
|
const wcoDocumentationLink = UI.XLink.XLink.create(
|
|
957
958
|
'https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps-chromium/how-to/window-controls-overlay',
|
|
958
959
|
i18nString(UIStrings.customizePwaTitleBar), undefined, undefined, 'customize-pwa-tittle-bar');
|
|
959
960
|
this.windowControlsSection.appendRow().appendChild(
|
|
960
|
-
|
|
961
|
+
uiI18n.getFormatLocalizedString(str_, UIStrings.wcoNeedHelpReadMore, {PH1: wcoDocumentationLink}));
|
|
961
962
|
|
|
962
963
|
this.dispatchEventToListeners(Events.MANIFEST_RENDERED);
|
|
963
964
|
}
|
|
@@ -2478,7 +2478,7 @@ class FrameWindowTreeElement extends ApplicationPanelTreeElement {
|
|
|
2478
2478
|
this.targetInfo = targetInfo;
|
|
2479
2479
|
if (this.view) {
|
|
2480
2480
|
this.view.setTargetInfo(targetInfo);
|
|
2481
|
-
this.view.
|
|
2481
|
+
this.view.requestUpdate();
|
|
2482
2482
|
}
|
|
2483
2483
|
}
|
|
2484
2484
|
|
|
@@ -2487,7 +2487,7 @@ class FrameWindowTreeElement extends ApplicationPanelTreeElement {
|
|
|
2487
2487
|
this.isWindowClosed = true;
|
|
2488
2488
|
if (this.view) {
|
|
2489
2489
|
this.view.setIsWindowClosed(true);
|
|
2490
|
-
this.view.
|
|
2490
|
+
this.view.requestUpdate();
|
|
2491
2491
|
}
|
|
2492
2492
|
}
|
|
2493
2493
|
|
|
@@ -2496,7 +2496,7 @@ class FrameWindowTreeElement extends ApplicationPanelTreeElement {
|
|
|
2496
2496
|
if (!this.view) {
|
|
2497
2497
|
this.view = new OpenedWindowDetailsView(this.targetInfo, this.isWindowClosed);
|
|
2498
2498
|
} else {
|
|
2499
|
-
this.view.
|
|
2499
|
+
this.view.requestUpdate();
|
|
2500
2500
|
}
|
|
2501
2501
|
this.showView(this.view);
|
|
2502
2502
|
Host.userMetrics.panelShown('frame-window');
|
|
@@ -2525,7 +2525,7 @@ class WorkerTreeElement extends ApplicationPanelTreeElement {
|
|
|
2525
2525
|
if (!this.view) {
|
|
2526
2526
|
this.view = new WorkerDetailsView(this.targetInfo);
|
|
2527
2527
|
} else {
|
|
2528
|
-
this.view.
|
|
2528
|
+
this.view.requestUpdate();
|
|
2529
2529
|
}
|
|
2530
2530
|
this.showView(this.view);
|
|
2531
2531
|
Host.userMetrics.panelShown('frame-worker');
|
|
@@ -136,7 +136,7 @@ async function maybeCreateLinkToElementsPanel(
|
|
|
136
136
|
return linkElement;
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
export class OpenedWindowDetailsView extends UI.
|
|
139
|
+
export class OpenedWindowDetailsView extends UI.Widget.VBox {
|
|
140
140
|
private targetInfo: Protocol.Target.TargetInfo;
|
|
141
141
|
private isWindowClosed: boolean;
|
|
142
142
|
private readonly reportView: UI.ReportView.ReportView;
|
|
@@ -169,10 +169,10 @@ export class OpenedWindowDetailsView extends UI.ThrottledWidget.ThrottledWidget
|
|
|
169
169
|
this.securitySection.setFieldVisible(i18nString(UIStrings.openerFrame), false);
|
|
170
170
|
this.hasDOMAccessValue = this.securitySection.appendField(i18nString(UIStrings.accessToOpener));
|
|
171
171
|
UI.Tooltip.Tooltip.install(this.hasDOMAccessValue, i18nString(UIStrings.showsWhetherTheOpenedWindowIs));
|
|
172
|
-
this.
|
|
172
|
+
this.requestUpdate();
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
-
override async
|
|
175
|
+
override async performUpdate(): Promise<void> {
|
|
176
176
|
this.reportView.setTitle(this.buildTitle());
|
|
177
177
|
this.#urlFieldValue.textContent = this.targetInfo.url;
|
|
178
178
|
this.#urlFieldValue.title = this.targetInfo.url;
|
|
@@ -208,7 +208,7 @@ export class OpenedWindowDetailsView extends UI.ThrottledWidget.ThrottledWidget
|
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
export class WorkerDetailsView extends UI.
|
|
211
|
+
export class WorkerDetailsView extends UI.Widget.VBox {
|
|
212
212
|
private readonly targetInfo: Protocol.Target.TargetInfo;
|
|
213
213
|
private readonly reportView: UI.ReportView.ReportView;
|
|
214
214
|
private readonly documentSection: UI.ReportView.Section;
|
|
@@ -239,7 +239,7 @@ export class WorkerDetailsView extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
239
239
|
|
|
240
240
|
this.isolationSection = this.reportView.appendSection(i18nString(UIStrings.securityIsolation));
|
|
241
241
|
this.coepPolicy = this.isolationSection.appendField(i18nString(UIStrings.crossoriginEmbedderPolicy));
|
|
242
|
-
this.
|
|
242
|
+
this.requestUpdate();
|
|
243
243
|
}
|
|
244
244
|
|
|
245
245
|
workerTypeToString(type: string): Common.UIString.LocalizedString {
|
|
@@ -295,7 +295,7 @@ export class WorkerDetailsView extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
|
|
298
|
-
override async
|
|
298
|
+
override async performUpdate(): Promise<void> {
|
|
299
299
|
await this.updateCoopCoepStatus();
|
|
300
300
|
}
|
|
301
301
|
}
|
|
@@ -10,6 +10,7 @@ import * as SDK from '../../core/sdk/sdk.js';
|
|
|
10
10
|
import * as Protocol from '../../generated/protocol.js';
|
|
11
11
|
import type * as Buttons from '../../ui/components/buttons/buttons.js';
|
|
12
12
|
import * as IconButton from '../../ui/components/icon_button/icon_button.js';
|
|
13
|
+
import * as uiI18n from '../../ui/i18n/i18n.js';
|
|
13
14
|
import * as PerfUI from '../../ui/legacy/components/perf_ui/perf_ui.js';
|
|
14
15
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
15
16
|
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
|
|
@@ -146,7 +147,7 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
|
146
147
|
/**
|
|
147
148
|
* @implements {SDK.TargetManager.Observer}
|
|
148
149
|
*/
|
|
149
|
-
export class StorageView extends UI.
|
|
150
|
+
export class StorageView extends UI.Widget.VBox {
|
|
150
151
|
private pieColors: Map<Protocol.Storage.StorageType, string>;
|
|
151
152
|
private reportView: UI.ReportView.ReportView;
|
|
152
153
|
private target: SDK.Target.Target|null;
|
|
@@ -163,9 +164,10 @@ export class StorageView extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
163
164
|
private quotaOverrideEditor: HTMLInputElement;
|
|
164
165
|
private quotaOverrideErrorMessage: HTMLElement;
|
|
165
166
|
private clearButton: Buttons.Button.Button;
|
|
167
|
+
private readonly throttler = new Common.Throttler.Throttler(1000);
|
|
166
168
|
|
|
167
169
|
constructor() {
|
|
168
|
-
super(true
|
|
170
|
+
super({useShadowDom: true});
|
|
169
171
|
this.registerRequiredCSS(storageViewStyles);
|
|
170
172
|
|
|
171
173
|
this.contentElement.classList.add('clear-storage-container');
|
|
@@ -341,7 +343,7 @@ export class StorageView extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
341
343
|
this.quotaOverrideCheckbox.checked = false;
|
|
342
344
|
this.quotaOverrideErrorMessage.textContent = '';
|
|
343
345
|
}
|
|
344
|
-
void this.
|
|
346
|
+
void this.performUpdate();
|
|
345
347
|
}
|
|
346
348
|
|
|
347
349
|
private updateStorageKey(mainStorageKey: string): void {
|
|
@@ -355,7 +357,7 @@ export class StorageView extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
355
357
|
this.quotaOverrideCheckbox.checked = false;
|
|
356
358
|
this.quotaOverrideErrorMessage.textContent = '';
|
|
357
359
|
}
|
|
358
|
-
void this.
|
|
360
|
+
void this.performUpdate();
|
|
359
361
|
}
|
|
360
362
|
|
|
361
363
|
private async applyQuotaOverrideFromInputField(): Promise<void> {
|
|
@@ -489,7 +491,7 @@ export class StorageView extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
489
491
|
}
|
|
490
492
|
}
|
|
491
493
|
|
|
492
|
-
override async
|
|
494
|
+
override async performUpdate(): Promise<void> {
|
|
493
495
|
if (!this.securityOrigin || !this.target) {
|
|
494
496
|
this.quotaRow.textContent = '';
|
|
495
497
|
this.populatePieChart(0, []);
|
|
@@ -509,8 +511,7 @@ export class StorageView extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
509
511
|
const formattedQuotaAsString = i18nString(UIStrings.storageWithCustomMarker, {PH1: quotaAsString});
|
|
510
512
|
const quota =
|
|
511
513
|
quotaOverridden ? UI.Fragment.Fragment.build`<b>${formattedQuotaAsString}</b>`.element() : quotaAsString;
|
|
512
|
-
const element =
|
|
513
|
-
i18n.i18n.getFormatLocalizedString(str_, UIStrings.storageQuotaUsed, {PH1: usageAsString, PH2: quota});
|
|
514
|
+
const element = uiI18n.getFormatLocalizedString(str_, UIStrings.storageQuotaUsed, {PH1: usageAsString, PH2: quota});
|
|
514
515
|
this.quotaRow.appendChild(element);
|
|
515
516
|
UI.Tooltip.Tooltip.install(
|
|
516
517
|
this.quotaRow,
|
|
@@ -542,7 +543,7 @@ export class StorageView extends UI.ThrottledWidget.ThrottledWidget {
|
|
|
542
543
|
this.populatePieChart(response.usage, slices);
|
|
543
544
|
}
|
|
544
545
|
|
|
545
|
-
this.
|
|
546
|
+
void this.throttler.schedule(this.requestUpdate.bind(this));
|
|
546
547
|
}
|
|
547
548
|
|
|
548
549
|
private populatePieChart(total: number, slices: PerfUI.PieChart.Slice[]): void {
|