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

Unified 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: Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: tools/perf/page_sets/blink_memory_mobile.py
diff --git a/tools/perf/page_sets/blink_memory_mobile.py b/tools/perf/page_sets/blink_memory_mobile.py
new file mode 100644
index 0000000000000000000000000000000000000000..82d1a8d164893bb30d0745fd9bdfe9e6213d1c5b
--- /dev/null
+++ b/tools/perf/page_sets/blink_memory_mobile.py
@@ -0,0 +1,108 @@
+# Copyright 2015 The Chromium Authors. All rights reserved.
+# 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
petrcermak 2015/08/26 09:33:51 nit: Please put a blank line above this one.
bashi 2015/08/28 01:49:07 Done.
+from telemetry.page import shared_page_state
+from telemetry import story
+
+from page_sets import key_mobile_sites_pages
+from page_sets.login_helpers import google_login
+
+
+class BlinkMemoryMobilePage(page_module.Page):
+ def __init__(self, url, page_set, name):
+ super(BlinkMemoryMobilePage, self).__init__(
+ url=url, page_set=page_set, name=name,
petrcermak 2015/08/26 09:33:50 Lines 15-17 should be indented 4 spaces (+2)
bashi 2015/08/28 01:49:07 Done.
+ shared_page_state_class=shared_page_state.SharedMobilePageState,
+ credentials_path='data/credentials.json')
+ self.arcive_data_file = 'data/blink_memory_mobile.json'
Sami 2015/08/26 10:03:25 typo: archive_data_file
bashi 2015/08/28 01:49:07 Done.
+
+ def RunPageInteractions(self, action_runner):
+ action_runner.ScrollPage()
+
+
+class TheVergePage(BlinkMemoryMobilePage):
Sami 2015/08/26 10:03:26 Since this isn't enabled yet could we leave it out
bashi 2015/08/28 01:49:07 I would like to keep this so that I can keep the T
Sami 2015/08/28 11:32:22 I see. Keeping this here for the TODO sounds fine.
+ def __init__(self, page_set):
+ super(TheVergePage, self).__init__(
+ # pylint: disable=C0301
petrcermak 2015/08/26 09:33:50 lines 27-30 should be indented 4 spaces (+2)
bashi 2015/08/28 01:49:07 Done.
+ url='http://www.theverge.com/2015/8/11/9133883/taylor-swift-spotify-discover-weekly-what-is-going-on',
Sami 2015/08/26 10:03:25 Looks like this line is too long. Tip: in python y
bashi 2015/08/28 01:49:08 Hmm, I don't think splitting URLs is a good idea.
nednguyen 2015/08/28 03:58:47 I think Bashi's point is valid. You can wait for t
+ page_set=page_set,
+ name='TheVerge')
+
+ def RunPageInteractions(self, action_runner):
+ comment_link_selector = '.show_comments_link'
petrcermak 2015/08/26 09:33:50 This should probably be a class constant
bashi 2015/08/28 01:49:08 Done.
+ action_runner.WaitForElement(selector=comment_link_selector)
+ action_runner.ExecuteJavaScript(
+ 'window.location.hash = "comments"')
petrcermak 2015/08/26 09:33:50 This line should be indented 4 spaces (+2)
bashi 2015/08/28 01:49:07 Done.
+ action_runner.TapElement(selector=comment_link_selector)
+ action_runner.WaitForJavaScriptCondition(
+ 'window.Chorus.Comments.collection.length > 0')
petrcermak 2015/08/26 09:33:50 This line should be indented 4 spaces (+2)
bashi 2015/08/28 01:49:07 Done.
+
+
+class GmailPage(BlinkMemoryMobilePage):
+ def __init__(self, page_set):
+ super(GmailPage, self).__init__(
+ url='https://mail.google.com/mail/',
petrcermak 2015/08/26 09:33:50 Lines 45-47 should be indented 4 spaces (+2)
bashi 2015/08/28 01:49:07 Done.
+ page_set=page_set,
+ name='Gmail')
+
+ def RunNavigateSteps(self, action_runner):
+ google_login.LoginGoogleAccount(action_runner, 'google',
+ self.credentials_path)
+ super(GmailPage, self).RunNavigateSteps(action_runner)
+ action_runner.WaitForNavigate()
Sami 2015/08/26 10:03:26 RunNavigateSteps already waits for the navigation
bashi 2015/08/28 01:49:07 Gmail login page redirects multiple times so I nee
+ action_runner.WaitForElement(selector='#apploadingdiv')
+ action_runner.WaitForJavaScriptCondition(
+ 'document.querySelector("#apploadingdiv").style.opacity == "0"')
petrcermak 2015/08/26 09:33:50 This line should be indented 4 spaces (+2)
bashi 2015/08/28 01:49:08 Done.
+
+
+class BlinkMemoryMobilePageSet(story.StorySet):
+ """Key mobile sites for Blink memory reduction."""
+
+ def __init__(self):
+ super(BlinkMemoryMobilePageSet, self).__init__(
+ archive_data_file='data/blink_memory_mobile.json',
petrcermak 2015/08/26 09:33:50 Lines 64-65 should be indented 4 spaces (+2)
bashi 2015/08/28 01:49:07 Done.
+ cloud_storage_bucket=story.PARTNER_BUCKET)
+
+ # Why: High rate of Blink's memory consumption rate.
petrcermak 2015/08/26 09:33:50 I don't understand what's the difference between "
bashi 2015/08/28 01:49:07 There are some components in renderer process; bli
+ self.AddStory(BlinkMemoryMobilePage(
+ url='https://www.pinterest.com',
petrcermak 2015/08/26 09:33:50 Lines 69-71 should be indented 4 spaces (+2)
bashi 2015/08/28 01:49:07 Done.
+ page_set=self,
+ name='Pinterest'))
+ self.AddStory(key_mobile_sites_pages.FacebookPage(self))
+ # TODO(bashi): Enable TheVergePage. http://crbug.com/522381
+ # self.AddStory(TheVergePage(self))
+
+ # Why: High rate of Blink's memory comsumption rate on low-RAM devices.
+ self.AddStory(BlinkMemoryMobilePage(
+ url='http://en.m.wikipedia.org/wiki/Wikipedia',
petrcermak 2015/08/26 09:33:51 ditto (spaces)
bashi 2015/08/28 01:49:07 Done.
+ page_set=self,
+ name='Wikipedia (1 tab) - delayed scroll start',))
+ self.AddStory(BlinkMemoryMobilePage(
+ url='http://www.reddit.com/r/programming/comments/1g96ve',
petrcermak 2015/08/26 09:33:50 ditto (spaces)
bashi 2015/08/28 01:49:08 Done.
+ page_set=self,
+ name='Reddit'))
+ self.AddStory(BlinkMemoryMobilePage(
+ # pylint: disable=line-too-long
petrcermak 2015/08/26 09:33:50 ditto (spaces)
Sami 2015/08/26 10:03:25 Also please break the long line instead of turning
bashi 2015/08/28 01:49:08 I prefer not splitting as described above.
bashi 2015/08/28 01:49:08 Done.
+ url='https://en.blog.wordpress.com/2012/09/04/freshly-pressed-editors-picks-for-august-2012/',
+ page_set=self,
+ name='Wordpress'))
+
+ # Why: Renderer memory usage is high.
+ self.AddStory(BlinkMemoryMobilePage(
+ url='http://worldjournal.com/',
petrcermak 2015/08/26 09:33:50 ditto (spaces)
bashi 2015/08/28 01:49:07 Done.
+ page_set=self,
+ name='Worldjournal'))
+
+ # Why: Key products.
+ self.AddStory(GmailPage(page_set=self))
+ self.AddStory(BlinkMemoryMobilePage(
+ # pylint: disable=line-too-long
+ url='http://googlewebmastercentral.blogspot.com/2015/04/rolling-out-mobile-friendly-update.html?m=1',
petrcermak 2015/08/26 09:33:50 ditto (spaces)
bashi 2015/08/28 01:49:07 Done.
+ page_set=self,
+ name='Blogger'))
+ self.AddStory(BlinkMemoryMobilePage(
+ # pylint: disable=line-too-long
petrcermak 2015/08/26 09:33:50 ditto (spaces)
bashi 2015/08/28 01:49:07 Done.
+ url='https://plus.google.com/app/basic/110031535020051778989/posts?source=apppromo',
+ page_set=self,
+ name='GooglePlus'))

Powered by Google App Engine
This is Rietveld 408576698