Fix incorrect render call after data load in BasicAsyncTrack

In BasicAsyncTrack, after data has loaded, it calls `redrawCanvas()`,
using on the captured canvas 2d context, which is completely invalid!

This CL switches this to a call to `raf.scheduleRedraw()`, which will
result in correct rendering.

Change-Id: I8e7394515cee0bf54eb074c8d6b18224b8180aa5
diff --git a/ui/src/common/basic_async_track.ts b/ui/src/common/basic_async_track.ts
index 1cc4516..a7f4212 100644
--- a/ui/src/common/basic_async_track.ts
+++ b/ui/src/common/basic_async_track.ts
@@ -15,6 +15,7 @@
 import m from 'mithril';
 
 import {duration, Span, Time, time} from '../base/time';
+import {raf} from '../core/raf_scheduler';
 import {globals} from '../frontend/globals';
 import {PxSpan, TimeScale} from '../frontend/time_scale';
 import {SliceRect} from '../frontend/track';
@@ -89,13 +90,13 @@
 
   render(ctx: CanvasRenderingContext2D): void {
     if (this.shouldLoadNewData()) {
-      this.loadData(ctx);
+      this.loadData();
     }
 
     this.renderCanvas(ctx);
   }
 
-  private loadData(ctx: CanvasRenderingContext2D): void {
+  private loadData(): void {
     if (this.requestingData) {
       this.queuedRequest = true;
       return;
@@ -120,9 +121,9 @@
 
       if (this.queuedRequest) {
         this.queuedRequest = false;
-        this.loadData(ctx);
+        this.loadData();
       } else {
-        this.renderCanvas(ctx);
+        raf.scheduleRedraw();
       }
     });