summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/prerender/prerender_field_trial.cc25
-rw-r--r--chrome/browser/prerender/prerender_field_trial.h3
-rw-r--r--chrome/common/chrome_switches.cc4
-rw-r--r--chrome/common/chrome_switches.h1
-rw-r--r--tools/metrics/histograms/histograms.xml51
5 files changed, 80 insertions, 4 deletions
diff --git a/chrome/browser/prerender/prerender_field_trial.cc b/chrome/browser/prerender/prerender_field_trial.cc
index 312c9fb..b74e79a 100644
--- a/chrome/browser/prerender/prerender_field_trial.cc
+++ b/chrome/browser/prerender/prerender_field_trial.cc
@@ -33,6 +33,10 @@ const char kLoggedInPredictorTrialName[] = "PrerenderLoggedInPredictor";
const char kLoggedInPredictorEnabledGroup[] = "Enabled";
const char kLoggedInPredictorDisabledGroup[] = "Disabled";
+const char kSideEffectFreeWhitelistTrialName[] = "SideEffectFreeWhitelist";
+const char kSideEffectFreeWhitelistEnabledGroup[] = "Enabled";
+const char kSideEffectFreeWhitelistDisabledGroup[] = "Disabled";
+
void SetupPrefetchFieldTrial() {
chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
if (channel == chrome::VersionInfo::CHANNEL_STABLE ||
@@ -146,6 +150,7 @@ void SetupPrerenderFieldTrial() {
void ConfigureOmniboxPrerender();
void ConfigureLoggedInPredictor();
+void ConfigureSideEffectFreeWhitelist();
void ConfigurePrefetchAndPrerender(const CommandLine& command_line) {
enum PrerenderOption {
@@ -203,6 +208,7 @@ void ConfigurePrefetchAndPrerender(const CommandLine& command_line) {
ConfigureOmniboxPrerender();
ConfigureLoggedInPredictor();
+ ConfigureSideEffectFreeWhitelist();
}
void ConfigureOmniboxPrerender() {
@@ -236,6 +242,20 @@ void ConfigureLoggedInPredictor() {
logged_in_predictor_trial->AppendGroup(kLoggedInPredictorEnabledGroup, 100);
}
+void ConfigureSideEffectFreeWhitelist() {
+ scoped_refptr<FieldTrial> side_effect_free_whitelist_trial(
+ FieldTrialList::FactoryGetFieldTrial(
+ kSideEffectFreeWhitelistTrialName, 100,
+ kSideEffectFreeWhitelistDisabledGroup, 2013, 12, 31, NULL));
+ chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
+ if (channel == chrome::VersionInfo::CHANNEL_STABLE ||
+ channel == chrome::VersionInfo::CHANNEL_BETA) {
+ return;
+ }
+ side_effect_free_whitelist_trial->AppendGroup(
+ kSideEffectFreeWhitelistEnabledGroup, 100);
+}
+
bool IsOmniboxEnabled(Profile* profile) {
if (!profile)
return false;
@@ -274,4 +294,9 @@ bool IsLoggedInPredictorEnabled() {
kLoggedInPredictorEnabledGroup;
}
+bool IsSideEffectFreeWhitelistEnabled() {
+ return base::FieldTrialList::FindFullName(kSideEffectFreeWhitelistTrialName)
+ == kSideEffectFreeWhitelistEnabledGroup;
+}
+
} // namespace prerender
diff --git a/chrome/browser/prerender/prerender_field_trial.h b/chrome/browser/prerender/prerender_field_trial.h
index 7ce9d9a..5e80a01 100644
--- a/chrome/browser/prerender/prerender_field_trial.h
+++ b/chrome/browser/prerender/prerender_field_trial.h
@@ -27,6 +27,9 @@ bool IsLocalPredictorEnabled();
// Returns true iff the LoggedIn Predictor is enabled.
bool IsLoggedInPredictorEnabled();
+// Returns true iff the side-effect free whitelist is enabled.
+bool IsSideEffectFreeWhitelistEnabled();
+
} // namespace prerender
#endif // CHROME_BROWSER_PRERENDER_PRERENDER_FIELD_TRIAL_H_
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
index 30f5b36..fa17dd0 100644
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -1230,6 +1230,10 @@ const char kSbDisableDownloadProtection[] =
const char kSbDisableExtensionBlacklist[] =
"safebrowsing-disable-extension-blacklist";
+// Disables safebrowsing feature that provides a side-effect free whitelist.
+const char kSbDisableSideEffectFreeWhitelist[] =
+ "safebrowsing-disable-side-effect-free-whitelist";
+
// Enables or disables extension scripts badges in the location bar.
const char kScriptBadges[] = "script-badges";
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
index cd71d1f..923f3e4 100644
--- a/chrome/common/chrome_switches.h
+++ b/chrome/common/chrome_switches.h
@@ -323,6 +323,7 @@ extern const char kSbURLPrefix[];
extern const char kSbDisableAutoUpdate[];
extern const char kSbDisableDownloadProtection[];
extern const char kSbDisableExtensionBlacklist[];
+extern const char kSbDisableSideEffectFreeWhitelist[];
extern const char kScriptBadges[];
extern const char kScriptBubble[];
extern const char kSearchInOmniboxHint[];
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 1b93a9f..46d4e4e 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -6305,6 +6305,35 @@ other types of suffix sets.
<summary>Time to store the PrefixSet file.</summary>
</histogram>
+<histogram name="SB2.SideEffectFreeWhitelistDatabaseKilobytes" units="KB">
+ <summary>
+ The size of the Side Effect Free Whitelist SaafeBrowsing database file on
+ disk in kilobytes, after an update has occurred.
+ </summary>
+</histogram>
+
+<histogram name="SB2.SideEffectFreeWhitelistPrefixSetKilobytes" units="KB">
+ <summary>
+ The size of the Side Effect Free Whitelist PrefixSet file in kilobytes,
+ after an udpate has occurred.
+ </summary>
+</histogram>
+
+<histogram name="SB2.SideEffectFreeWhitelistPrefixSetLoad" units="ms">
+ <summary>Time to load the Side Effect Free Whitelist PrefixSet file.</summary>
+</histogram>
+
+<histogram name="SB2.SideEffectFreeWhitelistPrefixSetWrite" units="ms">
+ <summary>
+ Time to store the Side Effect Free Whitelist PrefixSet file.
+ </summary>
+</histogram>
+
+<histogram name="SB2.SideEffectFreeWhitelistStatus"
+ enum="SB2SideEffectFreeWhitelistStatus">
+ <summary>The instantiation status of the SideEffectFreeWhitelist.</summary>
+</histogram>
+
<histogram name="SB2.SubPrefixes">
<summary>
The number of sub prefixes stored in the database after the last update.
@@ -9933,10 +9962,19 @@ other types of suffix sets.
<int value="11" label="DOWNLOAD_DB_UPDATE_FINISH"/>
<int value="12" label="CSD_DB_UPDATE_BEGIN"/>
<int value="13" label="CSD_DB_UPDATE_FINISH"/>
- <int value="14" label="PREFIX_SET_MISSING"/>
- <int value="15" label="PREFIX_SET_READ"/>
- <int value="16" label="PREFIX_SET_WRITE"/>
- <int value="17" label="PREFIX_SET_DELETE"/>
+ <int value="14" label="BROWSE_PREFIX_SET_MISSING"/>
+ <int value="15" label="BROWSE_PREFIX_SET_READ"/>
+ <int value="16" label="BROWSE_PREFIX_SET_WRITE"/>
+ <int value="17" label="BROWSE_PREFIX_SET_DELETE"/>
+ <int value="18" label="EXTENSION_BLACKLIST_UPDATE_BEGIN"/>
+ <int value="19" label="EXTENSION_BLACKLIST_UPDATE_FINISH"/>
+ <int value="20" label="EXTENSION_BLACKLIST_UPDATE_DELETE"/>
+ <int value="21" label="SIDE_EFFECT_FREE_WHITELIST_UPDATE_BEGIN"/>
+ <int value="22" label="SIDE_EFFECT_FREE_WHITELIST_UPDATE_FINISH"/>
+ <int value="23" label="SIDE_EFFECT_FREE_WHITELIST_DELETE"/>
+ <int value="24" label="SIDE_EFFECT_FREE_WHITELIST_PREFIX_SET_READ"/>
+ <int value="25" label="SIDE_EFFECT_FREE_WHITELIST_PREFIX_SET_WRITE"/>
+ <int value="26" label="SIDE_EFFECT_FREE_WHITELIST_PREFIX_SET_DELETE"/>
</enum>
<enum name="SB2DownloadChecks" type="int">
@@ -10013,6 +10051,11 @@ other types of suffix sets.
<int value="19" label="BLOOM_MISS_PREFIX_HIT"/>
</enum>
+<enum name="SB2SideEffectFreeWhitelistStatus" type="int">
+ <int value="0" label="Enabled"/>
+ <int value="1" label="Disabled"/>
+</enum>
+
<enum name="SB2UpdateResult" type="int">
<int value="0" label="FAIL"/>
<int value="1" label="SUCCESS"/>