Commit 1261e8f6 authored by Robert Ogden's avatar Robert Ogden Committed by Commit Bot

Add field trial param and about:flag for IsolatedPrerender NSP

Leaves the command line flag for use in browsertesting and in the
about:flag.

Note: The browser tests can't set features with params because of this:
http://shortn/_ZytN1SHiqN

Bug: 1082505
Change-Id: I474fe012c6a00b15f38d70334d677a29815b24b6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2265178Reviewed-by: default avatarRyan Sturm <ryansturm@chromium.org>
Commit-Queue: Robert Ogden <robertogden@chromium.org>
Cr-Commit-Position: refs/heads/master@{#782107}
parent a0d5ce85
......@@ -42,6 +42,7 @@
#include "chrome/browser/permissions/quiet_notification_permission_ui_config.h"
#include "chrome/browser/predictors/loading_predictor_config.h"
#include "chrome/browser/prerender/isolated/isolated_prerender_features.h"
#include "chrome/browser/prerender/isolated/isolated_prerender_params.h"
#include "chrome/browser/prerender/prerender_field_trial.h"
#include "chrome/browser/resource_coordinator/tab_manager_features.h"
#include "chrome/browser/search/ntp_features.h"
......@@ -2714,6 +2715,10 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_WITH_PARAMS_VALUE_TYPE(features::kIsolatePrerenders,
kIsolatedPrerenderFeatureWithPrefetchLimit,
"Prefetch Limit")},
{"enable-google-srp-isolated-prerender-nsp",
flag_descriptions::kEnableSRPIsolatedPrerendersNSPName,
flag_descriptions::kEnableSRPIsolatedPrerendersNSPDescription, kOsAll,
SINGLE_VALUE_TYPE(kIsolatedPrerenderEnableNSPCmdLineFlag)},
{"allow-insecure-localhost", flag_descriptions::kAllowInsecureLocalhostName,
flag_descriptions::kAllowInsecureLocalhostDescription, kOsAll,
SINGLE_VALUE_TYPE(switches::kAllowInsecureLocalhost)},
......
......@@ -1661,6 +1661,11 @@
"owners": [ "reillyg@chromium.org", "raphael.kubo.da.costa@intel.com" ],
"expiry_milestone": 86
},
{
"name": "enable-google-srp-isolated-prerender-nsp",
"owners": [ "//chrome/browser/prerender/OWNERS" ],
"expiry_milestone": 90
},
{
"name": "enable-google-srp-isolated-prerender-probing",
"owners": [ "//chrome/browser/prerender/OWNERS" ],
......
......@@ -740,6 +740,11 @@ const char kEnableSRPIsolatedPrerenderProbingName[] =
const char kEnableSRPIsolatedPrerenderProbingDescription[] =
"Enable probing checks for Isolated Prerenders which will block commit.";
const char kEnableSRPIsolatedPrerendersNSPName[] =
"Enable NoStatePrefetch on Navigation Predictor Isolated Prerenders";
const char kEnableSRPIsolatedPrerendersNSPDescription[] =
"Enables NoStatePrefetch on Isolated Prerenders.";
const char kDownloadAutoResumptionNativeName[] =
"Enable download auto-resumption in native";
const char kDownloadAutoResumptionNativeDescription[] =
......
......@@ -524,6 +524,9 @@ extern const char kEnableSRPIsolatedPrerendersDescription[];
extern const char kEnableSRPIsolatedPrerenderProbingName[];
extern const char kEnableSRPIsolatedPrerenderProbingDescription[];
extern const char kEnableSRPIsolatedPrerendersNSPName[];
extern const char kEnableSRPIsolatedPrerendersNSPDescription[];
extern const char kEnableResamplingInputEventsName[];
extern const char kEnableResamplingInputEventsDescription[];
extern const char kEnableResamplingScrollEventsName[];
......
......@@ -13,15 +13,18 @@
#include "chrome/common/chrome_features.h"
#include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
const char kIsolatedPrerenderEnableNSPCmdLineFlag[] =
"isolated-prerender-nsp-enabled";
bool IsolatedPrerenderIsEnabled() {
return base::FeatureList::IsEnabled(features::kIsolatePrerenders);
}
bool IsolatedPrerenderNoStatePrefetchSubresources() {
// This is just a command line flag during development.
// TODO(robertogden): Move this to a experiment param when code complete.
return base::CommandLine::ForCurrentProcess()->HasSwitch(
"isolated-prerender-nsp-enabled");
kIsolatedPrerenderEnableNSPCmdLineFlag) ||
base::GetFieldTrialParamByFeatureAsBool(features::kIsolatePrerenders,
"do_no_state_prefetch", false);
}
base::Optional<size_t> IsolatedPrerenderMaximumNumberOfPrefetches() {
......
......@@ -11,6 +11,9 @@
#include "base/time/time.h"
#include "url/gurl.h"
// This command line flag enables NoStatePrefetch on Isolated Prerenders.
extern const char kIsolatedPrerenderEnableNSPCmdLineFlag[];
// Returns true if the Isolated Prerender feature is enabled.
bool IsolatedPrerenderIsEnabled();
......
......@@ -40905,6 +40905,7 @@ from previous Chrome versions.
<int value="-281844827" label="AutofillCreditCardAblationExperiment:enabled"/>
<int value="-279920685" label="affiliation-based-matching:enabled"/>
<int value="-279493876" label="WebVRExperimentalRendering:enabled"/>
<int value="-279208712" label="isolated-prerender-nsp-enabled"/>
<int value="-278347667" label="default-tile-height"/>
<int value="-277144896" label="enable-viewport-meta"/>
<int value="-277118813" label="InterestFeedNotifications:disabled"/>
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