Add e2e latency metrics.

Added a couple log lines also, to help with detecting issues with
downloading files from remote tool.

Bug: 392658517
Test: npm run test:unit:ci
Change-Id: I583c327215bb11d3e65d72d010503aa94387f0e5
diff --git a/tools/winscope/src/app/mediator.ts b/tools/winscope/src/app/mediator.ts
index b70e2f9..0397664 100644
--- a/tools/winscope/src/app/mediator.ts
+++ b/tools/winscope/src/app/mediator.ts
@@ -210,12 +210,14 @@
           'Downloading files...',
           undefined,
         );
+        console.log("App reset for remote tool download.");
       },
     );
 
     await event.visit(
       WinscopeEventType.REMOTE_TOOL_FILES_RECEIVED,
       async (event) => {
+        console.log("Remote tool files received.");
         await this.processRemoteFilesReceived(
           event.files,
           FilesSource.REMOTE_TOOL,
@@ -360,11 +362,13 @@
   }
 
   private async loadFiles(files: File[], source: FilesSource) {
+    const startTimeMs = Date.now();
     await this.tracePipeline.loadFiles(
       files,
       source,
       this.currentProgressListener,
     );
+    Analytics.Loading.logLoadFilesTime(Date.now() - startTimeMs, source);
   }
 
   private async propagateTracePosition(
@@ -486,6 +490,7 @@
   }
 
   private async loadViewers(source: FilesSource) {
+    const e2eStartTimeMs = Date.now();
     this.currentProgressListener?.onProgressUpdate(
       'Computing frame mapping...',
       undefined,
@@ -574,6 +579,7 @@
     // Meaning the viewer could perform twice the initial heavy pre-processing,
     // thus increasing UI initialization times.
     await this.appComponent.onWinscopeEvent(new ViewersLoaded(this.viewers));
+    Analytics.Loading.logLoadViewersTime(Date.now() - e2eStartTimeMs);
   }
 
   private getInitialTracePosition(): TracePosition | undefined {
diff --git a/tools/winscope/src/logging/analytics.ts b/tools/winscope/src/logging/analytics.ts
index ab81534..6589930 100644
--- a/tools/winscope/src/logging/analytics.ts
+++ b/tools/winscope/src/logging/analytics.ts
@@ -36,6 +36,8 @@
   private static GLOBAL_EXCEPTION = 'global_exception';
   private static HIERARCHY_SETTINGS = 'hierarchy_settings';
   private static JS_MEMORY_USAGE = 'js_memory_usage';
+  private static LOAD_FILES_TIME = 'load_files_time';
+  private static LOAD_VIEWERS_TIME = 'load_viewer_time';
   private static NAVIGATION_ZOOM_EVENT = 'navigation_zoom';
   private static PROPERTIES_SETTINGS = 'properties_settings';
   private static PROXY_ERROR = 'proxy_error';
@@ -119,6 +121,14 @@
       Analytics.logTimeMs(Analytics.FRAME_MAP_BUILD_TIME, ms);
     }
 
+    static logLoadFilesTime(ms: number, files_source: FilesSource) {
+      Analytics.logTimeMs(Analytics.LOAD_FILES_TIME, ms, {files_source});
+    }
+
+    static logLoadViewersTime(ms: number) {
+      Analytics.logTimeMs(Analytics.LOAD_VIEWERS_TIME, ms);
+    }
+
     static logViewerInitializationTime(
       traceType: string,
       files_source: FilesSource,
diff --git a/tools/winscope/src/trace_collection/trace_configuration.ts b/tools/winscope/src/trace_collection/trace_configuration.ts
index 84708c6..06a2c30 100644
--- a/tools/winscope/src/trace_collection/trace_configuration.ts
+++ b/tools/winscope/src/trace_collection/trace_configuration.ts
@@ -242,7 +242,7 @@
     types: [TraceType.WAYLAND, TraceType.WAYLAND_DUMP],
   },
   eventlog: {
-    name: TRACE_INFO[TraceType.EVENT_LOG].name + " (CUJs)",
+    name: TRACE_INFO[TraceType.EVENT_LOG].name + ' (CUJs)',
     config: {
       enabled: false,
       checkboxConfigs: [],