Tighten up Protocol.Network.ResourcePriority type usages

While https://crrev.com/c/5494342 fixed an incorrect enum,
there's room to deduplicate our usage.

Bug: 335099340
Change-Id: Icfa74020393ed177b630ad754db6e3fe658de059
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5498950
Reviewed-by: Jack Franklin <[email protected]>
Auto-Submit: Paul Irish <[email protected]>
Commit-Queue: Jack Franklin <[email protected]>
diff --git a/front_end/models/trace/types/TraceEvents.ts b/front_end/models/trace/types/TraceEvents.ts
index 856acf9..4a9e637 100644
--- a/front_end/models/trace/types/TraceEvents.ts
+++ b/front_end/models/trace/types/TraceEvents.ts
@@ -332,8 +332,8 @@
       mimeType: string,
       pathname: string,
       search: string,
-      priority: Priority,
-      initialPriority: Priority,
+      priority: Protocol.Network.ResourcePriority,
+      initialPriority: Protocol.Network.ResourcePriority,
       protocol: string,
       redirects: SyntheticNetworkRedirect[],
       renderBlocking: RenderBlocking,
@@ -826,7 +826,6 @@
   parsedData: LayoutShiftParsedData;
 }
 
-export type Priority = 'VeryLow'|'Low'|'Medium'|'High'|'VeryHigh';
 export type FetchPriorityHint = 'low'|'high'|'auto';
 export type RenderBlocking = 'blocking'|'non_blocking'|'in_body_parser_blocking'|'potentially_blocking';
 
@@ -845,7 +844,7 @@
       frame: string,
       requestId: string,
       url: string,
-      priority: Priority,
+      priority: Protocol.Network.ResourcePriority,
       resourceType: Protocol.Network.ResourceType,
       fetchPriorityHint: FetchPriorityHint,
       // TODO(crbug.com/1457985): change requestMethod to enum when confirm in the backend code.
@@ -861,7 +860,7 @@
   args: TraceEventArgs&{
     data: TraceEventArgsData & {
       requestId: string,
-      priority: Priority,
+      priority: Protocol.Network.ResourcePriority,
     },
   };
 }
diff --git a/front_end/panels/network/NetworkLogView.ts b/front_end/panels/network/NetworkLogView.ts
index aeb20df..cccabc9 100644
--- a/front_end/panels/network/NetworkLogView.ts
+++ b/front_end/panels/network/NetworkLogView.ts
@@ -676,8 +676,8 @@
   private static sortSearchValues(key: string, values: string[]): void {
     if (key === NetworkForward.UIFilter.FilterType.Priority) {
       values.sort((a, b) => {
-        const aPriority = (PerfUI.NetworkPriorities.uiLabelToNetworkPriority(a) as Protocol.Network.ResourcePriority);
-        const bPriority = (PerfUI.NetworkPriorities.uiLabelToNetworkPriority(b) as Protocol.Network.ResourcePriority);
+        const aPriority = PerfUI.NetworkPriorities.uiLabelToNetworkPriority(a);
+        const bPriority = PerfUI.NetworkPriorities.uiLabelToNetworkPriority(b);
         return PerfUI.NetworkPriorities.networkPriorityWeight(aPriority) -
             PerfUI.NetworkPriorities.networkPriorityWeight(bPriority);
       });
diff --git a/front_end/panels/timeline/TimelineEventOverview.ts b/front_end/panels/timeline/TimelineEventOverview.ts
index 8b7a97c..7089ff0 100644
--- a/front_end/panels/timeline/TimelineEventOverview.ts
+++ b/front_end/panels/timeline/TimelineEventOverview.ts
@@ -30,6 +30,7 @@
 
 import * as i18n from '../../core/i18n/i18n.js';
 import * as Platform from '../../core/platform/platform.js';
+import * as Protocol from '../../generated/protocol.js';
 import * as TraceEngine from '../../models/trace/trace.js';
 import * as TraceBounds from '../../services/trace_bounds/trace_bounds.js';
 import * as PerfUI from '../../ui/legacy/components/perf_ui/perf_ui.js';
@@ -84,10 +85,10 @@
   }
 }
 
-const HIGH_NETWORK_PRIORITIES = new Set<TraceEngine.Types.TraceEvents.Priority>([
-  'VeryHigh',
-  'High',
-  'Medium',
+const HIGH_NETWORK_PRIORITIES = new Set<Protocol.Network.ResourcePriority>([
+  Protocol.Network.ResourcePriority.VeryHigh,
+  Protocol.Network.ResourcePriority.High,
+  Protocol.Network.ResourcePriority.Medium,
 ]);
 
 export class TimelineEventOverviewNetwork extends TimelineEventOverview {
diff --git a/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts b/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts
index f132e40..ea1ab75 100644
--- a/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts
+++ b/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts
@@ -5,7 +5,7 @@
 import * as Common from '../../core/common/common.js';
 import * as i18n from '../../core/i18n/i18n.js';
 import * as Platform from '../../core/platform/platform.js';
-import * as Protocol from '../../generated/protocol.js';
+import type * as Protocol from '../../generated/protocol.js';
 import * as TraceEngine from '../../models/trace/trace.js';
 import * as PerfUI from '../../ui/legacy/components/perf_ui/perf_ui.js';
 import * as UI from '../../ui/legacy/legacy.js';
@@ -25,7 +25,6 @@
 
   #timelineDataInternal?: PerfUI.FlameChart.FlameChartTimelineData|null;
   #lastSelection?: Selection;
-  #priorityToValue?: Map<string, number>;
   #traceEngineData: TraceEngine.Handlers.Types.TraceParseData|null;
   constructor() {
     this.#minimumBoundaryInternal = 0;
@@ -281,24 +280,14 @@
           i18n.TimeUtilities.millisToString(duration, true);
     }
     const div = (contents.createChild('span') as HTMLElement);
-    div.textContent = PerfUI.NetworkPriorities.uiLabelForNetworkPriority(
-        (event.args.data.priority as Protocol.Network.ResourcePriority));
+    div.textContent = PerfUI.NetworkPriorities.uiLabelForNetworkPriority((event.args.data.priority));
     div.style.color = this.#colorForPriority(event.args.data.priority) || 'black';
     contents.createChild('span').textContent = Platform.StringUtilities.trimMiddle(event.args.data.url, maxURLChars);
     return element;
   }
 
-  #colorForPriority(priority: string): string|null {
-    if (!this.#priorityToValue) {
-      this.#priorityToValue = new Map([
-        [Protocol.Network.ResourcePriority.VeryLow, 1],
-        [Protocol.Network.ResourcePriority.Low, 2],
-        [Protocol.Network.ResourcePriority.Medium, 3],
-        [Protocol.Network.ResourcePriority.High, 4],
-        [Protocol.Network.ResourcePriority.VeryHigh, 5],
-      ]);
-    }
-    const value = this.#priorityToValue.get(priority);
+  #colorForPriority(priority: Protocol.Network.ResourcePriority): string|null {
+    const value = PerfUI.NetworkPriorities.networkPriorityWeight(priority);
     return value ? `hsla(214, 80%, 50%, ${value / 5})` : null;
   }
 
diff --git a/front_end/panels/timeline/TimelineUIUtils.ts b/front_end/panels/timeline/TimelineUIUtils.ts
index 6d4d353..3d57f46 100644
--- a/front_end/panels/timeline/TimelineUIUtils.ts
+++ b/front_end/panels/timeline/TimelineUIUtils.ts
@@ -1858,13 +1858,11 @@
     }
 
     if (event.args.data.initialPriority) {
-      const initialPriority = PerfUI.NetworkPriorities.uiLabelForNetworkPriority(
-          event.args.data.initialPriority as Protocol.Network.ResourcePriority);
+      const initialPriority = PerfUI.NetworkPriorities.uiLabelForNetworkPriority(event.args.data.initialPriority);
       contentHelper.appendTextRow(i18nString(UIStrings.initialPriority), initialPriority);
     }
 
-    const priority = PerfUI.NetworkPriorities.uiLabelForNetworkPriority(
-        event.args.data.priority as Protocol.Network.ResourcePriority);
+    const priority = PerfUI.NetworkPriorities.uiLabelForNetworkPriority(event.args.data.priority);
 
     contentHelper.appendTextRow(i18nString(UIStrings.priority), priority);
 
diff --git a/front_end/ui/legacy/components/perf_ui/NetworkPriorities.ts b/front_end/ui/legacy/components/perf_ui/NetworkPriorities.ts
index 2c66744..0149d86 100644
--- a/front_end/ui/legacy/components/perf_ui/NetworkPriorities.ts
+++ b/front_end/ui/legacy/components/perf_ui/NetworkPriorities.ts
@@ -35,11 +35,15 @@
 
 const uiLabelToPriorityMapInstance = new Map<string, Protocol.Network.ResourcePriority>();
 
-export function uiLabelToNetworkPriority(priorityLabel: string): string {
+export function uiLabelToNetworkPriority(priorityLabel: string): Protocol.Network.ResourcePriority {
   if (uiLabelToPriorityMapInstance.size === 0) {
     priorityUILabelMap().forEach((value, key) => uiLabelToPriorityMapInstance.set(value, key));
   }
-  return uiLabelToPriorityMapInstance.get(priorityLabel) || '';
+  const priority = uiLabelToPriorityMapInstance.get(priorityLabel);
+  if (priority) {
+    return priority;
+  }
+  throw new Error('Priority not found');
 }
 
 const priorityUILabelMapInstance: Map<Protocol.Network.ResourcePriority, string> = new Map();