Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Side by Side Diff: chrome/browser/browser_main.cc

Issue 6544004: Add field trial for A/B testing of SSL False Start. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/browser_main.h ('k') | chrome/renderer/page_load_histograms.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/browser_main.h" 5 #include "chrome/browser/browser_main.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 // This will be called after the command-line has been mutated by about:flags 224 // This will be called after the command-line has been mutated by about:flags
225 void BrowserMainParts::SetupFieldTrials() { 225 void BrowserMainParts::SetupFieldTrials() {
226 // Note: make sure to call ConnectionFieldTrial() before 226 // Note: make sure to call ConnectionFieldTrial() before
227 // ProxyConnectionsFieldTrial(). 227 // ProxyConnectionsFieldTrial().
228 ConnectionFieldTrial(); 228 ConnectionFieldTrial();
229 SocketTimeoutFieldTrial(); 229 SocketTimeoutFieldTrial();
230 ProxyConnectionsFieldTrial(); 230 ProxyConnectionsFieldTrial();
231 PrefetchAndPrerenderFieldTrial(); 231 PrefetchAndPrerenderFieldTrial();
232 SpdyFieldTrial(); 232 SpdyFieldTrial();
233 ConnectBackupJobsFieldTrial(); 233 ConnectBackupJobsFieldTrial();
234 SSLFalseStartFieldTrial();
234 } 235 }
235 236
236 // This is an A/B test for the maximum number of persistent connections per 237 // This is an A/B test for the maximum number of persistent connections per
237 // host. Currently Chrome, Firefox, and IE8 have this value set at 6. Safari 238 // host. Currently Chrome, Firefox, and IE8 have this value set at 6. Safari
238 // uses 4, and Fasterfox (a plugin for Firefox that supposedly configures it to 239 // uses 4, and Fasterfox (a plugin for Firefox that supposedly configures it to
239 // run faster) uses 8. We would like to see how much of an effect this value has 240 // run faster) uses 8. We would like to see how much of an effect this value has
240 // on browsing. Too large a value might cause us to run into SYN flood detection 241 // on browsing. Too large a value might cause us to run into SYN flood detection
241 // mechanisms. 242 // mechanisms.
242 void BrowserMainParts::ConnectionFieldTrial() { 243 void BrowserMainParts::ConnectionFieldTrial() {
243 const base::FieldTrial::Probability kConnectDivisor = 100; 244 const base::FieldTrial::Probability kConnectDivisor = 100;
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 if (parsed_command_line().HasSwitch(switches::kMaxSpdyConcurrentStreams)) { 423 if (parsed_command_line().HasSwitch(switches::kMaxSpdyConcurrentStreams)) {
423 int value = 0; 424 int value = 0;
424 base::StringToInt(parsed_command_line().GetSwitchValueASCII( 425 base::StringToInt(parsed_command_line().GetSwitchValueASCII(
425 switches::kMaxSpdyConcurrentStreams), 426 switches::kMaxSpdyConcurrentStreams),
426 &value); 427 &value);
427 if (value > 0) 428 if (value > 0)
428 net::SpdySession::set_max_concurrent_streams(value); 429 net::SpdySession::set_max_concurrent_streams(value);
429 } 430 }
430 } 431 }
431 432
433 void BrowserMainParts::SSLFalseStartFieldTrial() {
434 if (parsed_command_line().HasSwitch(switches::kDisableSSLFalseStart)) {
435 net::SSLConfigService::DisableFalseStart();
436 return;
437 }
438
439 const base::FieldTrial::Probability kDivisor = 100;
440 base::FieldTrial::Probability falsestart_probability = 50; // 50/50 trial
441
442 // After July 30, 2011 builds, it will always be in default group.
443 scoped_refptr<base::FieldTrial> trial(
444 new base::FieldTrial(
445 "SSLFalseStart", kDivisor, "FalseStart_enabled", 2011, 7, 30));
446
447 int disabled_group = trial->AppendGroup("FalseStart_disabled",
448 falsestart_probability);
449
450 int trial_grp = trial->group();
451 if (trial_grp == disabled_group)
452 net::SSLConfigService::DisableFalseStart();
453 }
454
432 // Parse the --prerender= command line switch, which controls both prerendering 455 // Parse the --prerender= command line switch, which controls both prerendering
433 // and prefetching. If the switch is unset, or is set to "auto", then the user 456 // and prefetching. If the switch is unset, or is set to "auto", then the user
434 // is assigned to a field trial. 457 // is assigned to a field trial.
435 void BrowserMainParts::PrefetchAndPrerenderFieldTrial() { 458 void BrowserMainParts::PrefetchAndPrerenderFieldTrial() {
436 enum PrerenderOption { 459 enum PrerenderOption {
437 PRERENDER_OPTION_AUTO, 460 PRERENDER_OPTION_AUTO,
438 PRERENDER_OPTION_DISABLED, 461 PRERENDER_OPTION_DISABLED,
439 PRERENDER_OPTION_ENABLED, 462 PRERENDER_OPTION_ENABLED,
440 PRERENDER_OPTION_PREFETCH_ONLY, 463 PRERENDER_OPTION_PREFETCH_ONLY,
441 }; 464 };
(...skipping 1409 matching lines...) Expand 10 before | Expand all | Expand 10 after
1851 #if defined(OS_CHROMEOS) 1874 #if defined(OS_CHROMEOS)
1852 // To be precise, logout (browser shutdown) is not yet done, but the 1875 // To be precise, logout (browser shutdown) is not yet done, but the
1853 // remaining work is negligible, hence we say LogoutDone here. 1876 // remaining work is negligible, hence we say LogoutDone here.
1854 chromeos::BootTimesLoader::Get()->AddLogoutTimeMarker("LogoutDone", 1877 chromeos::BootTimesLoader::Get()->AddLogoutTimeMarker("LogoutDone",
1855 false); 1878 false);
1856 chromeos::BootTimesLoader::Get()->WriteLogoutTimes(); 1879 chromeos::BootTimesLoader::Get()->WriteLogoutTimes();
1857 #endif 1880 #endif
1858 TRACE_EVENT_END("BrowserMain", 0, 0); 1881 TRACE_EVENT_END("BrowserMain", 0, 0);
1859 return result_code; 1882 return result_code;
1860 } 1883 }
OLDNEW
« no previous file with comments | « chrome/browser/browser_main.h ('k') | chrome/renderer/page_load_histograms.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698