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();
}
});