diff options
author | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-10 23:00:35 +0000 |
---|---|---|
committer | mattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-10 23:00:35 +0000 |
commit | 781ffd638fa641c8fbd6d6d049ce9d88e9b201fc (patch) | |
tree | 2c66b9f50a2b7043df18b970d1bc06186406167a | |
parent | 7d3d2ed0aa4396620c38aee1aafd2e56f6133b5e (diff) | |
download | chromium_src-781ffd638fa641c8fbd6d6d049ce9d88e9b201fc.zip chromium_src-781ffd638fa641c8fbd6d6d049ce9d88e9b201fc.tar.gz chromium_src-781ffd638fa641c8fbd6d6d049ce9d88e9b201fc.tar.bz2 |
TLS channel id field trial.
BUG=136462
Review URL: https://chromiumcodereview.appspot.com/10753022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@145978 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chrome_browser_main.cc | 21 | ||||
-rw-r--r-- | chrome/browser/chrome_browser_main.h | 3 | ||||
-rw-r--r-- | net/base/ssl_config_service.cc | 8 | ||||
-rw-r--r-- | net/base/ssl_config_service.h | 3 |
4 files changed, 35 insertions, 0 deletions
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc index b3f67d7..6f4e57c 100644 --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc @@ -115,6 +115,7 @@ #include "grit/platform_locale_settings.h" #include "net/base/net_module.h" #include "net/base/sdch_manager.h" +#include "net/base/ssl_config_service.h" #include "net/cookies/cookie_monster.h" #include "net/http/http_basic_stream.h" #include "net/http/http_network_layer.h" @@ -1099,6 +1100,25 @@ void ChromeBrowserMainParts::DisableNewTabFieldTrialIfNecesssary() { } } +void ChromeBrowserMainParts::ChannelIDFieldTrial() { + chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); + if (channel == chrome::VersionInfo::CHANNEL_CANARY) { + net::SSLConfigService::EnableChannelIDTrial(); + } else if (channel == chrome::VersionInfo::CHANNEL_DEV && + base::FieldTrialList::IsOneTimeRandomizationEnabled()) { + const base::FieldTrial::Probability kDivisor = 100; + // 10% probability of being in the enabled group. + const base::FieldTrial::Probability kEnableProbability = 10; + scoped_refptr<base::FieldTrial> trial = + base::FieldTrialList::FactoryGetFieldTrial( + "ChannelID", kDivisor, "disable", 2012, 8, 23, NULL); + trial->UseOneTimeRandomization(); + int enable_group = trial->AppendGroup("enable", kEnableProbability); + if (trial->group() == enable_group) + net::SSLConfigService::EnableChannelIDTrial(); + } +} + // ChromeBrowserMainParts: |SetupMetricsAndFieldTrials()| related -------------- void ChromeBrowserMainParts::SetupFieldTrials(bool proxy_policy_is_set) { @@ -1121,6 +1141,7 @@ void ChromeBrowserMainParts::SetupFieldTrials(bool proxy_policy_is_set) { SetupUniformityFieldTrials(); AutocompleteFieldTrial::Activate(); DisableNewTabFieldTrialIfNecesssary(); + ChannelIDFieldTrial(); } void ChromeBrowserMainParts::StartMetricsRecording() { diff --git a/chrome/browser/chrome_browser_main.h b/chrome/browser/chrome_browser_main.h index 347e7f86..e957a53 100644 --- a/chrome/browser/chrome_browser_main.h +++ b/chrome/browser/chrome_browser_main.h @@ -140,6 +140,9 @@ class ChromeBrowserMainParts : public content::BrowserMainParts { // Disables the new tab field trial if not running in desktop mode. void DisableNewTabFieldTrialIfNecesssary(); + // Field trial for testing TLS channel id. + void ChannelIDFieldTrial(); + // Methods for |SetupMetricsAndFieldTrials()| -------------------------------- // Constructs metrics service and does related initialization, including diff --git a/net/base/ssl_config_service.cc b/net/base/ssl_config_service.cc index ad2928e16..f9ee9ef 100644 --- a/net/base/ssl_config_service.cc +++ b/net/base/ssl_config_service.cc @@ -74,6 +74,7 @@ SSLConfigService::SSLConfigService() } static bool g_cached_info_enabled = false; +static bool g_channel_id_trial = false; // GlobalCRLSet holds a reference to the global CRLSet. It simply wraps a lock // around a scoped_refptr so that getting a reference doesn't race with @@ -132,6 +133,11 @@ uint16 SSLConfigService::default_version_max() { return g_default_version_max; } +// static +void SSLConfigService::EnableChannelIDTrial() { + g_channel_id_trial = true; +} + void SSLConfigService::AddObserver(Observer* observer) { observer_list_.AddObserver(observer); } @@ -146,6 +152,8 @@ SSLConfigService::~SSLConfigService() { // static void SSLConfigService::SetSSLConfigFlags(SSLConfig* ssl_config) { ssl_config->cached_info_enabled = g_cached_info_enabled; + if (g_channel_id_trial) + ssl_config->channel_id_enabled = true; } void SSLConfigService::ProcessConfigUpdate(const SSLConfig& orig_config, diff --git a/net/base/ssl_config_service.h b/net/base/ssl_config_service.h index b4ba45a..94c5efc 100644 --- a/net/base/ssl_config_service.h +++ b/net/base/ssl_config_service.h @@ -181,6 +181,9 @@ class NET_EXPORT SSLConfigService static void SetDefaultVersionMax(uint16 version_max); static uint16 default_version_max(); + // Force channel ID support to be enabled. + static void EnableChannelIDTrial(); + // Is SNI available in this configuration? static bool IsSNIAvailable(SSLConfigService* service); |