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..5678b54dd30954b609eb7694a246d92a9b8f03cc 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,42 @@ 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 avoid reloading the page that has |
+ # already been opened with startup_url. |
+ |
+ # TODO(gabadie): Get rid of this (crbug.com/555504) |
+ action_runner.Wait(10) |
+ |
+ def RunPageInteractions(self, action_runner): |
+ self.RunNavigateSteps(action_runner) |
+ |
+ |
+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)) |