Add trace rerun options to benchmark and pass them through chartjson.

After discussion with Annie/Dave/Fadi/Kari and myself, seems like we settled on not exposing an arbitrary # of new command lines. Rather, there'd be an optional param to rerun with extra tracing categories enabled. The benchmark would specify that there's a debug option available, and has a way of customizing the exact categories it needs.

Example of v8 benchmark modified:

class V8GarbageCollectionCases(benchmark.Benchmark):
  """Measure V8 metrics on the garbage collection cases."""
  def CreateTimelineBasedMeasurementOptions(self):
    # TODO(ernstm): Remove v8-overhead when benchmark relevant v8 events become
    # available in the 'benchmark' category.
    # This can theoretically be handled now by the "default" override
    return timeline_based_measurement.Options()

  @classmethod
  def HasBenchmarkTraceRerunDebugOption(cls):
    return True

  def SetupBenchmarkDefaultTraceRerunOptions(self, tbm_options):
    tbm_options.ExtendTraceCategoryFilters(['v8'])

  def SetupBenchmarkDebugTraceRerunOptions(self, tbm_options):
    tbm_options.ExtendTraceCategoryFilters(['*'])

BUG=

Review URL: https://codereview.chromium.org/840043004

Cr-Commit-Position: refs/heads/master@{#313080}
3 files changed