'''
This file provides some helper functions to report trace events as metrics
to show in custom metric
third_party/catapult/tracing/tracing/metrics/custom_metric.html
See the following doc for usage
docs/speed/benchmark/harnesses/desktop_ui.md
'''
import json
sizeInBytes_smallerIsBetter = 'sizeInBytes_smallerIsBetter'
sizeInBytes_biggerIsBetter = 'sizeInBytes_biggerIsBetter'
timeDurationInMS_smallerIsBetter = 'ms_smallerIsBetter'
timeDurationInMS_biggerIsBetter = 'ms_biggerIsBetter'
unitlessNumber_smallerIsBetter = 'unitless_smallerIsBetter'
unitlessNumber_biggerIsBetter = 'unitless_biggerIsBetter'
def SetMetricNames(action_runner, metric_names):
events = [{'name': name} for name in metric_names]
SetMetrics(action_runner, events)
def SetMetrics(action_runner, metrics):
action_runner.ExecuteJavaScript(REPORT_TRACE_EVENT_SCRIPT %
json.dumps(metrics))
REPORT_TRACE_EVENT_SCRIPT = '''
performance.mark(`custom_metric:manifest:%s`);
'''