Index: tools/perf/page_sets/memory_health_story.py |
diff --git a/tools/perf/page_sets/memory_health_story.py b/tools/perf/page_sets/memory_health_story.py |
index e9e912d9876e375428459f544db7110017c31929..0bd52362c1885115c93e370c53db58a14d0a41b7 100644 |
--- a/tools/perf/page_sets/memory_health_story.py |
+++ b/tools/perf/page_sets/memory_health_story.py |
@@ -29,17 +29,20 @@ |
] |
-class ForegroundPage(page_module.Page): |
- """Take a measurement after loading a regular webpage.""" |
+class MemoryHealthPage(page_module.Page): |
+ """Abstract page class for measuring memory.""" |
+ |
+ _PHASE = NotImplemented |
def __init__(self, story_set, name, url): |
- super(ForegroundPage, self).__init__( |
- url=url, page_set=story_set, name=name, |
- shared_page_state_class=shared_page_state.SharedMobilePageState) |
+ super(MemoryHealthPage, self).__init__( |
+ page_set=story_set, name=name, url=url, |
+ shared_page_state_class=shared_page_state.SharedMobilePageState, |
+ grouping_keys={'phase': self._PHASE}) |
- def _TakeMemoryMeasurement(self, action_runner, phase): |
+ def _TakeMemoryMeasurement(self, action_runner): |
action_runner.Wait(1) # See crbug.com/540022#c17. |
- with action_runner.CreateInteraction(phase): |
+ with action_runner.CreateInteraction(self._PHASE): |
action_runner.Wait(DUMP_WAIT_TIME) |
action_runner.ForceGarbageCollection() |
action_runner.tab.browser.platform.FlushEntireSystemCache() |
@@ -47,13 +50,24 @@ |
if not action_runner.tab.browser.DumpMemory(): |
logging.error('Unable to get a memory dump for %s.', self.name) |
+ |
+class ForegroundPage(MemoryHealthPage): |
+ """Take a measurement after loading a regular webpage.""" |
+ |
+ _PHASE = 'foreground' |
+ |
+ def __init__(self, story_set, name, url): |
+ super(ForegroundPage, self).__init__(story_set, name, url) |
+ |
def RunPageInteractions(self, action_runner): |
action_runner.tab.WaitForDocumentReadyStateToBeComplete() |
- self._TakeMemoryMeasurement(action_runner, 'foreground') |
+ self._TakeMemoryMeasurement(action_runner) |
-class BackgroundPage(ForegroundPage): |
+class BackgroundPage(MemoryHealthPage): |
"""Take a measurement while Chrome is in the background.""" |
+ |
+ _PHASE = 'background' |
def __init__(self, story_set, name): |
super(BackgroundPage, self).__init__(story_set, name, 'about:blank') |
@@ -69,7 +83,7 @@ |
app_has_webviews=False) |
# Take measurement. |
- self._TakeMemoryMeasurement(action_runner, 'background') |
+ self._TakeMemoryMeasurement(action_runner) |
# Go back to Chrome. |
android_platform.android_action_runner.InputKeyEvent(keyevent.KEYCODE_BACK) |