The net predictor learns about domains associated with navigations in order to issue DNS resolution requests, and preconnects. It is currently un-coordinated with other parts of the stack. This bug tracks work aimed at improving the predictor.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a72556982dcf08c91239167f2a5cd0e1b7f50ea8 commit a72556982dcf08c91239167f2a5cd0e1b7f50ea8 Author: lizeb <lizeb@chromium.org> Date: Wed Apr 12 15:36:35 2017 predictors: Add origin learning. This CL makes the resource predictor aware of origin requests made while loading a page. It only adds the data collection, no fetching is enabled yet, and the collection is not enabled outside of tests. Changes: - Adds a new database table to track origin requests - Adds a new protocol buffer, loading and storing logic - All redirects are now tracked as they cause origin requests - No-store resources are tracked as well, only to collect origin data. BUG= 699080 Review-Url: https://codereview.chromium.org/2796783004 Cr-Commit-Position: refs/heads/master@{#464035} [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_common.cc [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_common.h [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_common_unittest.cc [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_predictor.cc [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_predictor.h [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_predictor.proto [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_predictor_tables.cc [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_predictor_tables.h [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_predictor_tables_unittest.cc [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_predictor_test_util.cc [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_predictor_test_util.h [modify] https://crrev.com/a72556982dcf08c91239167f2a5cd0e1b7f50ea8/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc
+alexilin@chromium.org
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a457ee38bf4433cabb4c27c66f545cf5a0b7bc8e commit a457ee38bf4433cabb4c27c66f545cf5a0b7bc8e Author: lizeb <lizeb@chromium.org> Date: Thu Apr 13 10:06:53 2017 predictors: Enable origin learning with a flag. BUG= 699080 Review-Url: https://codereview.chromium.org/2815103002 Cr-Commit-Position: refs/heads/master@{#464365} [modify] https://crrev.com/a457ee38bf4433cabb4c27c66f545cf5a0b7bc8e/chrome/browser/predictors/resource_prefetch_common.cc [modify] https://crrev.com/a457ee38bf4433cabb4c27c66f545cf5a0b7bc8e/chrome/browser/predictors/resource_prefetch_common.h [modify] https://crrev.com/a457ee38bf4433cabb4c27c66f545cf5a0b7bc8e/chrome/browser/predictors/resource_prefetch_common_unittest.cc [modify] https://crrev.com/a457ee38bf4433cabb4c27c66f545cf5a0b7bc8e/chrome/browser/predictors/resource_prefetch_predictor.cc [modify] https://crrev.com/a457ee38bf4433cabb4c27c66f545cf5a0b7bc8e/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/839dfcedb91dcfc8c5baded9be2855e11ad24bac commit 839dfcedb91dcfc8c5baded9be2855e11ad24bac Author: lizeb <lizeb@chromium.org> Date: Wed Apr 19 13:03:41 2017 predictors: Use several hosts in resource_prefetch_predictor tests. All resources were served either out of the main resource domain. Adding diversity is required to test the origin prediction mode of the predictor. BUG= 699080 Review-Url: https://codereview.chromium.org/2820393002 Cr-Commit-Position: refs/heads/master@{#465568} [modify] https://crrev.com/839dfcedb91dcfc8c5baded9be2855e11ad24bac/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc [modify] https://crrev.com/839dfcedb91dcfc8c5baded9be2855e11ad24bac/chrome/test/data/predictors/html_subresources.html
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2a316a1b17dfee5e0689a03d5fccf11247592cad commit 2a316a1b17dfee5e0689a03d5fccf11247592cad Author: lizeb <lizeb@chromium.org> Date: Wed Apr 19 15:17:50 2017 predictors: Update the database dumping tool to support Origins. Example output: host: fr.m.wikipedia.org last_visit_time: 2017-04-19 13:54:14 origins: origin: https://upload.wikimedia.org/ number_of_hits: 3 number_of_misses: 2 consecutive_misses: 1 average_position: 2.375000 always_access_network: False accessed_network: True origin: https://fr.m.wikipedia.org/ number_of_hits: 5 number_of_misses: 0 consecutive_misses: 0 average_position: 1.000000 always_access_network: False accessed_network: False BUG= 699080 Review-Url: https://codereview.chromium.org/2827043002 Cr-Commit-Position: refs/heads/master@{#465611} [modify] https://crrev.com/2a316a1b17dfee5e0689a03d5fccf11247592cad/tools/resource_prefetch_predictor/README.md [modify] https://crrev.com/2a316a1b17dfee5e0689a03d5fccf11247592cad/tools/resource_prefetch_predictor/prefetch_predictor_tool.py
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/09a6f3e17c2902fa96d2c069207e8c4e2a8cfbfc commit 09a6f3e17c2902fa96d2c069207e8c4e2a8cfbfc Author: Alexandr Ilin <alexilin@chromium.org> Date: Thu Jun 22 15:24:37 2017 predictors: Display origin table in chrome://predictors Bug: 699080 Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation Change-Id: I812f16e77a3722a8434c751716b0654f0f69fa9d Reviewed-on: https://chromium-review.googlesource.com/543340 Reviewed-by: Bernhard Bauer <bauerb@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#481537} [modify] https://crrev.com/09a6f3e17c2902fa96d2c069207e8c4e2a8cfbfc/chrome/browser/resources/predictors/autocomplete_action_predictor.js [modify] https://crrev.com/09a6f3e17c2902fa96d2c069207e8c4e2a8cfbfc/chrome/browser/resources/predictors/resource_prefetch_predictor.html [modify] https://crrev.com/09a6f3e17c2902fa96d2c069207e8c4e2a8cfbfc/chrome/browser/resources/predictors/resource_prefetch_predictor.js [modify] https://crrev.com/09a6f3e17c2902fa96d2c069207e8c4e2a8cfbfc/chrome/browser/ui/webui/predictors/predictors_handler.cc [modify] https://crrev.com/09a6f3e17c2902fa96d2c069207e8c4e2a8cfbfc/chrome/browser/ui/webui/predictors/predictors_handler.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/83c94e38d262ede5eac3c72c4ea8cfc66c948549 commit 83c94e38d262ede5eac3c72c4ea8cfc66c948549 Author: Alexandr Ilin <alexilin@chromium.org> Date: Mon Jun 26 17:39:59 2017 predictors: Predict origins for preconnect and preresolve. This CL adds PredictPreconnectOrigins() function to ResourcePrefetchPredictor. This function uses the predictor database to provide a list of origins to preresolve and preconnect to. Bug: 699080 Change-Id: Ic6532a0e409b9c4ffbfe521d0962c2f0fe504852 Reviewed-on: https://chromium-review.googlesource.com/543044 Reviewed-by: Benoit L <lizeb@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#482309} [modify] https://crrev.com/83c94e38d262ede5eac3c72c4ea8cfc66c948549/chrome/browser/predictors/loading_test_util.cc [modify] https://crrev.com/83c94e38d262ede5eac3c72c4ea8cfc66c948549/chrome/browser/predictors/loading_test_util.h [modify] https://crrev.com/83c94e38d262ede5eac3c72c4ea8cfc66c948549/chrome/browser/predictors/resource_prefetch_predictor.cc [modify] https://crrev.com/83c94e38d262ede5eac3c72c4ea8cfc66c948549/chrome/browser/predictors/resource_prefetch_predictor.h [modify] https://crrev.com/83c94e38d262ede5eac3c72c4ea8cfc66c948549/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8e8aa98f3b4b67412dc9d2a842d457f40b12caad commit 8e8aa98f3b4b67412dc9d2a842d457f40b12caad Author: lizeb <lizeb@chromium.org> Date: Tue Jun 27 09:30:25 2017 android: Disable the startup DNS resolutions. On all platforms, Chrome observes the first requests at startup and speculatively starts DNS resolution for these at the next startup. It has limited effect on Android, as subsequent startups are likely to be different, due to the lack of homepage and pinned tabs. Furthermore, it can tie up to 3 threads on the WorkerPool thread pool, as DNS resolution is synchronous on Android. This thread pool is also used for certificate validation for instance. BUG= 699080 Review-Url: https://codereview.chromium.org/2950533002 Cr-Commit-Position: refs/heads/master@{#482583} [modify] https://crrev.com/8e8aa98f3b4b67412dc9d2a842d457f40b12caad/chrome/browser/net/predictor.cc [modify] https://crrev.com/8e8aa98f3b4b67412dc9d2a842d457f40b12caad/chrome/browser/net/predictor.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b23adee86fdfa5d15dc82f0753ae13aed5c6e13a commit b23adee86fdfa5d15dc82f0753ae13aed5c6e13a Author: Alexandr Ilin <alexilin@chromium.org> Date: Wed Jun 28 14:43:58 2017 predictors: Create a feature for Glowplug preconnect. This CL adds a new base::Feature for experimenting with the preconnect implementation based on the Glowplug database. The future experiment for this feature should also disable "NetworkPrediction" feature to avoid conficts with the net::Predictor implementation. Bug: 699080 Change-Id: Ib7ce2b1db704b1436bd72662c92954b6aaa61246 Reviewed-on: https://chromium-review.googlesource.com/550057 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Cr-Commit-Position: refs/heads/master@{#482983} [modify] https://crrev.com/b23adee86fdfa5d15dc82f0753ae13aed5c6e13a/chrome/browser/predictors/loading_predictor_config.cc [modify] https://crrev.com/b23adee86fdfa5d15dc82f0753ae13aed5c6e13a/chrome/browser/predictors/loading_predictor_config.h [modify] https://crrev.com/b23adee86fdfa5d15dc82f0753ae13aed5c6e13a/chrome/browser/predictors/loading_predictor_factory.cc [modify] https://crrev.com/b23adee86fdfa5d15dc82f0753ae13aed5c6e13a/chrome/browser/predictors/predictor_database.cc [modify] https://crrev.com/b23adee86fdfa5d15dc82f0753ae13aed5c6e13a/chrome/browser/predictors/resource_prefetch_common.cc [modify] https://crrev.com/b23adee86fdfa5d15dc82f0753ae13aed5c6e13a/chrome/browser/predictors/resource_prefetch_common.h [modify] https://crrev.com/b23adee86fdfa5d15dc82f0753ae13aed5c6e13a/chrome/browser/predictors/resource_prefetch_common_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2f101843b59005a63e8cec25ee3572ac3ab88899 commit 2f101843b59005a63e8cec25ee3572ac3ab88899 Author: Alexandr Ilin <alexilin@chromium.org> Date: Fri Jul 07 12:13:25 2017 predictors: Support for several types of hints in LoadingPredictor. This CL adds a skeleton for preconnect and preresolve support in LoadingPredictor. Bug: 699080 Change-Id: Ib4d8752fe681827deae9b4986aac7d4ebc18eeb0 Reviewed-on: https://chromium-review.googlesource.com/555991 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Cr-Commit-Position: refs/heads/master@{#484893} [modify] https://crrev.com/2f101843b59005a63e8cec25ee3572ac3ab88899/chrome/browser/BUILD.gn [modify] https://crrev.com/2f101843b59005a63e8cec25ee3572ac3ab88899/chrome/browser/predictors/loading_predictor.cc [modify] https://crrev.com/2f101843b59005a63e8cec25ee3572ac3ab88899/chrome/browser/predictors/loading_predictor.h [add] https://crrev.com/2f101843b59005a63e8cec25ee3572ac3ab88899/chrome/browser/predictors/preconnect_manager.cc [add] https://crrev.com/2f101843b59005a63e8cec25ee3572ac3ab88899/chrome/browser/predictors/preconnect_manager.h [modify] https://crrev.com/2f101843b59005a63e8cec25ee3572ac3ab88899/chrome/browser/predictors/resource_prefetcher.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d1040a44743ed034ef14a910225a656b41022df4 commit d1040a44743ed034ef14a910225a656b41022df4 Author: Alexandr Ilin <alexilin@chromium.org> Date: Fri Jul 07 15:33:19 2017 predictors: Fix a bug in ResourcePrefetchPredictorTabHelper URLRequestSummary::request_url was unassigned for requests coming from the memory cache. This field is used only by the origin database that never was enabled in trunk yet. Bug: 699080 Change-Id: I51a39d7e27be5fefcd3d477057f069bbfe9e7ce6 Reviewed-on: https://chromium-review.googlesource.com/563383 Reviewed-by: Benoit L <lizeb@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#484935} [modify] https://crrev.com/d1040a44743ed034ef14a910225a656b41022df4/chrome/browser/predictors/resource_prefetch_predictor_tab_helper.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ae6f5b0776bf8d48d170d29622b401af74f550db commit ae6f5b0776bf8d48d170d29622b401af74f550db Author: Alexandr Ilin <alexilin@chromium.org> Date: Mon Jul 17 16:30:19 2017 predictors: Implement PreconnectManager This CL adds an implementation for PreconnectManager class together with tests. PreconnectManager is responsible for preresolving and preconnecting to origins based on the input list of URLs. Other changes: - Modification of argument type of methods content::{Preconnect,Preresolve}Url from context::ResourceContext* to net::URLRequestContextGetter*. - Adding missing LoadingPredictor::Shutdown() call in unittests + DCHECK that Shutdown() was actually called. Bug: 699080 Change-Id: I5c6a303e5d22c9027da59b266a7537194b286c0b Reviewed-on: https://chromium-review.googlesource.com/567189 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Matt Menke <mmenke@chromium.org> Reviewed-by: Achuith Bhandarkar <achuith@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Cr-Commit-Position: refs/heads/master@{#487107} [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/chrome/browser/chromeos/login/auth/auth_prewarmer.cc [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/chrome/browser/net/predictor.cc [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/chrome/browser/predictors/loading_predictor.cc [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/chrome/browser/predictors/loading_predictor_unittest.cc [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/chrome/browser/predictors/preconnect_manager.cc [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/chrome/browser/predictors/preconnect_manager.h [add] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/chrome/browser/predictors/preconnect_manager_unittest.cc [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/chrome/test/BUILD.gn [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/content/browser/loader/resource_hints_impl.cc [modify] https://crrev.com/ae6f5b0776bf8d48d170d29622b401af74f550db/content/public/browser/resource_hints.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/96813a4325ece1cbaab95ea1f5e5f7accc54375d commit 96813a4325ece1cbaab95ea1f5e5f7accc54375d Author: Alexandr Ilin <alexilin@chromium.org> Date: Tue Jul 18 10:05:18 2017 predictors: Move config check outside MaybeAdd* methods In the current state we skip preconnect even if prefetch is disabled because the check is inside MaybeAddPrefetch() method. We have prefetch data even if prefetching is disabled because LoadingPredictor uses common LEARNING mode. Bug: 699080 Change-Id: I48aef431bf0771e5c7e74b0b0dd164b77aab493c Reviewed-on: https://chromium-review.googlesource.com/570421 Reviewed-by: Benoit L <lizeb@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#487431} [modify] https://crrev.com/96813a4325ece1cbaab95ea1f5e5f7accc54375d/chrome/browser/predictors/loading_predictor.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a804f56dc476c965ab13b3ca131c4c4ca59e05d3 commit a804f56dc476c965ab13b3ca131c4c4ca59e05d3 Author: Alexandr Ilin <alexilin@chromium.org> Date: Wed Jul 19 10:28:41 2017 predictors: Don't initialize PreconnectManager with empty context. At the moment when LoadingPredictor is initialized the profile hasn't been fully initialized. Particularly, it doesn't have URLRequestContextGetter* set yet. That causes a bug because LoadingPredictor passes the context getter to the PreconnectManager constructor. This CL makes PreconnectManager initialization lazy to avoid this issue. Bug: 699080 Change-Id: Iace1c837506c0faf1bc3233bdf7406944d2b9241 Reviewed-on: https://chromium-review.googlesource.com/575970 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Cr-Commit-Position: refs/heads/master@{#487817} [modify] https://crrev.com/a804f56dc476c965ab13b3ca131c4c4ca59e05d3/chrome/browser/predictors/loading_predictor.cc [modify] https://crrev.com/a804f56dc476c965ab13b3ca131c4c4ca59e05d3/chrome/browser/predictors/loading_predictor.h [modify] https://crrev.com/a804f56dc476c965ab13b3ca131c4c4ca59e05d3/chrome/browser/predictors/preconnect_manager.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ec12b68f2df66c4759af7193fe9b2ae88ca06393 commit ec12b68f2df66c4759af7193fe9b2ae88ca06393 Author: Alexandr Ilin <alexilin@chromium.org> Date: Wed Aug 23 13:40:41 2017 predictors: Use LoadingPredictor for renderer hints. This CL redirects preconnect and preresolve hints from the renderer to the PreconnectManager if it is enabled. These hints are posted to the PreconncectManager directly to avoid IO->UI->IO thread hops. After the LoadingPredictor preconnects experiment will be done, renderer hints may be refactored to go directly to the content layer. This will enable the hints in the incognito mode. Bug: 699080 Change-Id: I791b154f94156f200e418d0da7d12d28e1caeee1 Reviewed-on: https://chromium-review.googlesource.com/618808 Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#496669} [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/predictors/loading_predictor.cc [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/predictors/loading_predictor.h [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/predictors/loading_predictor_config.cc [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/predictors/loading_predictor_config.h [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/predictors/preconnect_manager.cc [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/predictors/preconnect_manager.h [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/predictors/preconnect_manager_unittest.cc [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/predictors/resource_prefetch_common.cc [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/predictors/resource_prefetch_common.h [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/renderer_host/chrome_render_message_filter.cc [modify] https://crrev.com/ec12b68f2df66c4759af7193fe9b2ae88ca06393/chrome/browser/renderer_host/chrome_render_message_filter.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec commit 67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec Author: Alexandr Ilin <alexilin@chromium.org> Date: Wed Aug 30 11:38:04 2017 predictors: Collect stats from the PreconnectManager The PreconnectManager calls a Delegate to notify that all jobs are completed for a url. Now the PreconnectManager passes stats with this call that are used in LoadingStatsCollector to record preresolve and preconnect accuracy histograms. Bug: 699080 Change-Id: Id86e51dd49e8740f587468dc5aa06dc36a0a4d22 Reviewed-on: https://chromium-review.googlesource.com/632556 Reviewed-by: Jesse Doherty <jwd@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#498422} [modify] https://crrev.com/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec/chrome/browser/predictors/loading_predictor.cc [modify] https://crrev.com/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec/chrome/browser/predictors/loading_predictor.h [modify] https://crrev.com/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec/chrome/browser/predictors/loading_stats_collector.cc [modify] https://crrev.com/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec/chrome/browser/predictors/loading_stats_collector.h [modify] https://crrev.com/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec/chrome/browser/predictors/loading_stats_collector_unittest.cc [modify] https://crrev.com/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec/chrome/browser/predictors/preconnect_manager.cc [modify] https://crrev.com/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec/chrome/browser/predictors/preconnect_manager.h [modify] https://crrev.com/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec/chrome/browser/predictors/preconnect_manager_unittest.cc [modify] https://crrev.com/67b7765d989f218ac0e295e4fb7f1b6e9f15a9ec/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/39f85c226a3a65cd1e9013f916649f29b304477a commit 39f85c226a3a65cd1e9013f916649f29b304477a Author: Alexandr Ilin <alexilin@chromium.org> Date: Mon Sep 11 09:16:51 2017 predictors: The predictor origin learning histograms. This CL adds histograms for the predictor origin database learning metrics (precision, recall, count of predicted origins, redirect status). Bug: 699080 Change-Id: I2192eb93ffb01b98c9729aa0beb335cc3bbe4787 Reviewed-on: https://chromium-review.googlesource.com/645351 Reviewed-by: Jesse Doherty <jwd@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#500870} [modify] https://crrev.com/39f85c226a3a65cd1e9013f916649f29b304477a/chrome/browser/predictors/loading_predictor_unittest.cc [modify] https://crrev.com/39f85c226a3a65cd1e9013f916649f29b304477a/chrome/browser/predictors/loading_stats_collector.cc [modify] https://crrev.com/39f85c226a3a65cd1e9013f916649f29b304477a/chrome/browser/predictors/loading_stats_collector.h [modify] https://crrev.com/39f85c226a3a65cd1e9013f916649f29b304477a/chrome/browser/predictors/loading_stats_collector_unittest.cc [modify] https://crrev.com/39f85c226a3a65cd1e9013f916649f29b304477a/chrome/browser/predictors/loading_test_util.h [modify] https://crrev.com/39f85c226a3a65cd1e9013f916649f29b304477a/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/981f19ee713991969501c937191b39c87720767f commit 981f19ee713991969501c937191b39c87720767f Author: Alexandr Ilin <alexilin@chromium.org> Date: Mon Sep 18 11:43:41 2017 predictors: Add connect timing histogram to the LoadingPredictor. This CL adds a new LoadingPredictor.SubresourceConnectDuration histogram. This histogram records the time measured before starting DNS lookup until after the connection is complete for main frame subresources observed by the LoadingPredictor. Only resources that required network connection and happened before the first contentful paint are recorded. Bug: 699080 Change-Id: I9a383a01c99e80931bf6444d98eda1d95a2fcafe Reviewed-on: https://chromium-review.googlesource.com/666921 Reviewed-by: Matthew Cary <mattcary@chromium.org> Reviewed-by: Jesse Doherty <jwd@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#502554} [modify] https://crrev.com/981f19ee713991969501c937191b39c87720767f/chrome/browser/predictors/loading_data_collector.cc [modify] https://crrev.com/981f19ee713991969501c937191b39c87720767f/chrome/browser/predictors/loading_data_collector.h [modify] https://crrev.com/981f19ee713991969501c937191b39c87720767f/chrome/browser/predictors/loading_data_collector_unittest.cc [modify] https://crrev.com/981f19ee713991969501c937191b39c87720767f/chrome/browser/predictors/loading_stats_collector.cc [modify] https://crrev.com/981f19ee713991969501c937191b39c87720767f/chrome/browser/predictors/loading_stats_collector.h [modify] https://crrev.com/981f19ee713991969501c937191b39c87720767f/chrome/browser/predictors/loading_stats_collector_unittest.cc [modify] https://crrev.com/981f19ee713991969501c937191b39c87720767f/chrome/browser/predictors/loading_test_util.cc [modify] https://crrev.com/981f19ee713991969501c937191b39c87720767f/chrome/browser/predictors/loading_test_util.h [modify] https://crrev.com/981f19ee713991969501c937191b39c87720767f/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/53c505f23cb1a932cbd5d8cda2670d74e493ed34 commit 53c505f23cb1a932cbd5d8cda2670d74e493ed34 Author: Alexandr Ilin <alexilin@chromium.org> Date: Mon Sep 18 12:34:48 2017 predictors: Add learning-only mode for the speculative preconnect This CL also disables by default learning for prefetching and makes some cleanup in the LoadingPredictorConfig. Bug: 699080 Change-Id: I4378e56616f734117dc2a43d7c334c96fac70ce1 Reviewed-on: https://chromium-review.googlesource.com/668857 Reviewed-by: Matthew Cary <mattcary@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#502559} [modify] https://crrev.com/53c505f23cb1a932cbd5d8cda2670d74e493ed34/chrome/browser/predictors/loading_predictor_config.cc [modify] https://crrev.com/53c505f23cb1a932cbd5d8cda2670d74e493ed34/chrome/browser/predictors/loading_predictor_config.h [rename] https://crrev.com/53c505f23cb1a932cbd5d8cda2670d74e493ed34/chrome/browser/predictors/loading_predictor_config_unittest.cc [modify] https://crrev.com/53c505f23cb1a932cbd5d8cda2670d74e493ed34/chrome/browser/predictors/loading_test_util.cc [modify] https://crrev.com/53c505f23cb1a932cbd5d8cda2670d74e493ed34/chrome/browser/predictors/resource_prefetch_common.cc [modify] https://crrev.com/53c505f23cb1a932cbd5d8cda2670d74e493ed34/chrome/browser/predictors/resource_prefetch_predictor.cc [modify] https://crrev.com/53c505f23cb1a932cbd5d8cda2670d74e493ed34/chrome/test/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/656278f83d0bfe2f07e4a337ef65976751296223 commit 656278f83d0bfe2f07e4a337ef65976751296223 Author: Alexandr Ilin <alexilin@chromium.org> Date: Wed Sep 20 09:22:04 2017 predictors: Add page load timing histograms for preconnectable pages This CL adds two page load timing histograms that are recorded only for pages for which the LoadingPredictor predicts origins to preconnect and preresolve. Note that the histogram is recorded even if no actual preconnects were made, e.g. if the LoadingPredictor is in the learning-only mode. Bug: 699080 Change-Id: I8c4c0aec274d88dc89b259d71cbe7a064185e60d Reviewed-on: https://chromium-review.googlesource.com/668577 Reviewed-by: Matthew Cary <mattcary@chromium.org> Reviewed-by: Jesse Doherty <jwd@chromium.org> Reviewed-by: Josh Karlin <jkarlin@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#503093} [modify] https://crrev.com/656278f83d0bfe2f07e4a337ef65976751296223/chrome/browser/page_load_metrics/observers/loading_predictor_page_load_metrics_observer.cc [modify] https://crrev.com/656278f83d0bfe2f07e4a337ef65976751296223/chrome/browser/page_load_metrics/observers/loading_predictor_page_load_metrics_observer.h [modify] https://crrev.com/656278f83d0bfe2f07e4a337ef65976751296223/chrome/browser/page_load_metrics/observers/loading_predictor_page_load_metrics_observer_unittest.cc [modify] https://crrev.com/656278f83d0bfe2f07e4a337ef65976751296223/chrome/browser/predictors/resource_prefetch_predictor.cc [modify] https://crrev.com/656278f83d0bfe2f07e4a337ef65976751296223/chrome/browser/predictors/resource_prefetch_predictor.h [modify] https://crrev.com/656278f83d0bfe2f07e4a337ef65976751296223/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc [modify] https://crrev.com/656278f83d0bfe2f07e4a337ef65976751296223/tools/metrics/histograms/histograms.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3f176c1c34d928c12057bebfe5be734b52faa1f0 commit 3f176c1c34d928c12057bebfe5be734b52faa1f0 Author: Alexandr Ilin <alexilin@chromium.org> Date: Tue Sep 26 11:37:52 2017 predictors: Use a host as a key for inflight preresolves. This CL modifies PreconnectManager to use a host instead of full URL as a key for active PreresolveInfo. The CL also adds several DCHECKs to ensure that the PreconnectManager uses only shortened GURLs (origins) to issue requests. Bug: 699080 Change-Id: I9938de1fa5ad908c1df181b0cf88bac9691a9e06 Reviewed-on: https://chromium-review.googlesource.com/677455 Reviewed-by: Matthew Cary <mattcary@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#504340} [modify] https://crrev.com/3f176c1c34d928c12057bebfe5be734b52faa1f0/chrome/browser/predictors/preconnect_manager.cc [modify] https://crrev.com/3f176c1c34d928c12057bebfe5be734b52faa1f0/chrome/browser/predictors/preconnect_manager.h [modify] https://crrev.com/3f176c1c34d928c12057bebfe5be734b52faa1f0/chrome/browser/predictors/preconnect_manager_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ed567ae23c1096c70f000dafc0baad2ea5ac0723 commit ed567ae23c1096c70f000dafc0baad2ea5ac0723 Author: Alexandr Ilin <alexilin@chromium.org> Date: Wed Sep 27 20:41:51 2017 predictors: Use LoadingPredictor for omnibox hints. This CL redirects hints from the omnibox to the LoadingPredictor if it is enabled. For now the LoadingPredictor attempts only to preconnect in case of search query or preresolve otherwise to keep it consistent with the current behavior. Bug: 699080 Change-Id: I25593be62e751a6ff983b3e97f397985c77c6644 Reviewed-on: https://chromium-review.googlesource.com/675685 Reviewed-by: Matthew Cary <mattcary@chromium.org> Reviewed-by: Justin Donnelly <jdonnelly@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#504763} [modify] https://crrev.com/ed567ae23c1096c70f000dafc0baad2ea5ac0723/chrome/browser/predictors/loading_predictor.cc [modify] https://crrev.com/ed567ae23c1096c70f000dafc0baad2ea5ac0723/chrome/browser/predictors/loading_predictor.h [modify] https://crrev.com/ed567ae23c1096c70f000dafc0baad2ea5ac0723/chrome/browser/predictors/loading_predictor_config.cc [modify] https://crrev.com/ed567ae23c1096c70f000dafc0baad2ea5ac0723/chrome/browser/predictors/loading_predictor_config.h [modify] https://crrev.com/ed567ae23c1096c70f000dafc0baad2ea5ac0723/chrome/browser/predictors/loading_predictor_unittest.cc [modify] https://crrev.com/ed567ae23c1096c70f000dafc0baad2ea5ac0723/chrome/browser/predictors/preconnect_manager.cc [modify] https://crrev.com/ed567ae23c1096c70f000dafc0baad2ea5ac0723/chrome/browser/predictors/preconnect_manager.h [modify] https://crrev.com/ed567ae23c1096c70f000dafc0baad2ea5ac0723/chrome/browser/predictors/preconnect_manager_unittest.cc [modify] https://crrev.com/ed567ae23c1096c70f000dafc0baad2ea5ac0723/chrome/browser/ui/omnibox/chrome_omnibox_client.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f0500ed32d5bf1402af1977a25d479b2d0b8e56b commit f0500ed32d5bf1402af1977a25d479b2d0b8e56b Author: Alexandr Ilin <alexilin@chromium.org> Date: Wed Sep 27 21:12:36 2017 predictors: Add an about:flags entry for speculative preconnect. The speculative preconnect feature comes in three modes: * Learning - only the LoadingPredictor database construction is enabled. * Preconnect - the LoadingPredictor actually does preconnects leveraging the historical database. This mode also disables net::Predictor to avoid an interference between them. * No preconnect - disables both types of preconnects. This mode is useful for manual testing. Bug: 699080 Change-Id: I445583d937e57cd99f78ea6f4bc4134b2614c885 Reviewed-on: https://chromium-review.googlesource.com/684896 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Helen Li <xunjieli@chromium.org> Reviewed-by: Matthew Cary <mattcary@chromium.org> Cr-Commit-Position: refs/heads/master@{#504771} [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/chrome/browser/about_flags.cc [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/chrome/browser/flag_descriptions.cc [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/chrome/browser/flag_descriptions.h [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/chrome/browser/net/predictor.cc [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/chrome/browser/net/predictor.h [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/chrome/browser/net/predictor_unittest.cc [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/chrome/browser/predictors/loading_predictor_config.cc [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/chrome/browser/predictors/loading_predictor_config.h [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/chrome/browser/predictors/loading_predictor_config_unittest.cc [modify] https://crrev.com/f0500ed32d5bf1402af1977a25d479b2d0b8e56b/tools/metrics/histograms/enums.xml
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3b950aeae28ec523a6296ea39c1cb3e746d0f061 commit 3b950aeae28ec523a6296ea39c1cb3e746d0f061 Author: Alexandr Ilin <alexilin@chromium.org> Date: Thu Sep 28 15:45:44 2017 predictors: Add a shortcut for a history lookup This CL simplifies the learning part of the LoadingPredictor when URL-based learning is disabled by skipping a history DB lookup as well as skipping the update of ResourcePrefetchPredictor.DatabaseReadiness, which also would entail a history DB lookup. Bug: 699080 Change-Id: I46c2bf4482c291fa2ed5c64546b45118cb7b233b Reviewed-on: https://chromium-review.googlesource.com/686761 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Matthew Cary <mattcary@chromium.org> Cr-Commit-Position: refs/heads/master@{#505036} [modify] https://crrev.com/3b950aeae28ec523a6296ea39c1cb3e746d0f061/chrome/browser/predictors/resource_prefetch_predictor.cc [modify] https://crrev.com/3b950aeae28ec523a6296ea39c1cb3e746d0f061/chrome/browser/predictors/resource_prefetch_predictor_browsertest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bac09f352af1282d5cd4efc26d0b26a88f75442d commit bac09f352af1282d5cd4efc26d0b26a88f75442d Author: Alexandr Ilin <alexilin@chromium.org> Date: Fri Sep 29 17:47:08 2017 predictors: Reduce max number of tracked hosts. This CL changes a default LoadingPredictorConfig limit for a maximum number of tracked hosts. Since the whole database is loaded into the memory at startup, it'd be better to keep the database size reasonably small. New setting is closer to that is used in net::Predictor (see Predictor::kMaxReferrers with a comment). A number of maximum origins per entry also could be reconsidered after experimenting in canary in dev. Bug: 699080 Change-Id: Iae7ea78cda0910aba7ee4a7ad938cc0c1616e32a Reviewed-on: https://chromium-review.googlesource.com/692274 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Matthew Cary <mattcary@chromium.org> Cr-Commit-Position: refs/heads/master@{#505414} [modify] https://crrev.com/bac09f352af1282d5cd4efc26d0b26a88f75442d/chrome/browser/predictors/loading_predictor_config.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ca6c6cab81f3f8c612ef3cd2e8b5a66323dd979a commit ca6c6cab81f3f8c612ef3cd2e8b5a66323dd979a Author: Alexandr Ilin <alexilin@chromium.org> Date: Mon Oct 09 08:36:44 2017 predictors: Use LoadingPredictor for Android preconnect hints. This CL redirects preconnect hints from the Android WarmupManager to the LoadingPredictor if it is enabled. Bug: 699080 Change-Id: I2b57d7cbb9bdbf8fda54bcc3df0201f7cc794b0f Reviewed-on: https://chromium-review.googlesource.com/700444 Reviewed-by: Tommy Nyquist <nyquist@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#507338} [modify] https://crrev.com/ca6c6cab81f3f8c612ef3cd2e8b5a66323dd979a/chrome/browser/android/warmup_manager.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/27c39a5da65f96d851897b7ef67058acfa2d316f commit 27c39a5da65f96d851897b7ef67058acfa2d316f Author: Alexandr Ilin <alexilin@chromium.org> Date: Tue Oct 10 10:31:15 2017 predictors: Filter out some resources loaded from the memory cache. This CL adds an additional check for resources that were loaded from the memory cache. Specifically, we filter out resources having non-HTTP(S) scheme and resources with uninteresting resource type. Unfortunately, a tab helper doesn't get information about whether a resource came from a main frame or not. It'd be nice to plumb this data from a renderer. Bug: 699080 Change-Id: I90913f4cb88da95a454ad9445c01ee648449de4f Reviewed-on: https://chromium-review.googlesource.com/707135 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Cr-Commit-Position: refs/heads/master@{#507629} [modify] https://crrev.com/27c39a5da65f96d851897b7ef67058acfa2d316f/chrome/browser/predictors/loading_data_collector.cc [modify] https://crrev.com/27c39a5da65f96d851897b7ef67058acfa2d316f/chrome/browser/predictors/loading_data_collector.h [modify] https://crrev.com/27c39a5da65f96d851897b7ef67058acfa2d316f/chrome/browser/predictors/loading_data_collector_unittest.cc [modify] https://crrev.com/27c39a5da65f96d851897b7ef67058acfa2d316f/chrome/browser/predictors/resource_prefetch_predictor_tab_helper.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8833d9a9b6b99a1c035fac53998629aa2b513cda commit 8833d9a9b6b99a1c035fac53998629aa2b513cda Author: Alexandr Ilin <alexilin@chromium.org> Date: Thu Oct 12 14:30:16 2017 predictors: Preconnect to a main frame This CL adds two new things: * Puts a main frame origin on top of a preconnect list. It's done inside of SortOrigins() function. * Adds a URL passed in PrepareForPageLoad function to a preconnect list if it is not on top of the list already. It may happen in two cases: * The preconnect list is empty, i.e. the database doesn't have data for the current host. * The predictor thinks that a navigation will be redirected to a different host. Bug: 699080 Change-Id: Iabebe0fb31b2dbfdc5b67f9c973e10909905bcca Reviewed-on: https://chromium-review.googlesource.com/712934 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Cr-Commit-Position: refs/heads/master@{#508346} [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/loading_data_collector.cc [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/loading_data_collector_unittest.cc [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/loading_predictor.cc [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/loading_predictor_unittest.cc [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/loading_stats_collector_unittest.cc [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/loading_test_util.cc [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/resource_prefetch_predictor.cc [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/resource_prefetch_predictor.h [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/resource_prefetch_predictor_tables.cc [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/resource_prefetch_predictor_tables.h [modify] https://crrev.com/8833d9a9b6b99a1c035fac53998629aa2b513cda/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5cd8769a71173213c41c1e103eb941a5ae21b078 commit 5cd8769a71173213c41c1e103eb941a5ae21b078 Author: Alexandr Ilin <alexilin@chromium.org> Date: Fri Oct 13 16:16:10 2017 predictors: Add a test for an origins list truncation bug. The predictor truncates a list of origins if the length of the list is greater than some limit. The truncation code compared the length with a wrong constant, namely max_resources_per_entry instead of max_origins_per_entry, and then used another value for the truncation. As a result we got a negative value for the amount of elements to be truncated. Fortunatelly or not, the constants max_resources_per_entry and max_origins_per_entry are equal in production so the bug may appear only in tests. The bug itself was fixed in crrev.com/c/712934, this CL only adds a test to prevent regressions. Bug: 699080 Change-Id: Ia42e33aac0389262cb13300490c581598810bb8e Reviewed-on: https://chromium-review.googlesource.com/712754 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Cr-Commit-Position: refs/heads/master@{#508715} [modify] https://crrev.com/5cd8769a71173213c41c1e103eb941a5ae21b078/chrome/browser/predictors/loading_test_util.cc [modify] https://crrev.com/5cd8769a71173213c41c1e103eb941a5ae21b078/chrome/browser/predictors/resource_prefetch_predictor.h [modify] https://crrev.com/5cd8769a71173213c41c1e103eb941a5ae21b078/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e378a8f40efd70f0f138f16eb4a14a290261da86 commit e378a8f40efd70f0f138f16eb4a14a290261da86 Author: Alexandr Ilin <alexilin@chromium.org> Date: Fri Nov 10 07:54:20 2017 Enable SpeculativePreconnect Field Trial Testing The predictors::kSpeculativePreconnectFeature is explicitly disabled in net::Predictor browser tests because the LoadingPredictor if enabled intercepts all prefetch and preconnect coming from a renderer. WarmupManagerTest.testPreconnect() was expecting two connections to be opened but it's not the case for the LoadingPredictor, it opens only one connection. Bug: 699080 Change-Id: I73537c3a59818793e41c5741762fe675a4efa97f Reviewed-on: https://chromium-review.googlesource.com/754837 Reviewed-by: Ted Choc <tedchoc@chromium.org> Reviewed-by: Helen Li <xunjieli@chromium.org> Reviewed-by: Jesse Doherty <jwd@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#515502} [modify] https://crrev.com/e378a8f40efd70f0f138f16eb4a14a290261da86/chrome/android/javatests/src/org/chromium/chrome/browser/WarmupManagerTest.java [modify] https://crrev.com/e378a8f40efd70f0f138f16eb4a14a290261da86/chrome/browser/net/predictor_browsertest.cc [modify] https://crrev.com/e378a8f40efd70f0f138f16eb4a14a290261da86/testing/variations/fieldtrial_testing_config.json
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/698e803c4335c3e9429f580851a580b18e7daef0 commit 698e803c4335c3e9429f580851a580b18e7daef0 Author: Alexandr Ilin <alexilin@chromium.org> Date: Thu Nov 16 21:07:36 2017 Revert "Enable SpeculativePreconnect Field Trial Testing" This reverts commit e378a8f40efd70f0f138f16eb4a14a290261da86. Reason for revert: Several performance regressions was found. The feature will be re-enabled after all issues are fixed. Original change's description: > Enable SpeculativePreconnect Field Trial Testing > > The predictors::kSpeculativePreconnectFeature is explicitly disabled in > net::Predictor browser tests because the LoadingPredictor if enabled > intercepts all prefetch and preconnect coming from a renderer. > > WarmupManagerTest.testPreconnect() was expecting two connections to be > opened but it's not the case for the LoadingPredictor, it opens only > one connection. > > Bug: 699080 > Change-Id: I73537c3a59818793e41c5741762fe675a4efa97f > Reviewed-on: https://chromium-review.googlesource.com/754837 > Reviewed-by: Ted Choc <tedchoc@chromium.org> > Reviewed-by: Helen Li <xunjieli@chromium.org> > Reviewed-by: Jesse Doherty <jwd@chromium.org> > Commit-Queue: Alexandr Ilin <alexilin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#515502} TBR=jwd@chromium.org,tedchoc@chromium.org,xunjieli@chromium.org,alexilin@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: 699080 , 784206 Change-Id: I315b11b955b4aee52b6644835d649414507265f4 Reviewed-on: https://chromium-review.googlesource.com/774779 Reviewed-by: Alexandr Ilin <alexilin@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#517191} [modify] https://crrev.com/698e803c4335c3e9429f580851a580b18e7daef0/chrome/android/javatests/src/org/chromium/chrome/browser/WarmupManagerTest.java [modify] https://crrev.com/698e803c4335c3e9429f580851a580b18e7daef0/chrome/browser/net/predictor_browsertest.cc [modify] https://crrev.com/698e803c4335c3e9429f580851a580b18e7daef0/testing/variations/fieldtrial_testing_config.json
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3936606f8e24f49ddf9b8e5462449bae591f92e8 commit 3936606f8e24f49ddf9b8e5462449bae591f92e8 Author: Alexandr Ilin <alexilin@chromium.org> Date: Wed Nov 22 10:43:00 2017 predictors: Preconnect to the main frame after navigation hints This CL contains three different changes that are independent but work together to improve page load timing benchmarks results. 1. Preconnect to the main page for all hint origins including HintOrigin::NAVIGATION. 2. Check for possible HSTS redirects before preconnecting. 3. Open minimum 2 sockets for the main page. This change requires a fair amount of plumbing to pass a number of sockets from LoadingPredictor to PreconnectManager. Bug: 699080 , 784206 Change-Id: I5301a86989d1e2ecaa5197ebcec526e4d3bf4eae Reviewed-on: https://chromium-review.googlesource.com/778899 Reviewed-by: Benoit L <lizeb@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#518600} [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/loading_predictor.cc [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/loading_predictor.h [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/loading_predictor_unittest.cc [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/loading_stats_collector.cc [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/loading_stats_collector_unittest.cc [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/loading_test_util.cc [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/loading_test_util.h [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/preconnect_manager.cc [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/preconnect_manager.h [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/preconnect_manager_unittest.cc [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/resource_prefetch_predictor.cc [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/resource_prefetch_predictor.h [modify] https://crrev.com/3936606f8e24f49ddf9b8e5462449bae591f92e8/chrome/browser/predictors/resource_prefetch_predictor_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8442e044284223377ccd75e4f1b519c5656d4d8d commit 8442e044284223377ccd75e4f1b519c5656d4d8d Author: Alexandr Ilin <alexilin@chromium.org> Date: Wed Jan 31 09:21:06 2018 Enable SpeculativePreconnect Field Trial Testing This CL reenables SpeculativePreconnect field trial since the fix https://crrev.com/c/778899 addressing performance regressions was landed. The predictors::kSpeculativePreconnectFeature is explicitly disabled in net::Predictor browser tests because the LoadingPredictor if enabled intercepts all prefetch and preconnect coming from a renderer. Bug: 699080 Change-Id: Id5e4bb785943e1963f2a6a8802f738f491bb7544 Reviewed-on: https://chromium-review.googlesource.com/893459 Reviewed-by: Helen Li <xunjieli@chromium.org> Reviewed-by: Jesse Doherty <jwd@chromium.org> Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Cr-Commit-Position: refs/heads/master@{#533238} [modify] https://crrev.com/8442e044284223377ccd75e4f1b519c5656d4d8d/chrome/browser/net/OWNERS [modify] https://crrev.com/8442e044284223377ccd75e4f1b519c5656d4d8d/chrome/browser/net/predictor_browsertest.cc [modify] https://crrev.com/8442e044284223377ccd75e4f1b519c5656d4d8d/testing/variations/fieldtrial_testing_config.json
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f3008fb2bdc57e05546b89ba19e7961e61aa21a0 commit f3008fb2bdc57e05546b89ba19e7961e61aa21a0 Author: Egor Pasko <pasko@chromium.org> Date: Wed Oct 03 09:07:24 2018 Remove tools/resource_prefetch_predictor The tool was useful for benchmarking page loads optimized with prefetch predictor database. The code depends on the customtabs_benchmark. The latter got updated a few times without updating the caller, leading to this code being slightly rotten. We do not plan to benchmark resource prefetch predictor in the near future. Removing to reduce maintenance costs. Bug: 699080 Change-Id: Ic6d28015b0cabdf7e4b243633fd6ea967df77a1e Reviewed-on: https://chromium-review.googlesource.com/c/1256792 Reviewed-by: Alexandr Ilin <alexilin@chromium.org> Commit-Queue: Egor Pasko <pasko@chromium.org> Cr-Commit-Position: refs/heads/master@{#596157} [delete] https://crrev.com/8544720040259984a9a8bcf23141699278d4e564/tools/resource_prefetch_predictor/OWNERS [delete] https://crrev.com/8544720040259984a9a8bcf23141699278d4e564/tools/resource_prefetch_predictor/README.md [delete] https://crrev.com/8544720040259984a9a8bcf23141699278d4e564/tools/resource_prefetch_predictor/generate_test_data.py [delete] https://crrev.com/8544720040259984a9a8bcf23141699278d4e564/tools/resource_prefetch_predictor/prefetch_benchmark.py [delete] https://crrev.com/8544720040259984a9a8bcf23141699278d4e564/tools/resource_prefetch_predictor/prefetch_predictor_common.py [delete] https://crrev.com/8544720040259984a9a8bcf23141699278d4e564/tools/resource_prefetch_predictor/prefetch_predictor_tool.py
Marking as fixed. There is no further work expected except some cleanups being reported in issue 882895.
Comment 1 by lizeb@chromium.org
, Mar 7 2017Cc: kenjibaheux@chromium.org pasko@chromium.org mattcary@chromium.org
Labels: -Pri-3 Pri-2