1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import os 6import tempfile 7 8from measurements import session_restore 9from measurements import session_restore_with_url 10import page_sets 11from profile_creators import small_profile_creator 12from telemetry import benchmark 13from telemetry.page import profile_generator 14 15 16class _SessionRestoreTest(benchmark.Benchmark): 17 18 @classmethod 19 def ProcessCommandLineArgs(cls, parser, args): 20 super(_SessionRestoreTest, cls).ProcessCommandLineArgs(parser, args) 21 profile_type = 'small_profile' 22 if not args.browser_options.profile_dir: 23 profile_dir = os.path.join(tempfile.gettempdir(), profile_type) 24 if not os.path.exists(profile_dir): 25 new_args = args.Copy() 26 new_args.pageset_repeat = 1 27 new_args.output_dir = profile_dir 28 profile_generator.GenerateProfiles( 29 small_profile_creator.SmallProfileCreator, profile_type, new_args) 30 args.browser_options.profile_dir = os.path.join(profile_dir, profile_type) 31 32 33# crbug.com/325479, crbug.com/381990 34@benchmark.Disabled('android', 'linux', 'reference') 35class SessionRestoreColdTypical25(_SessionRestoreTest): 36 tag = 'cold' 37 test = session_restore.SessionRestore 38 page_set = page_sets.Typical25PageSet 39 options = {'cold': True, 40 'pageset_repeat': 5} 41 42 43# crbug.com/325479, crbug.com/381990 44@benchmark.Disabled('android', 'linux', 'reference') 45class SessionRestoreWarmTypical25(_SessionRestoreTest): 46 tag = 'warm' 47 test = session_restore.SessionRestore 48 page_set = page_sets.Typical25PageSet 49 options = {'warm': True, 50 'pageset_repeat': 20} 51 52 53# crbug.com/325479, crbug.com/381990, crbug.com/405386 54@benchmark.Disabled('android', 'linux', 'reference', 'snowleopard') 55class SessionRestoreWithUrlCold(_SessionRestoreTest): 56 """Measure Chrome cold session restore with startup URLs.""" 57 tag = 'cold' 58 test = session_restore_with_url.SessionRestoreWithUrl 59 page_set = page_sets.StartupPagesPageSet 60 options = {'cold': True, 61 'pageset_repeat': 5} 62 63 64# crbug.com/325479, crbug.com/381990, crbug.com/405386 65@benchmark.Disabled('android', 'linux', 'reference', 'snowleopard') 66class SessionRestoreWithUrlWarm(_SessionRestoreTest): 67 """Measure Chrome warm session restore with startup URLs.""" 68 tag = 'warm' 69 test = session_restore_with_url.SessionRestoreWithUrl 70 page_set = page_sets.StartupPagesPageSet 71 options = {'warm': True, 72 'pageset_repeat': 10} 73