blob: ba360eaabbbe7e484484c18e8d3238ef0b8b46d6 [file] [log] [blame]
# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from core import perf_benchmark
from benchmarks import loading_metrics_category
from telemetry.web_perf import timeline_based_measurement
from telemetry.timeline import chrome_trace_category_filter
class _LoadingBase(perf_benchmark.PerfBenchmark):
""" A base class for loading benchmarks. """
options = {'pageset_repeat': 2}
def CreateCoreTimelineBasedMeasurementOptions(self):
cat_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter(
filter_string='disabled-by-default-histogram_samples')
tbm_options = timeline_based_measurement.Options(cat_filter)
loading_metrics_category.AugmentOptionsForLoadingMetrics(tbm_options)
# Enable "Memory.GPU.PeakMemoryUsage2.PageLoad" so we can measure the GPU
# memory used throughout the page loading tests. Include "umaMetric" as a
# timeline so that we can parse this UMA Histogram.
tbm_options.config.chrome_trace_config.EnableUMAHistograms(
'Memory.GPU.PeakMemoryUsage2.PageLoad',
'PageLoad.PaintTiming.NavigationToLargestContentfulPaint',
'PageLoad.PaintTiming.NavigationToFirstContentfulPaint',
'PageLoad.LayoutInstability.CumulativeShiftScore')
# Add "umaMetric" to the timeline based metrics. This does not override
# those added in loading_metrics_category.AugmentOptionsForLoadingMetrics.
tbm_options.AddTimelineBasedMetric('umaMetric')
tbm_options.AddTimelineBasedMetric('tbmv3:uma_metrics')
return tbm_options