146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)# found in the LICENSE file.
490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
5424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)from telemetry.page import profile_creator
690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)import page_sets
8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class SmallProfileCreator(profile_creator.ProfileCreator):
1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  """
1290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  Runs a browser through a series of operations to fill in a small test profile.
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  """
1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
15424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)  def __init__(self):
16424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)    super(SmallProfileCreator, self).__init__()
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    self._page_set = page_sets.Typical25PageSet()
18424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)
198bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)    # Open all links in the same tab save for the last _NUM_TABS links which
20d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)    # are each opened in a new tab.
21d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)    self._NUM_TABS = 5
22d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)  def TabForPage(self, page, browser):
24d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)    idx = page.page_set.pages.index(page)
258bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)    # The last _NUM_TABS pages open a new tab.
268bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)    if idx <= (len(page.page_set.pages) - self._NUM_TABS):
271e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      return browser.tabs[0]
288bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)    else:
291e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles)      return browser.tabs.New()
30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)
316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  def ValidateAndMeasurePage(self, _, tab, results):
3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    tab.WaitForDocumentReadyStateToBeComplete()
33