Chromium Code Reviews| Index: tools/perf/benchmarks/indexeddb_perf.py |
| diff --git a/tools/perf/benchmarks/indexeddb_perf.py b/tools/perf/benchmarks/indexeddb_perf.py |
| index ae1d435b45e0848efaf4e977bfb259aee76135fa..aa51555ab266b49c3379abe977703eb6175a7740 100644 |
| --- a/tools/perf/benchmarks/indexeddb_perf.py |
| +++ b/tools/perf/benchmarks/indexeddb_perf.py |
| @@ -20,19 +20,23 @@ Cursors: |
| """ |
| import json |
| -import os |
| from core import perf_benchmark |
| -from telemetry.core import util |
| -from telemetry import page as page_module |
| from telemetry.page import page_test |
| -from telemetry import story |
| from telemetry.value import scalar |
| from metrics import memory |
| from metrics import power |
| +import page_sets |
| + |
| +from telemetry.timeline import tracing_category_filter |
| +from telemetry.web_perf import timeline_based_measurement |
| + |
| + |
| +IDB_CATEGORY = 'IndexedDB' |
| +TIMELINE_REQUIRED_CATEGORY = 'blink.console' |
| class _IndexedDbMeasurement(page_test.PageTest): |
| def __init__(self): |
| @@ -54,8 +58,7 @@ class _IndexedDbMeasurement(page_test.PageTest): |
| def ValidateAndMeasurePage(self, page, tab, results): |
| tab.WaitForDocumentReadyStateToBeComplete() |
| - tab.WaitForJavaScriptExpression( |
| - 'window.document.cookie.indexOf("__done=1") >= 0', 600) |
| + tab.WaitForJavaScriptExpression('window.done == true', 600) |
|
cmumford
2015/08/03 17:31:33
Nit: why not just 'window.done'?
dmurph
2015/08/05 15:30:32
ah, true.
|
| self._power_metric.Stop(page, tab) |
| self._memory_metric.Stop(page, tab) |
| @@ -82,17 +85,35 @@ class _IndexedDbMeasurement(page_test.PageTest): |
| memory.MemoryMetric.CustomizeBrowserOptions(options) |
| power.PowerMetric.CustomizeBrowserOptions(options) |
| + |
| class IndexedDb(perf_benchmark.PerfBenchmark): |
| """Chromium's IndexedDB Performance tests.""" |
| test = _IndexedDbMeasurement |
| + page_set = page_sets.IndexedDBEndurePageSet |
| @classmethod |
| def Name(cls): |
| return 'indexeddb_perf' |
| - def CreateStorySet(self, options): |
| - indexeddb_dir = os.path.join(util.GetChromiumSrcDir(), 'chrome', 'test', |
| - 'data', 'indexeddb') |
| - ps = story.StorySet(base_dir=indexeddb_dir) |
| - ps.AddStory(page_module.Page('file://perf_test.html', ps, ps.base_dir)) |
| - return ps |
| + |
| +class IndexedDbTracing(perf_benchmark.PerfBenchmark): |
| + """IndexedDB Performance tests that use tracing.""" |
| + page_set = page_sets.IndexedDBEndurePageSet |
| + |
| + def CreateTimelineBasedMeasurementOptions(self): |
| + cat_filter = tracing_category_filter.CreateMinimalOverheadFilter() |
| + cat_filter.AddIncludedCategory(IDB_CATEGORY) |
| + cat_filter.AddIncludedCategory(TIMELINE_REQUIRED_CATEGORY) |
| + |
| + return timeline_based_measurement.Options( |
| + overhead_level=cat_filter) |
| + |
| + @classmethod |
| + def Name(cls): |
| + return 'storage.indexeddb' |
| + |
| + @classmethod |
| + def ValueCanBeAddedPredicate(cls, value, is_first_result): |
| + if 'idb' not in value.name: |
|
cmumford
2015/08/03 17:31:34
This logic makes me think way too much. Why not ju
dmurph
2015/08/05 15:30:32
Done.
|
| + return False |
| + return True |