The logic to detect whether a page is heavy should be added to the page load capping code. This should track actual bytes used. This does not track predictive logic for media and other range requests.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6b80e481f73fc909a144a4db293f2f89458cf862 commit 6b80e481f73fc909a144a4db293f2f89458cf862 Author: Ryan Sturm <ryansturm@chromium.org> Date: Wed Jan 03 05:38:37 2018 Adding a new method to DUA:PageLoadObserver for more granular updates This method gets updated whenever network bytes are used, which allows flexibility in tracking larger requests. Bug: 797976 Change-Id: I5a23c09be18af82c049d260d924c0370e4f555cb Reviewed-on: https://chromium-review.googlesource.com/846241 Reviewed-by: Tarun Bansal <tbansal@chromium.org> Commit-Queue: Ryan Sturm <ryansturm@chromium.org> Cr-Commit-Position: refs/heads/master@{#526630} [modify] https://crrev.com/6b80e481f73fc909a144a4db293f2f89458cf862/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc [modify] https://crrev.com/6b80e481f73fc909a144a4db293f2f89458cf862/chrome/browser/data_use_measurement/page_load_capping/page_load_observer.cc [modify] https://crrev.com/6b80e481f73fc909a144a4db293f2f89458cf862/chrome/browser/data_use_measurement/page_load_capping/page_load_observer.h [modify] https://crrev.com/6b80e481f73fc909a144a4db293f2f89458cf862/components/data_reduction_proxy/core/browser/data_reduction_proxy_data_use_observer.h [modify] https://crrev.com/6b80e481f73fc909a144a4db293f2f89458cf862/components/data_use_measurement/core/data_use_ascriber.cc [modify] https://crrev.com/6b80e481f73fc909a144a4db293f2f89458cf862/components/data_use_measurement/core/data_use_ascriber.h
Refreshed during triage.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d003ad1b523bb159524a253df3ad4245fdfbe1f0 commit d003ad1b523bb159524a253df3ad4245fdfbe1f0 Author: Ryan Sturm <ryansturm@chromium.org> Date: Thu Mar 29 22:28:40 2018 Adding a page capping infobar and triggering logic This CL introduces a page capping infobar, related strings, and triggering logic from a page load metrics observer. The flow checks if a feature is enabled and grabs parameters from a related field trial if there are any. Once the data usage (of the body bytes for completed requests) extends beyond a threshold, the infobar is triggerred. The thresholds vary by whether the page load played media or not. This does not yet introduce page pausing functionality. Although, the goal is to pause all future requests from the page by plumbing a mojo message to each related RenderFrame's scheduler. Bug: 797980 , 797976 Change-Id: Ib6a48400c87f1561b10078f38c2d75d0c78ab912 Reviewed-on: https://chromium-review.googlesource.com/953711 Commit-Queue: Ryan Sturm <ryansturm@chromium.org> Reviewed-by: Peter Kasting <pkasting@chromium.org> Reviewed-by: Bryan McQuade <bmcquade@chromium.org> Reviewed-by: Tarun Bansal <tbansal@chromium.org> Cr-Commit-Position: refs/heads/master@{#546986} [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/app/generated_resources.grd [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/BUILD.gn [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc [add] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/data_use_measurement/page_load_capping/page_load_capping_infobar_delegate.cc [add] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/data_use_measurement/page_load_capping/page_load_capping_infobar_delegate.h [add] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/data_use_measurement/page_load_capping/page_load_capping_infobar_delegate_unittest.cc [delete] https://crrev.com/4df0bfb94bdc23558dcfb01ee2a4653db736e9df/chrome/browser/data_use_measurement/page_load_capping/page_load_observer.cc [delete] https://crrev.com/4df0bfb94bdc23558dcfb01ee2a4653db736e9df/chrome/browser/data_use_measurement/page_load_capping/page_load_observer.h [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/infobars/infobar_service.h [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/infobars/infobars_browsertest.cc [add] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/infobars/mock_infobar_service.cc [add] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/infobars/mock_infobar_service.h [add] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/page_load_metrics/observers/page_capping_page_load_metrics_observer.cc [add] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/page_load_metrics/observers/page_capping_page_load_metrics_observer.h [add] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/page_load_metrics/observers/page_capping_page_load_metrics_observer_unittest.cc [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/chrome/test/BUILD.gn [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/components/infobars/core/infobar_delegate.h [modify] https://crrev.com/d003ad1b523bb159524a253df3ad4245fdfbe1f0/tools/metrics/histograms/enums.xml
Comment 1 by ryansturm@chromium.org
, Dec 28 2017