Commit 4e23e8e8 authored by Ryan Sturm's avatar Ryan Sturm Committed by Commit Bot

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: default avatarAlex Ilin <alexilin@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#732219}
parent b6ecd702
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents.h"
#include "net/base/features.h" #include "net/base/features.h"
namespace { namespace features {
// A holdback that prevents the preconnect to measure benefit of the feature. // A holdback that prevents the preconnect to measure benefit of the feature.
const base::Feature kNavigationPredictorPreconnectHoldback { const base::Feature kNavigationPredictorPreconnectHoldback {
...@@ -34,6 +34,9 @@ const base::Feature kNavigationPredictorPreconnectHoldback { ...@@ -34,6 +34,9 @@ const base::Feature kNavigationPredictorPreconnectHoldback {
base::FEATURE_ENABLED_BY_DEFAULT base::FEATURE_ENABLED_BY_DEFAULT
#endif #endif
}; };
} // namespace features
namespace {
// Experiment with which event triggers the preconnect after commit. // Experiment with which event triggers the preconnect after commit.
const base::Feature kPreconnectOnDidFinishNavigation{ const base::Feature kPreconnectOnDidFinishNavigation{
...@@ -110,7 +113,8 @@ void NavigationPredictorPreconnectClient::DidFinishLoad( ...@@ -110,7 +113,8 @@ void NavigationPredictorPreconnectClient::DidFinishLoad(
} }
void NavigationPredictorPreconnectClient::MaybePreconnectNow() { void NavigationPredictorPreconnectClient::MaybePreconnectNow() {
if (base::FeatureList::IsEnabled(kNavigationPredictorPreconnectHoldback)) if (base::FeatureList::IsEnabled(
features::kNavigationPredictorPreconnectHoldback))
return; return;
if (browser_context_->IsOffTheRecord()) if (browser_context_->IsOffTheRecord())
......
...@@ -19,6 +19,10 @@ class BrowserContext; ...@@ -19,6 +19,10 @@ class BrowserContext;
class RenderFrameHost; class RenderFrameHost;
} // namespace content } // namespace content
namespace features {
extern const base::Feature kNavigationPredictorPreconnectHoldback;
}
class NavigationPredictorPreconnectClient class NavigationPredictorPreconnectClient
: public content::WebContentsObserver, : public content::WebContentsObserver,
public content::WebContentsUserData<NavigationPredictorPreconnectClient> { public content::WebContentsUserData<NavigationPredictorPreconnectClient> {
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "base/task/post_task.h" #include "base/task/post_task.h"
#include "base/test/scoped_feature_list.h" #include "base/test/scoped_feature_list.h"
#include "chrome/browser/browser_features.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.h"
#include "chrome/browser/predictors/loading_predictor_factory.h" #include "chrome/browser/predictors/loading_predictor_factory.h"
#include "chrome/browser/predictors/loading_test_util.h" #include "chrome/browser/predictors/loading_test_util.h"
...@@ -930,7 +931,8 @@ class LoadingPredictorNetworkIsolationKeyBrowserTest ...@@ -930,7 +931,8 @@ class LoadingPredictorNetworkIsolationKeyBrowserTest
case NetworkIsolationKeyMode::kNone: case NetworkIsolationKeyMode::kNone:
scoped_feature_list2_.InitWithFeatures( scoped_feature_list2_.InitWithFeatures(
// enabled_features // enabled_features
{features::kLoadingPreconnectToRedirectTarget}, {features::kLoadingPreconnectToRedirectTarget,
features::kNavigationPredictorPreconnectHoldback},
// disabled_features // disabled_features
{net::features::kPartitionConnectionsByNetworkIsolationKey, {net::features::kPartitionConnectionsByNetworkIsolationKey,
net::features::kSplitCacheByNetworkIsolationKey, net::features::kSplitCacheByNetworkIsolationKey,
...@@ -945,7 +947,8 @@ class LoadingPredictorNetworkIsolationKeyBrowserTest ...@@ -945,7 +947,8 @@ class LoadingPredictorNetworkIsolationKeyBrowserTest
// unfortunate if splitting the cache by the key as well broke // unfortunate if splitting the cache by the key as well broke
// them. // them.
net::features::kSplitCacheByNetworkIsolationKey, net::features::kSplitCacheByNetworkIsolationKey,
features::kLoadingPreconnectToRedirectTarget}, features::kLoadingPreconnectToRedirectTarget,
features::kNavigationPredictorPreconnectHoldback},
// disabled_features // disabled_features
{net::features::kAppendFrameOriginToNetworkIsolationKey}); {net::features::kAppendFrameOriginToNetworkIsolationKey});
break; break;
...@@ -955,7 +958,8 @@ class LoadingPredictorNetworkIsolationKeyBrowserTest ...@@ -955,7 +958,8 @@ class LoadingPredictorNetworkIsolationKeyBrowserTest
{net::features::kPartitionConnectionsByNetworkIsolationKey, {net::features::kPartitionConnectionsByNetworkIsolationKey,
net::features::kSplitCacheByNetworkIsolationKey, net::features::kSplitCacheByNetworkIsolationKey,
net::features::kAppendFrameOriginToNetworkIsolationKey, net::features::kAppendFrameOriginToNetworkIsolationKey,
features::kLoadingPreconnectToRedirectTarget}, features::kLoadingPreconnectToRedirectTarget,
features::kNavigationPredictorPreconnectHoldback},
// disabled_features // disabled_features
{}); {});
break; break;
......
file://base/metrics/OWNERS 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 # COMPONENT: Internals>Metrics>Variations
...@@ -4951,6 +4951,30 @@ ...@@ -4951,6 +4951,30 @@
] ]
} }
], ],
"PreconnectSameOriginDesktop": [
{
"platforms": [
"windows",
"chromeos",
"mac",
"linux"
],
"experiments": [
{
"name": "EnabledWithExtendedSocket",
"params": {
"unused_idle_socket_timeout_seconds": "60"
},
"enable_features": [
"NetUnusedIdleSocketTimeout"
],
"disable_features": [
"NavigationPredictorPreconnectHoldback"
]
}
]
}
],
"PrefetchSRPAndroid": [ "PrefetchSRPAndroid": [
{ {
"platforms": [ "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