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.
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
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
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
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
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
Keeping the bug open for pending analysis of the experiment data.
Refreshed during triage.
Refreshed during triage. Experiment is still running.
Comment 1 by tbansal@chromium.org
, Sep 4