Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / perf / profile_creators / small_profile_creator.py
1 # Copyright (c) 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
5 import os
6
7 from telemetry.core import util
8 from telemetry.page import page_set
9 from telemetry.page import profile_creator
10
11
12 class SmallProfileCreator(profile_creator.ProfileCreator):
13   """
14   Runs a browser through a series of operations to fill in a small test profile.
15   """
16
17   def __init__(self):
18     super(SmallProfileCreator, self).__init__()
19     typical_25 = os.path.join(util.GetBaseDir(), 'page_sets', 'typical_25.py')
20     self._page_set = page_set.PageSet.FromFile(typical_25)
21
22     # Open all links in the same tab save for the last _NUM_TABS links which
23     # are each opened in a new tab.
24     self._NUM_TABS = 5
25
26   def TabForPage(self, page, browser):
27     idx = page.page_set.pages.index(page)
28     # The last _NUM_TABS pages open a new tab.
29     if idx <= (len(page.page_set.pages) - self._NUM_TABS):
30       return browser.tabs[0]
31     else:
32       return browser.tabs.New()
33
34   def MeasurePage(self, _, tab, results):
35     # Can't use WaitForDocumentReadyStateToBeComplete() here due to
36     # crbug.com/280750 .
37     tab.WaitForDocumentReadyStateToBeInteractiveOrBetter()