New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 699080 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 15
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocked on:
issue 784206
issue 875238

Blocking:
issue 636128
issue 699079



Sign in to add a comment

Revisit and improve //net predictor

Project Member Reported by lizeb@chromium.org, Mar 7 2017

Issue description

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.
 

Comment 1 by lizeb@chromium.org, Mar 7 2017

Blocking: 699079
Cc: kenjibaheux@chromium.org pasko@chromium.org mattcary@chromium.org
Labels: -Pri-3 Pri-2
Project Member

Comment 2 by bugdroid1@chromium.org, Apr 12 2017

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

Cc: alexilin@chromium.org
+alexilin@chromium.org
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 19 2017

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

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 19 2017

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

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 26 2017

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

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 27 2017

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

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 28 2017

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

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 7 2017

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

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 17 2017

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

Project Member

Comment 14 by bugdroid1@chromium.org, Jul 18 2017

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

Project Member

Comment 15 by bugdroid1@chromium.org, Jul 19 2017

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

Blocking: 636128
Project Member

Comment 17 by bugdroid1@chromium.org, Aug 23 2017

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

Project Member

Comment 18 by bugdroid1@chromium.org, Aug 30 2017

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

Project Member

Comment 19 by bugdroid1@chromium.org, Sep 11 2017

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

Project Member

Comment 20 by bugdroid1@chromium.org, Sep 18 2017

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

Project Member

Comment 21 by bugdroid1@chromium.org, Sep 18 2017

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

Project Member

Comment 22 by bugdroid1@chromium.org, Sep 20 2017

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

Project Member

Comment 23 by bugdroid1@chromium.org, Sep 26 2017

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

Project Member

Comment 24 by bugdroid1@chromium.org, Sep 27 2017

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

Project Member

Comment 25 by bugdroid1@chromium.org, Sep 27 2017

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

Project Member

Comment 26 by bugdroid1@chromium.org, Sep 28 2017

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

Project Member

Comment 27 by bugdroid1@chromium.org, Sep 29 2017

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

Project Member

Comment 28 by bugdroid1@chromium.org, Oct 9 2017

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

Project Member

Comment 29 by bugdroid1@chromium.org, Oct 10 2017

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

Summary: Revisit and improve //net predictor (was: Glowplug: Revisit and improve //net predictor)
Project Member

Comment 31 by bugdroid1@chromium.org, Oct 12 2017

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

Project Member

Comment 32 by bugdroid1@chromium.org, Oct 13 2017

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

Project Member

Comment 33 by bugdroid1@chromium.org, Nov 10 2017

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

Blockedon: 784206
Project Member

Comment 35 by bugdroid1@chromium.org, Nov 16 2017

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

Project Member

Comment 36 by bugdroid1@chromium.org, Nov 22 2017

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

Project Member

Comment 37 by bugdroid1@chromium.org, Jan 31 2018

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

Comment 38 by lizeb@chromium.org, May 16 2018

Cc: -alexilin@chromium.org -mattcary@chromium.org lizeb@chromium.org
Owner: alexilin@chromium.org
Status: Assigned (was: Available)
Blockedon: 875238
Project Member

Comment 40 by bugdroid1@chromium.org, Oct 3

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

Status: Fixed (was: Assigned)
Marking as fixed. There is no further work expected except some cleanups being reported in issue 882895.

Sign in to add a comment