| Index: tools/perf/page_sets/startup_pages.py
|
| diff --git a/tools/perf/page_sets/startup_pages.py b/tools/perf/page_sets/startup_pages.py
|
| index 2ca04aedf73f41e514553b414202257a246d1f4b..8b2453a69f3253c6a17c08ee0bf0965e9e24a63c 100644
|
| --- a/tools/perf/page_sets/startup_pages.py
|
| +++ b/tools/perf/page_sets/startup_pages.py
|
| @@ -2,9 +2,22 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
| from telemetry.page import page as page_module
|
| +from telemetry.page import shared_page_state
|
| from telemetry import story
|
|
|
|
|
| +class BrowserStartupSharedState(shared_page_state.SharedPageState):
|
| + """Shared state that restarts the browser for every single story.
|
| + """
|
| +
|
| + def __init__(self, test, finder_options, story_set):
|
| + super(BrowserStartupSharedState, self).__init__(
|
| + test, finder_options, story_set)
|
| +
|
| + def DidRunStory(self, results):
|
| + super(BrowserStartupSharedState, self).DidRunStory(results)
|
| + self._StopBrowser()
|
| +
|
| class StartedPage(page_module.Page):
|
|
|
| def __init__(self, url, startup_url, page_set):
|
| @@ -39,3 +52,39 @@ class StartupPagesPageSet(story.StorySet):
|
| # Horribly complex page - stress test!
|
| self.AddStory(StartedPage(
|
| 'http://kapook.com', 'http://kapook.com', self))
|
| +
|
| +
|
| +class StartedPageTBM(page_module.Page):
|
| +
|
| + def __init__(self, url, page_set):
|
| + super(StartedPageTBM, self).__init__(
|
| + url=url, page_set=page_set, startup_url=url,
|
| + shared_page_state_class=
|
| + BrowserStartupSharedState)
|
| + self.archive_data_file = 'data/startup_pages.json'
|
| +
|
| + def RunNavigateSteps(self, action_runner):
|
| + # Do not call super.RunNavigateSteps() to not reload the page that has
|
| + # already been opened with startup_url.
|
| + pass
|
| +
|
| +
|
| +class StartupPagesPageSetTBM(story.StorySet):
|
| +
|
| + """ Pages for testing starting Chrome with a URL.
|
| + Note that this file can't be used with record_wpr, since record_wpr requires
|
| + a true navigate step, which we do not want for startup testing. Instead use
|
| + record_wpr startup_pages_record to record data for this test.
|
| + """
|
| +
|
| + def __init__(self):
|
| + super(StartupPagesPageSetTBM, self).__init__(
|
| + archive_data_file='data/startup_pages.json',
|
| + cloud_storage_bucket=story.PARTNER_BUCKET)
|
| +
|
| + # Typical page.
|
| + self.AddStory(StartedPageTBM('about:blank', self))
|
| + # Typical page.
|
| + self.AddStory(StartedPageTBM('http://bbc.co.uk', self))
|
| + # Horribly complex page - stress test!
|
| + self.AddStory(StartedPageTBM('http://kapook.com', self))
|
|
|