Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Side by Side Diff: tools/perf/page_sets/blink_memory_mobile.py

Issue 1266833004: telemetry: Add a page set for blink's memory usage measurement (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Disabled Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import logging
6
7 from telemetry.page import page as page_module
8 from telemetry.page import shared_page_state
9 from telemetry import story
10
11 from page_sets.login_helpers import google_login
12
13
14 DUMP_WAIT_TIME = 3
15
16
17 class BlinkMemoryMobilePage(page_module.Page):
18 def __init__(self, url, page_set, name):
19 super(BlinkMemoryMobilePage, self).__init__(
20 url=url, page_set=page_set, name=name,
21 shared_page_state_class=shared_page_state.SharedMobilePageState,
22 credentials_path='data/credentials.json')
23 self.archive_data_file = 'data/blink_memory_mobile.json'
24
25 def _DumpMemory(self, action_runner, phase):
26 with action_runner.CreateInteraction(phase):
27 action_runner.Wait(DUMP_WAIT_TIME)
28 action_runner.ForceGarbageCollection()
29 action_runner.Wait(DUMP_WAIT_TIME)
30 if not action_runner.tab.browser.DumpMemory():
31 logging.error('Unable to get a memory dump for %s.', self.name)
32
33 def RunPageInteractions(self, action_runner):
34 action_runner.ScrollPage()
35 self._DumpMemory(action_runner, 'scrolled')
36
37
38 class TheVergePage(BlinkMemoryMobilePage):
39 COMMENT_LINK_SELECTOR = '.show_comments_link'
40
41 def __init__(self, page_set):
42 super(TheVergePage, self).__init__(
43 'http://www.theverge.com/2015/8/11/9133883/taylor-swift-spotify-discover -weekly-what-is-going-on',
44 page_set=page_set,
45 name='TheVerge')
46
47 def RunPageInteractions(self, action_runner):
48 action_runner.WaitForElement(selector=TheVergePage.COMMENT_LINK_SELECTOR)
49 action_runner.ExecuteJavaScript(
50 'window.location.hash = "comments"')
51 action_runner.TapElement(
52 selector=TheVergePage.COMMENT_LINK_SELECTOR)
53 action_runner.WaitForJavaScriptCondition(
54 'window.Chorus.Comments.collection.length > 0')
55 super(TheVergePage, self).RunPageInteractions(action_runner)
56
57
58 class FacebookPage(BlinkMemoryMobilePage):
59 def __init__(self, page_set):
60 super(FacebookPage, self).__init__(
61 'https://facebook.com/barackobama',
62 page_set=page_set,
63 name='Facebook')
64
65 def RunNavigateSteps(self, action_runner):
66 super(FacebookPage, self).RunNavigateSteps(action_runner)
67 action_runner.WaitForJavaScriptCondition(
68 'document.getElementById("u_0_c") !== null &&'
69 'document.body.scrollHeight > window.innerHeight')
70
71
72 class GmailPage(BlinkMemoryMobilePage):
73 def __init__(self, page_set):
74 super(GmailPage, self).__init__(
75 'https://mail.google.com/mail/',
76 page_set=page_set,
77 name='Gmail')
78
79 def RunNavigateSteps(self, action_runner):
80 google_login.LoginGoogleAccount(action_runner, 'google',
81 self.credentials_path)
82 super(GmailPage, self).RunNavigateSteps(action_runner)
83 # Needs to wait for navigation to handle redirects.
84 action_runner.WaitForNavigate()
85 action_runner.WaitForElement(selector='#apploadingdiv')
86 action_runner.WaitForJavaScriptCondition(
87 'document.querySelector("#apploadingdiv").style.opacity == "0"')
88
89
90 class BlinkMemoryMobilePageSet(story.StorySet):
91 """Key mobile sites for Blink memory reduction."""
92
93 def __init__(self):
94 super(BlinkMemoryMobilePageSet, self).__init__(
95 archive_data_file='data/blink_memory_mobile.json',
96 cloud_storage_bucket=story.PARTNER_BUCKET)
97
98 # Why: High rate of Blink's memory consumption rate.
99 self.AddStory(BlinkMemoryMobilePage(
100 'https://www.pinterest.com',
101 page_set=self,
102 name='Pinterest'))
103 self.AddStory(FacebookPage(self))
104 # TODO(bashi): Enable TheVergePage. http://crbug.com/522381
105 # self.AddStory(TheVergePage(self))
106
107 # Why: High rate of Blink's memory comsumption rate on low-RAM devices.
108 self.AddStory(BlinkMemoryMobilePage(
109 'http://en.m.wikipedia.org/wiki/Wikipedia',
110 page_set=self,
111 name='Wikipedia (1 tab) - delayed scroll start',))
112 self.AddStory(BlinkMemoryMobilePage(
113 url='http://www.reddit.com/r/programming/comments/1g96ve',
114 page_set=self,
115 name='Reddit'))
116 self.AddStory(BlinkMemoryMobilePage(
117 'https://en.blog.wordpress.com/2012/09/04/freshly-pressed-editors-picks- for-august-2012/',
118 page_set=self,
119 name='Wordpress'))
120
121 # Why: Renderer memory usage is high.
122 self.AddStory(BlinkMemoryMobilePage(
123 'http://worldjournal.com/',
124 page_set=self,
125 name='Worldjournal'))
126
127 # Why: Key products.
128 self.AddStory(GmailPage(page_set=self))
129 self.AddStory(BlinkMemoryMobilePage(
130 'http://googlewebmastercentral.blogspot.com/2015/04/rolling-out-mobile-f riendly-update.html?m=1',
131 page_set=self,
132 name='Blogger'))
133 self.AddStory(BlinkMemoryMobilePage(
134 'https://plus.google.com/app/basic/110031535020051778989/posts?source=ap ppromo',
135 page_set=self,
136 name='GooglePlus'))
OLDNEW
« no previous file with comments | « tools/perf/benchmarks/memory_health_plan.py ('k') | tools/perf/page_sets/data/blink_memory_mobile.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698