| # Copyright 2013 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| |
| class Metric(object): |
| """Base class for all the metrics that are used by telemetry measurements. |
| |
| The Metric class represents a way of measuring something. Metrics are |
| helper classes used by PageTests. Each PageTest may use |
| multiple metrics; each metric should be focused on collecting data |
| about one thing. |
| """ |
| |
| def Start(self, page, tab): |
| """Start collecting data for this metric.""" |
| |
| def Stop(self, page, tab): |
| """Stop collecting data for this metric (if applicable).""" |
| |
| def AddResults(self, tab, results): |
| """Add the data collected into the results object for a measurement. |
| |
| Metrics may implement AddResults to provide a common way to add results |
| to the PageTestResults in PageTest.ValidateOrMeasurePage -- |
| results should be added with results.AddMeasurement(...). |
| """ |
| raise NotImplementedError() |