async _updateTrendLine()

in resources/perf.webkit.org/public/v3/pages/chart-pane.js [546:574]


    async _updateTrendLine()
    {
        if (!this._mainChart.sourceList())
            return;

        this._trendLineVersion++;
        var currentTrendLineType = this._trendLineType || ChartTrendLineTypes.DefaultType;
        var currentTrendLineParameters = this._trendLineParameters || this._defaultParametersForTrendLine(currentTrendLineType);
        var currentTrendLineVersion = this._trendLineVersion;
        var sourceList = this._mainChart.sourceList();

        if (!currentTrendLineType.execute) {
            this._mainChart.clearTrendLines();
            this.enqueueToRender();
        } else {
            // Wait for all trendlines to be ready. Otherwise we might see FOC when the domain is expanded.
            await Promise.all(sourceList.map(async (source, sourceIndex) => {
                const trendlineSeries = await currentTrendLineType.execute.call(null, source, currentTrendLineParameters);
                if (this._trendLineVersion == currentTrendLineVersion)
                    this._mainChart.setTrendLine(sourceIndex, trendlineSeries);

                if (trendlineSeries && trendlineSeries.analysisAnnotations)
                    this._detectedAnnotations = trendlineSeries.analysisAnnotations;
                else
                    this._detectedAnnotations = null;
            }));
            this.enqueueToRender();
        }
    }