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)
tbm_options.config.chrome_trace_config.EnableUMAHistograms(
'Memory.GPU.PeakMemoryUsage2.PageLoad',
'PageLoad.PaintTiming.NavigationToLargestContentfulPaint',
'PageLoad.PaintTiming.NavigationToFirstContentfulPaint',
'PageLoad.LayoutInstability.CumulativeShiftScore')
tbm_options.AddTimelineBasedMetric('umaMetric')
tbm_options.AddTimelineBasedMetric('tbmv3:uma_metrics')
return tbm_options