blob: 3fa2c7a7acf7438cf10ef4d8ded2938664575324 [file] [log] [blame]
# Copyright 2015 The Chromium Authors. All rights reserved.
# 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 telemetry import benchmark
from telemetry.timeline import chrome_trace_category_filter
from telemetry.web_perf import timeline_based_measurement
import page_sets
BLOB_CATEGORY = 'Blob'
TIMELINE_REQUIRED_CATEGORY = 'blink.console'
# http://crbug.com/499325
# http://crbug.com/595069
@benchmark.Disabled('android', 'win')
class BlobStorage(perf_benchmark.PerfBenchmark):
"""Timeline based measurement benchmark for Blob Storage."""
page_set = page_sets.BlobWorkshopPageSet
def CreateTimelineBasedMeasurementOptions(self):
cat_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter()
cat_filter.AddIncludedCategory(BLOB_CATEGORY)
cat_filter.AddIncludedCategory(TIMELINE_REQUIRED_CATEGORY)
return timeline_based_measurement.Options(
overhead_level=cat_filter)
# Necessary until crbug.com/544306 is finished.
def SetExtraBrowserOptions(self, options):
options.AppendExtraBrowserArgs(
['--enable-experimental-web-platform-features'])
@classmethod
def Name(cls):
return 'blob_storage.blob_storage'
@classmethod
def ValueCanBeAddedPredicate(cls, value, is_first_result):
if ('blob-writes' not in value.name and
'blob-reads' not in value.name):
return False
return value.values != None