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

Issue 699313 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 24
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

[Offline pages] Create a resource available percentage signal

Project Member Reported by petewil@chromium.org, Mar 8 2017

Issue description

Offline pages needs more information to know when it is time to snapshot a page.  One way we can do that is to calculate the percentage of requested resources that have become available by type.

Add a system to register observers which will get notified whenever any net resource arrives or is requested, to allow the offline pages system to calculate when it is time to take an offline snapshot during the process of background loading.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Apr 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3

commit 5d47d0d535ba6b9eff503faaf6af0769faa8b8c3
Author: petewil <petewil@chromium.org>
Date: Tue Apr 25 16:28:45 2017

Send an event to the page load metrics to track resource starting.

This will eventually allow page load metrics consumers to calculate
a percentage of known resource request completion dynamically.

Design doc here:
https://docs.google.com/document/d/1dxGOMsUkmxfoNUfQKqZRi4qAhWVGh9DZDiFI1arkiJ0

BUG= 699313 

Review-Url: https://codereview.chromium.org/2780003003
Cr-Commit-Position: refs/heads/master@{#467011}

[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/BUILD.gn
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/metrics_web_contents_observer.h
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.h
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/media_page_load_metrics_observer.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/media_page_load_metrics_observer.h
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/media_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h
[add] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer.cc
[add] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer.h
[add] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.h
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer_unittest.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/tab_restore_page_load_metrics_observer.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/tab_restore_page_load_metrics_observer.h
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/observers/tab_restore_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/page_load_metrics_observer.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/page_load_metrics_observer.h
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/page_load_tracker.cc
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/browser/page_load_metrics/page_load_tracker.h
[modify] https://crrev.com/5d47d0d535ba6b9eff503faaf6af0769faa8b8c3/chrome/test/BUILD.gn

Project Member

Comment 2 by bugdroid1@chromium.org, Jun 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3a8a65453159faa3d9d933129a701372625f29d4

commit 3a8a65453159faa3d9d933129a701372625f29d4
Author: Pete Williamson <petewil@chromium.org>
Date: Wed Jun 14 20:16:05 2017

Remove ResourceTrackingPageLoadMetricsObserver (RTPLMO).

We decided that using the RTPLMO would pollute foreground tab
metrics with background measurements, so we are removing the
RTPLMO introduced with changelist 2780003003.

This removes the observer, and the OnResourceStarted event, and
the associated structure, "ExtraRequestStartInfo".

It does not remove the NotifyUIThreadOfRequestStarted method, since
I have another change in progress which needs it.

It does not remove the change which adds the resource type to the
information that we track since another change in the ads page load
metrics now needs the resource type.

I also left the structure name at the more descriptive
"ExtraRequestCompleteInfo" instead of "ExtraRequestInfo" in case
we add back "ExtraRequestStartInfo".

Bug:  699313 
Change-Id: I399e8adc9e161fe3a21a2c1a3ddcac4b24e7b898
Reviewed-on: https://chromium-review.googlesource.com/534053
Reviewed-by: Ryan Sturm <ryansturm@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Commit-Queue: Peter Williamson <petewil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#479483}
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/BUILD.gn
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/page_load_metrics/metrics_web_contents_observer.h
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.cc
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/page_load_metrics/observers/page_load_metrics_observer_test_harness.h
[delete] https://crrev.com/2f4c74729badb56a8a0d4c4cd18fea329f9fa552/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer.cc
[delete] https://crrev.com/2f4c74729badb56a8a0d4c4cd18fea329f9fa552/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer.h
[delete] https://crrev.com/2f4c74729badb56a8a0d4c4cd18fea329f9fa552/chrome/browser/page_load_metrics/observers/resource_tracking_page_load_metrics_observer_unittest.cc
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/page_load_metrics/page_load_metrics_observer.cc
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/page_load_metrics/page_load_metrics_observer.h
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/page_load_metrics/page_load_tracker.cc
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/browser/page_load_metrics/page_load_tracker.h
[modify] https://crrev.com/3a8a65453159faa3d9d933129a701372625f29d4/chrome/test/BUILD.gn

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 16 2017

Project Member

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

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f4fffab7a7e37c37466670730dd5e97e7ee8486

commit 2f4fffab7a7e37c37466670730dd5e97e7ee8486
Author: Pete Williamson <petewil@chromium.org>
Date: Tue Jun 27 21:04:34 2017

Add a vector for tracking resource types in the BackgroundLoaderOffliner.

As part 3 (of 3) in implementing the ResourcePercentageSignal, this
adds a vector for tracking 3 resource types inside the
BackgroundLoaderOffliner that are closely related to right moment
detection.

See design doc here:

https: //docs.google.com/document/d/1dxGOMsUkmxfoNUfQKqZRi4qAhWVGh9DZDiFI1arkiJ0
Bug:  699313 
Change-Id: I440b577208956b7c6a84448609d1a3628d3725bd
Reviewed-on: https://chromium-review.googlesource.com/547115
Commit-Queue: Peter Williamson <petewil@chromium.org>
Reviewed-by: Cathy Li <chili@chromium.org>
Reviewed-by: Charlie Harrison <csharrison@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482742}
[modify] https://crrev.com/2f4fffab7a7e37c37466670730dd5e97e7ee8486/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
[modify] https://crrev.com/2f4fffab7a7e37c37466670730dd5e97e7ee8486/chrome/browser/offline_pages/background_loader_offliner.cc
[modify] https://crrev.com/2f4fffab7a7e37c37466670730dd5e97e7ee8486/chrome/browser/offline_pages/background_loader_offliner.h
[modify] https://crrev.com/2f4fffab7a7e37c37466670730dd5e97e7ee8486/chrome/browser/offline_pages/background_loader_offliner_unittest.cc
[modify] https://crrev.com/2f4fffab7a7e37c37466670730dd5e97e7ee8486/chrome/browser/offline_pages/resource_loading_observer.h

Cc: nyerramilli@chromium.org pnangunoori@chromium.org sandeepkumars@chromium.org petewil@chromium.org
 Issue 797646  has been merged into this issue.
Cc: dougarnett@chromium.org
 Issue 652437  has been merged into this issue.
Issue 726377 has been merged into this issue.
Project Member

Comment 9 by bugdroid1@chromium.org, Jun 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad5286aa80f2b0acce9969242fdcc9a8c998064d

commit ad5286aa80f2b0acce9969242fdcc9a8c998064d
Author: Pete Williamson <petewil@chromium.org>
Date: Wed Jun 20 20:31:39 2018

Collect Offline Page Quality metrics via UMA.

We have an existing way to measure the completed vs requested number
of image requests, CSS requests, and XHR calls. Leverage that to make
some UMA indicating our page quality.

Backup work in progress

Bug:  699313 
Change-Id: I424dbdcfba5f77da43e3c6d005b6b717e3d8ecf2
Reviewed-on: https://chromium-review.googlesource.com/1100112
Reviewed-by: Dmitry Titov <dimich@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Commit-Queue: Peter Williamson <petewil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568991}
[modify] https://crrev.com/ad5286aa80f2b0acce9969242fdcc9a8c998064d/chrome/browser/offline_pages/background_loader_offliner.cc
[modify] https://crrev.com/ad5286aa80f2b0acce9969242fdcc9a8c998064d/tools/metrics/histograms/histograms.xml

Project Member

Comment 10 by bugdroid1@chromium.org, Jul 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cfcecd027002e71527da1874edbd5bbc65363e5f

commit cfcecd027002e71527da1874edbd5bbc65363e5f
Author: Pete Williamson <petewil@chromium.org>
Date: Thu Jul 26 17:30:51 2018

Split SnapshotController into online and offline versions.

To make the Resource Percentage work easier, we are splitting the
snapshot controller into a foreground and a background version.

Bug:  699313 
Change-Id: Ideeea7d644a903290d9eeae2d7ab700ab0ff50b6
Reviewed-on: https://chromium-review.googlesource.com/1136023
Reviewed-by: Dmitry Titov <dimich@chromium.org>
Reviewed-by: Carlos Knippschild <carlosk@chromium.org>
Commit-Queue: Peter Williamson <petewil@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578351}
[modify] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/chrome/browser/offline_pages/background_loader_offliner.cc
[modify] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/chrome/browser/offline_pages/background_loader_offliner.h
[modify] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/chrome/browser/offline_pages/background_loader_offliner_unittest.cc
[modify] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/chrome/browser/offline_pages/recent_tab_helper.cc
[modify] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/chrome/browser/offline_pages/recent_tab_helper.h
[modify] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/components/offline_pages/core/BUILD.gn
[add] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/components/offline_pages/core/background_snapshot_controller.cc
[add] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/components/offline_pages/core/background_snapshot_controller.h
[add] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/components/offline_pages/core/background_snapshot_controller_unittest.cc
[modify] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/components/offline_pages/core/snapshot_controller.cc
[modify] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/components/offline_pages/core/snapshot_controller.h
[modify] https://crrev.com/cfcecd027002e71527da1874edbd5bbc65363e5f/components/offline_pages/core/snapshot_controller_unittest.cc

Status: Fixed (was: Started)
The signal is created and checked in (but not used yet)  Closing this bug, as using the signal is tracked by crbug.com/765002

Sign in to add a comment