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