# Copyright 2017 The Chromium Authors
# 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 _BasePage(page_module.Page):
def __init__(
self, page_set, shared_page_state_class, url, name, wait_in_seconds,
measure_memory):
super(_BasePage, self).__init__(
url=url, page_set=page_set, name=name,
shared_page_state_class=shared_page_state_class)
self._wait_in_seconds = wait_in_seconds
self.measure_memory = measure_memory
def RunPageInteractions(self, action_runner):
action_runner.Wait(self._wait_in_seconds)
if self.measure_memory:
action_runner.MeasureMemory(deterministic_mode=True)
class TrivialScrollingPage(_BasePage):
def __init__(self, page_set, shared_page_state_class, wait_in_seconds,
measure_memory):
super(TrivialScrollingPage, self).__init__(
url='file://trivial_sites/trivial_scrolling_page.html',
page_set=page_set,
name=self.__class__.__name__ + shared_page_state_class.__name__,
shared_page_state_class=shared_page_state_class,
wait_in_seconds=wait_in_seconds,
measure_memory=measure_memory)
class TrivialBlinkingCursorPage(_BasePage):
def __init__(self, page_set, shared_page_state_class, wait_in_seconds,
measure_memory):
super(TrivialBlinkingCursorPage, self).__init__(
url='file://trivial_sites/trivial_blinking_cursor.html',
page_set=page_set,
name=self.__class__.__name__ + shared_page_state_class.__name__,
shared_page_state_class=shared_page_state_class,
wait_in_seconds=wait_in_seconds,
measure_memory=measure_memory)
class TrivialCanvasPage(_BasePage):
def __init__(self, page_set, shared_page_state_class, wait_in_seconds,
measure_memory):
super(TrivialCanvasPage, self).__init__(
url='file://trivial_sites/trivial_canvas.html',
page_set=page_set,
name=self.__class__.__name__ + shared_page_state_class.__name__,
shared_page_state_class=shared_page_state_class,
wait_in_seconds=wait_in_seconds,
measure_memory=measure_memory)
class TrivialWebGLPage(_BasePage):
def __init__(self, page_set, shared_page_state_class, wait_in_seconds,
measure_memory):
super(TrivialWebGLPage, self).__init__(
url='file://trivial_sites/trivial_webgl.html',
page_set=page_set,
name=self.__class__.__name__ + shared_page_state_class.__name__,
shared_page_state_class=shared_page_state_class,
wait_in_seconds=wait_in_seconds,
measure_memory=measure_memory)
class TrivialBlurAnimationPage(_BasePage):
def __init__(self, page_set, shared_page_state_class, wait_in_seconds,
measure_memory):
super(TrivialBlurAnimationPage, self).__init__(
url='file://trivial_sites/trivial_blur_animation.html',
page_set=page_set,
name=self.__class__.__name__ + shared_page_state_class.__name__,
shared_page_state_class=shared_page_state_class,
wait_in_seconds=wait_in_seconds,
measure_memory=measure_memory)
class TrivialFullscreenVideoPage(_BasePage):
def __init__(self, page_set, shared_page_state_class, wait_in_seconds,
measure_memory):
super(TrivialFullscreenVideoPage, self).__init__(
url='file://trivial_sites/trivial_fullscreen_video.html',
page_set=page_set,
name=self.__class__.__name__ + shared_page_state_class.__name__,
shared_page_state_class=shared_page_state_class,
wait_in_seconds=wait_in_seconds,
measure_memory=measure_memory)
def RunPageInteractions(self, action_runner):
action_runner.PressKey("Return")
super(TrivialFullscreenVideoPage, self).RunPageInteractions(action_runner)
class TrivialGifPage(_BasePage):
def __init__(self, page_set, shared_page_state_class, wait_in_seconds,
measure_memory):
super(TrivialGifPage, self).__init__(
url='file://trivial_sites/trivial_gif.html',
page_set=page_set,
name=self.__class__.__name__ + shared_page_state_class.__name__,
shared_page_state_class=shared_page_state_class,
wait_in_seconds=wait_in_seconds,
measure_memory=measure_memory)
class TrivialAnimationPage(_BasePage):
def __init__(self, page_set, shared_page_state_class, wait_in_seconds,
measure_memory):
super(TrivialAnimationPage, self).__init__(
url='file://trivial_sites/trivial_animation.html',
page_set=page_set,
name=self.__class__.__name__ + shared_page_state_class.__name__,
shared_page_state_class=shared_page_state_class,
wait_in_seconds=wait_in_seconds,
measure_memory=measure_memory)
class TrivialSitesStorySet(story.StorySet):
def __init__(self, shared_state = shared_page_state.SharedPageState,
wait_in_seconds=0, measure_memory=False):
# Wait is time to wait_in_seconds on page in seconds.
super(TrivialSitesStorySet, self).__init__(
cloud_storage_bucket=story.PUBLIC_BUCKET)
self.AddStory(TrivialScrollingPage(
self, shared_state, wait_in_seconds, measure_memory))
self.AddStory(TrivialBlinkingCursorPage(
self, shared_state, wait_in_seconds, measure_memory))
self.AddStory(TrivialCanvasPage(
self, shared_state, wait_in_seconds, measure_memory))
self.AddStory(TrivialWebGLPage(
self, shared_state, wait_in_seconds, measure_memory))
self.AddStory(TrivialBlurAnimationPage(
self, shared_state, wait_in_seconds, measure_memory))
self.AddStory(TrivialFullscreenVideoPage(
self, shared_state, wait_in_seconds, measure_memory))
self.AddStory(TrivialGifPage(
self, shared_state, wait_in_seconds, measure_memory))
self.AddStory(TrivialAnimationPage(
self, shared_state, wait_in_seconds, measure_memory))