chrome-devtools-frontend
Version:
Chrome DevTools UI
74 lines (65 loc) • 3.1 kB
text/typescript
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import * as i18n from '../../../../core/i18n/i18n.js';
import * as Protocol from '../../../../generated/protocol.js';
const UIStrings = {
/**
*@description Text in Network Priorities of the Performance panel
*/
lowest: 'Lowest',
/**
*@description Text in Network Priorities of the Performance panel
*/
low: 'Low',
/**
*@description Text in Network Priorities of the Performance panel
*/
medium: 'Medium',
/**
*@description Text in Network Priorities of the Performance panel
*/
high: 'High',
/**
*@description Text in Network Priorities of the Performance panel
*/
highest: 'Highest',
} as const;
const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/perf_ui/NetworkPriorities.ts', UIStrings);
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
export function uiLabelForNetworkPriority(priority: Protocol.Network.ResourcePriority): string {
return priorityUILabelMap().get(priority) || '';
}
const uiLabelToPriorityMapInstance = new Map<string, Protocol.Network.ResourcePriority>();
export function uiLabelToNetworkPriority(priorityLabel: string): Protocol.Network.ResourcePriority {
if (uiLabelToPriorityMapInstance.size === 0) {
priorityUILabelMap().forEach((value, key) => uiLabelToPriorityMapInstance.set(value, key));
}
const priority = uiLabelToPriorityMapInstance.get(priorityLabel);
if (priority) {
return priority;
}
throw new Error('Priority not found');
}
const priorityUILabelMapInstance = new Map<Protocol.Network.ResourcePriority, string>();
export function priorityUILabelMap(): Map<Protocol.Network.ResourcePriority, string> {
if (priorityUILabelMapInstance.size === 0) {
priorityUILabelMapInstance.set(Protocol.Network.ResourcePriority.VeryLow, i18nString(UIStrings.lowest));
priorityUILabelMapInstance.set(Protocol.Network.ResourcePriority.Low, i18nString(UIStrings.low));
priorityUILabelMapInstance.set(Protocol.Network.ResourcePriority.Medium, i18nString(UIStrings.medium));
priorityUILabelMapInstance.set(Protocol.Network.ResourcePriority.High, i18nString(UIStrings.high));
priorityUILabelMapInstance.set(Protocol.Network.ResourcePriority.VeryHigh, i18nString(UIStrings.highest));
}
return priorityUILabelMapInstance;
}
const networkPriorityWeights = new Map<Protocol.Network.ResourcePriority, number>();
export function networkPriorityWeight(priority: Protocol.Network.ResourcePriority): number {
if (networkPriorityWeights.size === 0) {
networkPriorityWeights.set(Protocol.Network.ResourcePriority.VeryLow, 1);
networkPriorityWeights.set(Protocol.Network.ResourcePriority.Low, 2);
networkPriorityWeights.set(Protocol.Network.ResourcePriority.Medium, 3);
networkPriorityWeights.set(Protocol.Network.ResourcePriority.High, 4);
networkPriorityWeights.set(Protocol.Network.ResourcePriority.VeryHigh, 5);
}
return networkPriorityWeights.get(priority) || 0;
}