| OLD | NEW |
| 1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import os | 5 import os |
| 6 | 6 |
| 7 from measurements import PageTestMeasurement |
| 7 from telemetry import benchmark | 8 from telemetry import benchmark |
| 8 from telemetry.core import util | 9 from telemetry.core import util |
| 9 from telemetry.page import page_set | 10 from telemetry.page import page_set |
| 10 from telemetry.page import page_test | |
| 11 from telemetry.value import list_of_scalar_values | 11 from telemetry.value import list_of_scalar_values |
| 12 | 12 |
| 13 | 13 |
| 14 BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(), | 14 BLINK_PERF_BASE_DIR = os.path.join(util.GetChromiumSrcDir(), |
| 15 'third_party', 'WebKit', 'PerformanceTests') | 15 'third_party', 'WebKit', 'PerformanceTests') |
| 16 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') | 16 SKIPPED_FILE = os.path.join(BLINK_PERF_BASE_DIR, 'Skipped') |
| 17 | 17 |
| 18 | 18 |
| 19 def _CreatePageSetFromPath(path, skipped_file): | 19 def _CreatePageSetFromPath(path, skipped_file): |
| 20 assert os.path.exists(path) | 20 assert os.path.exists(path) |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 skipped.append(skipped_path.replace('/', os.sep)) | 52 skipped.append(skipped_path.replace('/', os.sep)) |
| 53 _AddDir(path, tuple(skipped)) | 53 _AddDir(path, tuple(skipped)) |
| 54 else: | 54 else: |
| 55 _AddPage(path) | 55 _AddPage(path) |
| 56 ps = page_set.PageSet(file_path=os.getcwd()+os.sep, serving_dirs=serving_dirs) | 56 ps = page_set.PageSet(file_path=os.getcwd()+os.sep, serving_dirs=serving_dirs) |
| 57 for url in page_urls: | 57 for url in page_urls: |
| 58 ps.AddPageWithDefaultRunNavigate(url) | 58 ps.AddPageWithDefaultRunNavigate(url) |
| 59 return ps | 59 return ps |
| 60 | 60 |
| 61 | 61 |
| 62 class _BlinkPerfMeasurement(page_test.PageTest): | 62 class _BlinkPerfMeasurement(PageTestMeasurement): |
| 63 """Tuns a blink performance test and reports the results.""" | 63 """Tuns a blink performance test and reports the results.""" |
| 64 def __init__(self): | 64 def __init__(self): |
| 65 super(_BlinkPerfMeasurement, self).__init__('') | 65 super(_BlinkPerfMeasurement, self).__init__('') |
| 66 with open(os.path.join(os.path.dirname(__file__), | 66 with open(os.path.join(os.path.dirname(__file__), |
| 67 'blink_perf.js'), 'r') as f: | 67 'blink_perf.js'), 'r') as f: |
| 68 self._blink_perf_js = f.read() | 68 self._blink_perf_js = f.read() |
| 69 | 69 |
| 70 def WillNavigateToPage(self, page, tab): | 70 def WillNavigateToPage(self, page, tab): |
| 71 page.script_to_evaluate_on_commit = self._blink_perf_js | 71 page.script_to_evaluate_on_commit = self._blink_perf_js |
| 72 | 72 |
| 73 def CustomizeBrowserOptions(self, options): | 73 def CustomizeBrowserOptions(self, options): |
| 74 super(_BlinkPerfMeasurement, self).CustomizeBrowserOptions(options) |
| 74 options.AppendExtraBrowserArgs([ | 75 options.AppendExtraBrowserArgs([ |
| 75 '--js-flags=--expose_gc', | 76 '--js-flags=--expose_gc', |
| 76 '--enable-experimental-web-platform-features', | 77 '--enable-experimental-web-platform-features', |
| 77 '--disable-gesture-requirement-for-media-playback' | 78 '--disable-gesture-requirement-for-media-playback' |
| 78 ]) | 79 ]) |
| 79 | 80 |
| 80 def ValidateAndMeasurePage(self, page, tab, results): | 81 def ValidateAndMeasurePage(self, page, tab, results): |
| 82 super(_BlinkPerfMeasurement, self).ValidateAndMeasurePage( |
| 83 page, tab, results) |
| 81 tab.WaitForJavaScriptExpression('testRunner.isDone', 600) | 84 tab.WaitForJavaScriptExpression('testRunner.isDone', 600) |
| 82 | 85 |
| 83 log = tab.EvaluateJavaScript('document.getElementById("log").innerHTML') | 86 log = tab.EvaluateJavaScript('document.getElementById("log").innerHTML') |
| 84 | 87 |
| 85 for line in log.splitlines(): | 88 for line in log.splitlines(): |
| 86 if not line.startswith('values '): | 89 if not line.startswith('values '): |
| 87 continue | 90 continue |
| 88 parts = line.split() | 91 parts = line.split() |
| 89 values = [float(v.replace(',', '')) for v in parts[1:-1]] | 92 values = [float(v.replace(',', '')) for v in parts[1:-1]] |
| 90 units = parts[-1] | 93 units = parts[-1] |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 return _CreatePageSetFromPath(path, SKIPPED_FILE) | 208 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| 206 | 209 |
| 207 | 210 |
| 208 class BlinkPerfXMLHttpRequest(benchmark.Benchmark): | 211 class BlinkPerfXMLHttpRequest(benchmark.Benchmark): |
| 209 tag = 'xml_http_request' | 212 tag = 'xml_http_request' |
| 210 test = _BlinkPerfMeasurement | 213 test = _BlinkPerfMeasurement |
| 211 | 214 |
| 212 def CreatePageSet(self, options): | 215 def CreatePageSet(self, options): |
| 213 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') | 216 path = os.path.join(BLINK_PERF_BASE_DIR, 'XMLHttpRequest') |
| 214 return _CreatePageSetFromPath(path, SKIPPED_FILE) | 217 return _CreatePageSetFromPath(path, SKIPPED_FILE) |
| OLD | NEW |