This commit is contained in:
Simon Knott 2024-11-12 14:51:07 +01:00
parent d3e9656872
commit 92bbb2e3df
No known key found for this signature in database
GPG key ID: 8CEDC00028084AEC
2 changed files with 10 additions and 10 deletions

View file

@ -18,7 +18,7 @@ import { splitProgress } from './progress';
import { unwrapPopoutUrl } from './snapshotRenderer';
import { SnapshotServer } from './snapshotServer';
import { TraceModel } from './traceModel';
import { FetchTraceModelBackend, TraceViewerServerBackend, ZipTraceModelBackend } from './traceModelBackends';
import { FetchTraceModelBackend, TraceViewerServer, ZipTraceModelBackend } from './traceModelBackends';
import { TraceVersionError } from './traceModernizer';
// @ts-ignore
@ -38,7 +38,7 @@ const loadedTraces = new Map<string, { traceModel: TraceModel, snapshotServer: S
const clientIdToTraceUrls = new Map<string, { limit: number | undefined, traceUrls: Set<string> }>();
async function loadTrace(traceUrl: string, traceFileName: string | null, clientId: string, traceViewerServer: TraceViewerServerBackend, limit: number | undefined, progress: (done: number, total: number) => undefined): Promise<TraceModel> {
async function loadTrace(traceUrl: string, traceFileName: string | null, clientId: string, traceViewerServer: TraceViewerServer, limit: number | undefined, progress: (done: number, total: number) => undefined): Promise<TraceModel> {
await gc();
let data = clientIdToTraceUrls.get(clientId);
if (!data) {
@ -69,9 +69,9 @@ async function loadTrace(traceUrl: string, traceFileName: string | null, clientI
return traceModel;
}
const traceViewerServers = new Map<string, TraceViewerServerBackend>();
const traceViewerServers = new Map<string, TraceViewerServer>();
function getTraceViewerServer(client?: any): TraceViewerServerBackend {
function getTraceViewerServer(client?: any): TraceViewerServer {
let traceViewerServerBaseUrl = self.registration.scope;
if (client?.url) {
const clientUrl = new URL(client.url);
@ -80,7 +80,7 @@ function getTraceViewerServer(client?: any): TraceViewerServerBackend {
}
if (!traceViewerServers.has(traceViewerServerBaseUrl))
traceViewerServers.set(traceViewerServerBaseUrl, new TraceViewerServerBackend(traceViewerServerBaseUrl));
traceViewerServers.set(traceViewerServerBaseUrl, new TraceViewerServer(traceViewerServerBaseUrl));
return traceViewerServers.get(traceViewerServerBaseUrl)!;
}

View file

@ -28,7 +28,7 @@ export class ZipTraceModelBackend implements TraceModelBackend {
private _entriesPromise: Promise<Map<string, zip.Entry>>;
private _traceURL: string;
constructor(traceURL: string, server: TraceViewerServerBackend, progress: Progress) {
constructor(traceURL: string, server: TraceViewerServer, progress: Progress) {
this._traceURL = traceURL;
zipjs.configure({ baseURL: self.location.href } as any);
this._zipReader = new zipjs.ZipReader(
@ -84,9 +84,9 @@ export class ZipTraceModelBackend implements TraceModelBackend {
export class FetchTraceModelBackend implements TraceModelBackend {
private _entriesPromise: Promise<Map<string, string>>;
private _path: string;
private _server: TraceViewerServerBackend;
private _server: TraceViewerServer;
constructor(path: string, server: TraceViewerServerBackend) {
constructor(path: string, server: TraceViewerServer) {
this._path = path;
this._server = server;
this._entriesPromise = server.readFile(path).then(async response => {
@ -137,7 +137,7 @@ export class FetchTraceModelBackend implements TraceModelBackend {
}
}
function formatUrl(trace: string, server: TraceViewerServerBackend) {
function formatUrl(trace: string, server: TraceViewerServer) {
let url = trace.startsWith('http') || trace.startsWith('blob') ? trace : server.getFileURL(trace).toString();
// Dropbox does not support cors.
if (url.startsWith('https://www.dropbox.com/'))
@ -145,7 +145,7 @@ function formatUrl(trace: string, server: TraceViewerServerBackend) {
return url;
}
export class TraceViewerServerBackend {
export class TraceViewerServer {
constructor(private readonly baseUrl: string) {}
getFileURL(path: string): URL {