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
5from telemetry.page import profile_creator
6
7import page_sets
8
9
10class SmallProfileCreator(profile_creator.ProfileCreator):
11  """
12  Runs a browser through a series of operations to fill in a small test profile.
13  """
14
15  def __init__(self):
16    super(SmallProfileCreator, self).__init__()
17    self._page_set = page_sets.Typical25PageSet()
18
19    # Open all links in the same tab save for the last _NUM_TABS links which
20    # are each opened in a new tab.
21    self._NUM_TABS = 5
22
23  def TabForPage(self, page, browser):
24    idx = page.page_set.pages.index(page)
25    # The last _NUM_TABS pages open a new tab.
26    if idx <= (len(page.page_set.pages) - self._NUM_TABS):
27      return browser.tabs[0]
28    else:
29      return browser.tabs.New()
30
31  def ValidateAndMeasurePage(self, _, tab, results):
32    tab.WaitForDocumentReadyStateToBeComplete()
33