Commit b7fceb80 authored by Ryan Sturm's avatar Ryan Sturm Committed by Commit Bot

Reland "Adding a FTT config for PreconnectSameOriginDesktop"

This is a reland of 4e23e8e8

Patchset 1 is what previously landed. This caused flakes in other
loading predictor browser tests, so I added the holdback to all
of the tests. In a follow-up, I will make sure the tests check
for preconnects on the appropriate URLs.

See https://chromium-review.googlesource.com/c/chromium/src/+/2004181
for revert rationale.

Original change's description:
> Adding a FTT config for PreconnectSameOriginDesktop
>
> This experiment is in canary/dev and should be moved to Beta.
>
> Bug: 1038774
> Change-Id: I4fc9c44e2b68aa58f9eee7210a625103f45edb01
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1992684
> Commit-Queue: Ryan Sturm <ryansturm@chromium.org>
> Reviewed-by: Alex Ilin <alexilin@chromium.org>
> Reviewed-by: Ilya Sherman <isherman@chromium.org>
> Reviewed-by: Tarun Bansal <tbansal@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#732219}

Bug: 1038774
Change-Id: Id7bd4bddf5b5812d02a8953d0733f8af73007fb6

TBR=tbansal@chromium.org,alexilin@chromium.org

Change-Id: Id7bd4bddf5b5812d02a8953d0733f8af73007fb6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2004691Reviewed-by: default avatarAlex Ilin <alexilin@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Reviewed-by: default avatarRyan Sturm <ryansturm@chromium.org>
Commit-Queue: Ryan Sturm <ryansturm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#732553}
parent 3e781947
......@@ -23,7 +23,7 @@
#include "content/public/browser/web_contents.h"
#include "net/base/features.h"
namespace {
namespace features {
// A holdback that prevents the preconnect to measure benefit of the feature.
const base::Feature kNavigationPredictorPreconnectHoldback {
......@@ -34,6 +34,9 @@ const base::Feature kNavigationPredictorPreconnectHoldback {
base::FEATURE_ENABLED_BY_DEFAULT
#endif
};
} // namespace features
namespace {
// Experiment with which event triggers the preconnect after commit.
const base::Feature kPreconnectOnDidFinishNavigation{
......@@ -110,7 +113,8 @@ void NavigationPredictorPreconnectClient::DidFinishLoad(
}
void NavigationPredictorPreconnectClient::MaybePreconnectNow() {
if (base::FeatureList::IsEnabled(kNavigationPredictorPreconnectHoldback))
if (base::FeatureList::IsEnabled(
features::kNavigationPredictorPreconnectHoldback))
return;
if (browser_context_->IsOffTheRecord())
......
......@@ -19,6 +19,10 @@ class BrowserContext;
class RenderFrameHost;
} // namespace content
namespace features {
extern const base::Feature kNavigationPredictorPreconnectHoldback;
}
class NavigationPredictorPreconnectClient
: public content::WebContentsObserver,
public content::WebContentsUserData<NavigationPredictorPreconnectClient> {
......
......@@ -19,6 +19,7 @@
#include "base/task/post_task.h"
#include "base/test/scoped_feature_list.h"
#include "chrome/browser/browser_features.h"
#include "chrome/browser/navigation_predictor/navigation_predictor_preconnect_client.h"
#include "chrome/browser/predictors/loading_predictor.h"
#include "chrome/browser/predictors/loading_predictor_factory.h"
#include "chrome/browser/predictors/loading_test_util.h"
......@@ -444,7 +445,8 @@ class LoadingPredictorBrowserTest : public InProcessBrowserTest {
LoadingPredictorBrowserTest() {
scoped_feature_list_.InitWithFeatures(
{features::kLoadingOnlyLearnHighPriorityResources,
features::kLoadingPreconnectToRedirectTarget},
features::kLoadingPreconnectToRedirectTarget,
features::kNavigationPredictorPreconnectHoldback},
{});
}
~LoadingPredictorBrowserTest() override {}
......
file://base/metrics/OWNERS
# Use the following owners only if:
# - You work in the same area as them.
# - They are already aware of the field trial being modified.
per-file fieldtrial_testing_config.json=tbansal@chromium.org
# COMPONENT: Internals>Metrics>Variations
......@@ -4958,6 +4958,30 @@
]
}
],
"PreconnectSameOriginDesktop": [
{
"platforms": [
"windows",
"chromeos",
"mac",
"linux"
],
"experiments": [
{
"name": "EnabledWithExtendedSocket",
"params": {
"unused_idle_socket_timeout_seconds": "60"
},
"enable_features": [
"NetUnusedIdleSocketTimeout"
],
"disable_features": [
"NavigationPredictorPreconnectHoldback"
]
}
]
}
],
"PrefetchSRPAndroid": [
{
"platforms": [
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment