Chromium Code Reviews| Index: tools/resource_prefetch_predictor/generate_database.py |
| diff --git a/tools/resource_prefetch_predictor/generate_database.py b/tools/resource_prefetch_predictor/generate_database.py |
| index 60dfd5fa629b8a7b3903307366d04e2f2db4d79b..39f8c35da5a60aae10f13881af145bfb9c9a22fd 100755 |
| --- a/tools/resource_prefetch_predictor/generate_database.py |
| +++ b/tools/resource_prefetch_predictor/generate_database.py |
| @@ -6,6 +6,7 @@ |
| """Loads a set of web pages several times on a device, and extracts the |
| predictor database. |
| +Also generates a WPR archive for another page. |
|
pasko
2016/12/12 18:07:09
Perhaps then makes sense to rename to generate_tes
Benoit L
2016/12/14 17:39:39
Yes, this is the case.
pasko
2016/12/14 19:38:33
Then git mv generate_{database,test_data}.py sound
Benoit L
2016/12/16 14:27:00
Done.
|
| """ |
| import argparse |
| @@ -24,13 +25,14 @@ sys.path.append(os.path.join(_SRC_PATH, 'build', 'android')) |
| import devil_chromium |
| sys.path.append(os.path.join(_SRC_PATH, 'tools', 'android', 'loading')) |
| +import device_setup |
| from options import OPTIONS |
| import page_track |
| import prefetch_predictor_common |
| -_PAGE_LOAD_TIMEOUT = 20 |
| +_PAGE_LOAD_TIMEOUT = 40 |
| def _CreateArgumentParser(): |
| @@ -43,14 +45,16 @@ def _CreateArgumentParser(): |
| '(one per line). URLs can be repeated.') |
| parser.add_argument('--output_filename', |
| help='File to store the database in.') |
| + parser.add_argument('--test_url', help='URL to record an archive of.') |
| + parser.add_argument('--wpr_archive', help='WPR archive path.') |
| parser.add_argument('--url_repeat', |
| help=('Number of times each URL in the input ' |
| - 'file is loaded.'), |
| - default=3) |
| + 'file is loaded.'), default=3) |
| return parser |
| -def _Go(chrome_controller, urls_filename, output_filename, repeats): |
| +def _GenerateDatabase(chrome_controller, urls_filename, output_filename, |
| + repeats): |
| urls = [] |
| with open(urls_filename) as f: |
| urls = [line.strip() for line in f.readlines()] |
| @@ -71,6 +75,16 @@ def _Go(chrome_controller, urls_filename, output_filename, repeats): |
| output_filename) |
| +def _GenerateWprArchive(device, url, archive_path): |
| + with device_setup.RemoteWprHost(device, archive_path, record=True) as wpr: |
| + chrome_controller = prefetch_predictor_common.Setup( |
| + device, wpr.chrome_args) |
| + with chrome_controller.Open() as connection: |
| + page_track.PageTrack(connection) # Registers the listeners. |
| + connection.MonitorUrl(url, timeout_seconds=_PAGE_LOAD_TIMEOUT, |
| + stop_delay_multiplier=1.5) |
| + |
| + |
| def main(): |
| devil_chromium.Initialize() |
| logging.basicConfig(level=logging.INFO) |
| @@ -86,8 +100,9 @@ def main(): |
| chrome_controller = prefetch_predictor_common.Setup( |
| device, ['--speculative-resource-prefetching=learning']) |
| - _Go(chrome_controller, args.urls_filename, args.output_filename, |
| - int(args.url_repeat)) |
| + _GenerateDatabase(chrome_controller, args.urls_filename, |
| + args.output_filename, int(args.url_repeat)) |
| + _GenerateWprArchive(device, args.test_url, args.wpr_archive) |
| if __name__ == '__main__': |