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