1a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch# Copyright 2014 The Chromium Authors. All rights reserved. 2a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch# Use of this source code is governed by a BSD-style license that can be 3a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch# found in the LICENSE file. 4a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochfrom telemetry.page import page as page_module 5a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochfrom telemetry.page import page_set as page_set_module 6a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 7a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)class ToughEnergyCasesPage(page_module.Page): 9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 10a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch def __init__(self, url, page_set): 11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch super(ToughEnergyCasesPage, self).__init__(url=url, page_set=page_set) 12a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch self.credentials_path = 'data/credentials.json' 13a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass CodePenPage(ToughEnergyCasesPage): 15a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci def __init__(self, url, page_set): 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci super(CodePenPage, self).__init__(url, page_set) 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.credentials = 'codepen' 19a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 20a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass GooglePage(ToughEnergyCasesPage): 22a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci def __init__(self, url, page_set): 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci super(GooglePage, self).__init__( 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci url=url, 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci page_set=page_set) 27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch self.credentials = 'google' 28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch def RunNavigateSteps(self, action_runner): 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) action_runner.NavigateToPage(self) 31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) action_runner.WaitForJavaScriptCondition( 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 'window.gmonkey !== undefined &&' 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 'document.getElementById("gb") !== null') 34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 35a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 36a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass ToughEnergyCasesPageSet(page_set_module.PageSet): 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci """Pages for measuring Chrome power draw.""" 38a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 39a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch def __init__(self): 40a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch super(ToughEnergyCasesPageSet, self).__init__( 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci archive_data_file='data/tough_energy_cases.json', 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bucket=page_set_module.PUBLIC_BUCKET, 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci credentials_path='data/credentials.json') 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: productivity, top google properties 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(GooglePage('https://mail.google.com/mail/', self)) 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Disabled: pegs CPU too much to get meaningful results. 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: Image constantly changed in the background, above the fold 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # self.AddPage(CodePenPage( 511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # 'http://codepen.io/testificate364/debug/eIutG', self)) 521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 531320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Disabled: pegs CPU too much to get meaningful results. 541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: Image constantly changed in the background, below the fold 551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # self.AddPage(CodePenPage( 561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # 'http://codepen.io/testificate364/debug/zcDdv', self)) 571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: CSS Animation, above the fold 591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/nrbDc', self)) 611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: CSS Animation, below the fold 631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 641320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/fhKCg', self)) 651320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 661320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: requestAnimationFrame, above the fold 671320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 681320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/paJhg',self)) 691320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 701320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: requestAnimationFrame, below the fold 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/yaosK', self)) 731320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 741320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: setTimeout animation, above the fold 751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 761320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/DLbxg', self)) 771320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 781320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: setTimeout animation, below the fold 791320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 801320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/kFvpd', self)) 811320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 821320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: setInterval animation, above the fold 831320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 841320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/lEhyw', self)) 851320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 861320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: setInterval animation, below the fold 871320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 881320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/zhgBD', self)) 891320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 901320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: Animated GIF, above the fold 911320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 921320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/jetyn', self)) 931320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 941320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: Animated GIF, below the fold 951320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 961320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/Kvdxs', self)) 971320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 981320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: HTML5 video, above the fold 991320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 1001320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/lJAiH', self)) 1011320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1021320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: HTML5 video, below the fold 1031320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 1041320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/EFceH', self)) 1051320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1061320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Disabled: pegs CPU too much to get meaningful results. 1071320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: PostMessage between frames, above the fold 1081320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # self.AddPage(CodePenPage( 1091320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # 'http://codepen.io/testificate364/debug/pgBHu', self)) 1101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Disabled: pegs CPU too much to get meaningful results. 1121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: Asynchronous XHR continually running 1131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # self.AddPage(CodePenPage( 1141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # 'http://codepen.io/testificate364/debug/iwAfJ', self)) 1151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Disabled: pegs CPU too much to get meaningful results. 1171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: Web Worker continually running 1181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # self.AddPage(CodePenPage( 1191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # 'http://codepen.io/testificate364/debug/ckItK', self)) 1201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: flash video 1221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 1231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/slBue', self)) 1241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 1251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci # Why: Blank page in the foreground 1261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.AddPage(CodePenPage( 1271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 'http://codepen.io/testificate364/debug/HdIgr', self)) 128