OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # | 2 # |
3 # Copyright 2016 The Chromium Authors. All rights reserved. | 3 # Copyright 2016 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 """Loads a web page with speculative prefetch, and collects loading metrics.""" | 7 """Loads a web page with speculative prefetch, and collects loading metrics.""" |
8 | 8 |
9 import argparse | 9 import argparse |
10 import logging | 10 import logging |
(...skipping 16 matching lines...) Expand all Loading... |
27 | 27 |
28 sys.path.append(os.path.join(_SRC_PATH, 'build', 'android')) | 28 sys.path.append(os.path.join(_SRC_PATH, 'build', 'android')) |
29 import devil_chromium | 29 import devil_chromium |
30 | 30 |
31 sys.path.append(os.path.join(_SRC_PATH, 'third_party', 'catapult', 'devil')) | 31 sys.path.append(os.path.join(_SRC_PATH, 'third_party', 'catapult', 'devil')) |
32 from devil.android.sdk import intent | 32 from devil.android.sdk import intent |
33 | 33 |
34 import prefetch_predictor_common | 34 import prefetch_predictor_common |
35 | 35 |
36 | 36 |
37 _EXTERNAL_PREFETCH_FLAG = ( | |
38 '--speculative-resource-prefetching=enabled-external-only') | |
39 | |
40 | |
41 def _CreateArgumentParser(): | 37 def _CreateArgumentParser(): |
42 """Creates and returns the argument parser.""" | 38 """Creates and returns the argument parser.""" |
43 parser = argparse.ArgumentParser( | 39 parser = argparse.ArgumentParser( |
44 ('Loads a URL with the resource_prefetch_predictor and prints loading ' | 40 ('Loads a URL with the resource_prefetch_predictor and prints loading ' |
45 'metrics.'), parents=[OPTIONS.GetParentParser()]) | 41 'metrics.'), parents=[OPTIONS.GetParentParser()]) |
46 parser.add_argument('--device', help='Device ID') | 42 parser.add_argument('--device', help='Device ID') |
47 parser.add_argument('--database', | 43 parser.add_argument('--database', |
48 help=('File containing the predictor database, as ' | 44 help=('File containing the predictor database, as ' |
49 'obtained from generate_database.py.')) | 45 'obtained from generate_database.py.')) |
50 parser.add_argument('--url', help='URL to load.') | 46 parser.add_argument('--url', help='URL to load.') |
(...skipping 16 matching lines...) Expand all Loading... |
67 chrome_package = OPTIONS.ChromePackage() | 63 chrome_package = OPTIONS.ChromePackage() |
68 device.ForceStop(chrome_package.package) | 64 device.ForceStop(chrome_package.package) |
69 chrome_controller.ResetBrowserState() | 65 chrome_controller.ResetBrowserState() |
70 device_database_filename = prefetch_predictor_common.DatabaseDevicePath() | 66 device_database_filename = prefetch_predictor_common.DatabaseDevicePath() |
71 owner = group = None | 67 owner = group = None |
72 | 68 |
73 # Make sure that the speculative prefetch predictor is enabled to ensure | 69 # Make sure that the speculative prefetch predictor is enabled to ensure |
74 # that the disk database is re-created. | 70 # that the disk database is re-created. |
75 command_line_path = '/data/local/tmp/chrome-command-line' | 71 command_line_path = '/data/local/tmp/chrome-command-line' |
76 with device_setup.FlagReplacer( | 72 with device_setup.FlagReplacer( |
77 device, command_line_path, ['--disable-fre', _EXTERNAL_PREFETCH_FLAG]): | 73 device, command_line_path, ['--disable-fre']): |
78 # Launch Chrome for the first time to recreate the local state. | 74 # Launch Chrome for the first time to recreate the local state. |
79 launch_intent = intent.Intent( | 75 launch_intent = intent.Intent( |
80 action='android.intent.action.MAIN', | 76 action='android.intent.action.MAIN', |
81 package=chrome_package.package, | 77 package=chrome_package.package, |
82 activity=chrome_package.activity) | 78 activity=chrome_package.activity) |
83 device.StartActivity(launch_intent, blocking=True) | 79 device.StartActivity(launch_intent, blocking=True) |
84 time.sleep(5) | 80 time.sleep(5) |
85 device.ForceStop(chrome_package.package) | 81 device.ForceStop(chrome_package.package) |
86 assert device.FileExists(device_database_filename) | 82 assert device.FileExists(device_database_filename) |
87 stats = device.StatPath(device_database_filename) | 83 stats = device.StatPath(device_database_filename) |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
153 while True: | 149 while True: |
154 delay = delays[random.randint(0, len(delays) - 1)] | 150 delay = delays[random.randint(0, len(delays) - 1)] |
155 _RunOnce(device, args.database, args.url, delay, args.output_filename, | 151 _RunOnce(device, args.database, args.url, delay, args.output_filename, |
156 args.wpr_archive, args.network_condition) | 152 args.wpr_archive, args.network_condition) |
157 if args.once: | 153 if args.once: |
158 return | 154 return |
159 | 155 |
160 | 156 |
161 if __name__ == '__main__': | 157 if __name__ == '__main__': |
162 main() | 158 main() |
OLD | NEW |