Files
react-native-devtools-frontend/front_end/core/sdk/PageLoad.ts
T
Kateryna Prokopenko a2d72a5d31 Type all path and URL variables in core/sdk to Branded Types
Bug: 1299773
Change-Id: I54609104283c074d0f3e03917dc9ba2a77544290
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3548478
Reviewed-by: Eric Leese <leese@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
Commit-Queue: Kateryna Prokopenko <kprokopenko@chromium.org>
2022-03-28 12:39:45 +00:00

36 lines
990 B
TypeScript

// Copyright 2021 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 type * as Platform from '../platform/platform.js';
import type {NetworkRequest} from './NetworkRequest.js';
export class PageLoad {
id: number;
url: Platform.DevToolsPath.UrlString;
startTime: number;
loadTime!: number;
contentLoadTime!: number;
mainRequest: NetworkRequest;
constructor(mainRequest: NetworkRequest) {
this.id = ++PageLoad.lastIdentifier;
this.url = mainRequest.url();
this.startTime = mainRequest.startTime;
this.mainRequest = mainRequest;
}
static forRequest(request: NetworkRequest): PageLoad|null {
return pageLoadForRequest.get(request) || null;
}
bindRequest(request: NetworkRequest): void {
pageLoadForRequest.set(request, this);
}
private static lastIdentifier = 0;
}
const pageLoadForRequest = new WeakMap<NetworkRequest, PageLoad>();