New issue
Advanced search Search tips

Issue 880545 link

Starred by 3 users

Issue metadata

Status: Started
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

NetInfo network quality related Web APIs should have a holdback experiment

Project Member Reported by tbansal@chromium.org, Sep 4

Issue description

NetInfo network quality related Web APIs are used on ~15% of web pages. See https://www.chromestatus.com/metrics/feature/timeline/popularity/2013, https://www.chromestatus.com/metrics/feature/timeline/popularity/1989 and https://www.chromestatus.com/metrics/feature/timeline/popularity/1990

However, we do not have any visibility into how these APIs are being used by the developers, and how they affect the user experience. To understand this better, we should set up an experiment where for a fraction of Chrome instances NetInfo Web APIs return a static pre-defined value. Comparing such Chrome instances to a Control group would help us in understanding how the API usage impacts user level metrics.
 
Note that the holdback should affect the values returned by JavaScript APIs as well as the values set in request headers due to client hints.
Project Member

Comment 2 by bugdroid1@chromium.org, Sep 11

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

commit f8d8a9352e00aafd321fbe7edbdc5d2d9175614d
Author: Tarun Bansal <tbansal@chromium.org>
Date: Tue Sep 11 05:49:37 2018

Add logic for holdback experiment for network quality estimator Web APIs.

When the holdback experiment is enabled, the NetInfo
network quality related Web APIs (https://wicg.github.io/netinfo/)
would report network quality corresponding to the experiment
params.

This CL only affects the NetInfo JavaScript APIs. A subsequent CL
will use the framework in this CL to also override the values
of network quality reported in network quality related client hints
headers.

Change-Id: Iab9d4ecfe7c14eb5d3cee26dbf209fd943156333
Bug: 880545
Reviewed-on: https://chromium-review.googlesource.com/1201343
Commit-Queue: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Ryan Sturm <ryansturm@chromium.org>
Reviewed-by: Josh Karlin <jkarlin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590212}
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/chrome/browser/chrome_content_browser_client.cc
[add] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/chrome/browser/net/netinfo_network_quality_estimator_holdback_browsertest.cc
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/chrome/test/BUILD.gn
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/content/browser/net_info_browsertest.cc
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/content/public/common/common_param_traits_macros.h
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/content/public/common/content_features.cc
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/content/public/common/content_features.h
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/content/public/common/web_preferences.cc
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/content/public/common/web_preferences.h
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/content/renderer/render_view_impl.cc
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/third_party/blink/public/platform/web_network_state_notifier.h
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/third_party/blink/renderer/modules/netinfo/network_information.cc
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/third_party/blink/renderer/modules/netinfo/network_information.h
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/third_party/blink/renderer/platform/exported/web_network_state_notifier.cc
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/third_party/blink/renderer/platform/network/network_state_notifier.cc
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/third_party/blink/renderer/platform/network/network_state_notifier.h
[modify] https://crrev.com/f8d8a9352e00aafd321fbe7edbdc5d2d9175614d/third_party/blink/renderer/platform/network/network_state_notifier_test.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 11

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

commit e1c6cf61d6ae2431a69dc205dccce1c7b77218c3
Author: Yutaka Hirano <yhirano@chromium.org>
Date: Tue Sep 11 08:33:20 2018

Revert "Add logic for holdback experiment for network quality estimator Web APIs."

This reverts commit f8d8a9352e00aafd321fbe7edbdc5d2d9175614d.

Reason for revert: NetInfoNetworkQualityEstimatorHoldbackBrowserTest.EffectiveConnectionTypeChangeNotified/1 is flaky.

https://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=NetInfoNetworkQualityEstimatorHoldbackBrowserTest.EffectiveConnectionTypeChangeNotified

Original change's description:
> Add logic for holdback experiment for network quality estimator Web APIs.
> 
> When the holdback experiment is enabled, the NetInfo
> network quality related Web APIs (https://wicg.github.io/netinfo/)
> would report network quality corresponding to the experiment
> params.
> 
> This CL only affects the NetInfo JavaScript APIs. A subsequent CL
> will use the framework in this CL to also override the values
> of network quality reported in network quality related client hints
> headers.
> 
> Change-Id: Iab9d4ecfe7c14eb5d3cee26dbf209fd943156333
> Bug: 880545
> Reviewed-on: https://chromium-review.googlesource.com/1201343
> Commit-Queue: Tarun Bansal <tbansal@chromium.org>
> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
> Reviewed-by: Ryan Sturm <ryansturm@chromium.org>
> Reviewed-by: Josh Karlin <jkarlin@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#590212}

TBR=kinuko@chromium.org,jkarlin@chromium.org,tbansal@chromium.org,ryansturm@chromium.org

Change-Id: I4e098f91606613d446f373775ef0649876532f40
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 880545
Reviewed-on: https://chromium-review.googlesource.com/1218387
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Yutaka Hirano <yhirano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590236}
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/chrome/browser/chrome_content_browser_client.cc
[delete] https://crrev.com/974259bc6cba0a515ed865c77901bb1a739a4b19/chrome/browser/net/netinfo_network_quality_estimator_holdback_browsertest.cc
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/chrome/test/BUILD.gn
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/content/browser/net_info_browsertest.cc
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/content/public/common/common_param_traits_macros.h
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/content/public/common/content_features.cc
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/content/public/common/content_features.h
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/content/public/common/web_preferences.cc
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/content/public/common/web_preferences.h
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/content/renderer/render_view_impl.cc
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/third_party/blink/public/platform/web_network_state_notifier.h
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/third_party/blink/renderer/modules/netinfo/network_information.cc
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/third_party/blink/renderer/modules/netinfo/network_information.h
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/third_party/blink/renderer/platform/exported/web_network_state_notifier.cc
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/third_party/blink/renderer/platform/network/network_state_notifier.cc
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/third_party/blink/renderer/platform/network/network_state_notifier.h
[modify] https://crrev.com/e1c6cf61d6ae2431a69dc205dccce1c7b77218c3/third_party/blink/renderer/platform/network/network_state_notifier_test.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 13

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

commit d10f17a0805b69b6795d691bf11c342afd217685
Author: Tarun Bansal <tbansal@chromium.org>
Date: Thu Sep 13 00:23:17 2018

Reland of Add logic for holdback experiment for NQE Web APIs.

Add logic for holdback experiment for network quality estimator Web APIs.

When the holdback experiment is enabled, the NetInfo
network quality related Web APIs (https://wicg.github.io/netinfo/)
would report network quality corresponding to the experiment
params.

This CL only affects the NetInfo JavaScript APIs. A subsequent CL
will use the framework in this CL to also override the values
of network quality reported in network quality related client hints
headers.

This CL is a reland of a previous CL that got reverted due to
flaky browsertests. First patch is the original CL that
got reverted.

Bug: 880545
Change-Id: Ide75c5c5b05e279c5a621583fdc6346543384cb7
TBR: kinuko@chromium.org,jkarlin@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/1221700
Commit-Queue: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Ryan Sturm <ryansturm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590874}
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/chrome/browser/chrome_content_browser_client.cc
[add] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/chrome/browser/net/netinfo_network_quality_estimator_holdback_browsertest.cc
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/chrome/test/BUILD.gn
[add] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/chrome/test/data/net_info.html
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/content/browser/net_info_browsertest.cc
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/content/public/common/common_param_traits_macros.h
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/content/public/common/content_features.cc
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/content/public/common/content_features.h
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/content/public/common/web_preferences.cc
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/content/public/common/web_preferences.h
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/content/renderer/render_view_impl.cc
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/third_party/blink/public/platform/web_network_state_notifier.h
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/third_party/blink/renderer/modules/netinfo/network_information.cc
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/third_party/blink/renderer/modules/netinfo/network_information.h
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/third_party/blink/renderer/platform/exported/web_network_state_notifier.cc
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/third_party/blink/renderer/platform/network/network_state_notifier.cc
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/third_party/blink/renderer/platform/network/network_state_notifier.h
[modify] https://crrev.com/d10f17a0805b69b6795d691bf11c342afd217685/third_party/blink/renderer/platform/network/network_state_notifier_test.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 28

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

commit 8203e3b1308261b8461e72e4d9b708555df64a58
Author: Tarun Bansal <tbansal@chromium.org>
Date: Fri Sep 28 23:28:46 2018

Expose typical network quality from NQE

Add an API that exposes typical network
quality for a given effective connection type. This API
would be used to set RTT and throughput values when
effective connection type value is overridden
due to holdback experiment, or otherwise.

Bug: 880545
Change-Id: If83593e31e44e2e0e9ab8357a673300e032cea9e
Reviewed-on: https://chromium-review.googlesource.com/1249962
Reviewed-by: Ryan Sturm <ryansturm@chromium.org>
Commit-Queue: Tarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595247}
[modify] https://crrev.com/8203e3b1308261b8461e72e4d9b708555df64a58/net/nqe/network_quality_estimator_params.cc
[modify] https://crrev.com/8203e3b1308261b8461e72e4d9b708555df64a58/net/nqe/network_quality_estimator_params.h
[modify] https://crrev.com/8203e3b1308261b8461e72e4d9b708555df64a58/net/nqe/network_quality_estimator_params_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 2

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

commit bef6d65d29df678c42b0ca5649f638448c4400b8
Author: Tarun Bansal <tbansal@chromium.org>
Date: Tue Oct 02 18:41:01 2018

Holdback NetInfo Client hints value when holdback experiment is enabled

Set the network quality in the client hints to the holdback
value if network quality web holdback experiment is enabled.

Change-Id: Ifc6bcef11c9f980c340d4286e4472572e871f6f7
Bug: 880545
Reviewed-on: https://chromium-review.googlesource.com/c/1227684
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Tarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595924}
[modify] https://crrev.com/bef6d65d29df678c42b0ca5649f638448c4400b8/chrome/browser/client_hints/client_hints.cc
[modify] https://crrev.com/bef6d65d29df678c42b0ca5649f638448c4400b8/chrome/browser/client_hints/client_hints_browsertest.cc
[modify] https://crrev.com/bef6d65d29df678c42b0ca5649f638448c4400b8/third_party/blink/renderer/core/loader/frame_fetch_context.cc

Status: Fixed (was: Started)
Status: Started (was: Fixed)
Keeping the bug open for pending analysis of the experiment data.
Refreshed during triage.
Labels: -Pri-2 Pri-3
Refreshed during triage. Experiment is still running.

Sign in to add a comment