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 |