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

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

Issue 23534009: Re-enable pre-read experiment as a finch field trial. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 3 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
« chrome/app/client_util.cc ('K') | « chrome/app/client_util.cc ('k') | no next file » | 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/chrome_browser_main.h" 5 #include "chrome/browser/chrome_browser_main.h"
6 6
7 #if defined(TOOLKIT_GTK) 7 #if defined(TOOLKIT_GTK)
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 #endif 9 #endif
10 10
(...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after
700 } 700 }
701 #endif // defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX) 701 #endif // defined(OS_MACOSX) || defined(OS_WIN) || defined(OS_LINUX)
702 702
703 // Record collected startup metrics. 703 // Record collected startup metrics.
704 startup_metric_utils::OnBrowserStartupComplete(is_first_run); 704 startup_metric_utils::OnBrowserStartupComplete(is_first_run);
705 705
706 // Deletes self. 706 // Deletes self.
707 new LoadCompleteListener(); 707 new LoadCompleteListener();
708 } 708 }
709 709
710 // This code is specific to the Windows-only PreReadExperiment field-trial.
711 void ChromeBrowserMainParts::RecordPreReadExperimentTime(const char* name, 710 void ChromeBrowserMainParts::RecordPreReadExperimentTime(const char* name,
712 base::TimeDelta time) { 711 base::TimeDelta time) {
713 DCHECK(name != NULL); 712 DCHECK(name != NULL);
714 713
714 #if defined(OS_WIN)
715 #if defined(GOOGLE_CHROME_BUILD)
716 // The pre-read experiment is Windows and Google Chrome specific. Only
717 // initialize the field-trial if the experiment is running (environment
718 // variable is set, and valid).
719 scoped_ptr<base::Environment> env(base::Environment::Create());
720 std::string pre_read_group;
721 if (env->GetVar(chrome::kPreReadEnvironmentVariable, &pre_read_group)) {
Alexei Svitkine (slow) 2013/08/28 17:30:50 We have a script that parses source code to extrac
Roger McFarlane (Chromium) 2013/08/29 15:28:37 I've pulled this out to chrome_browser_field_trial
722 static const char kPreReadTrialName[] = "BrowserPreReadExperiment";
723 base::FieldTrialList::CreateFieldTrial(kPreReadTrialName, pre_read_group);
Alexei Svitkine (slow) 2013/08/28 17:30:50 You need to call group() on returned FieldTrial* o
Roger McFarlane (Chromium) 2013/08/29 15:28:37 Having created a setup function for the experiment
724 }
725 #endif
726 #endif
727
715 // This gets called with different histogram names, so we don't want to use 728 // This gets called with different histogram names, so we don't want to use
716 // the UMA_HISTOGRAM_CUSTOM_TIMES macro--it uses a static variable, and the 729 // the UMA_HISTOGRAM_CUSTOM_TIMES macro--it uses a static variable, and the
717 // first call wins. 730 // first call wins.
718 AddPreReadHistogramTime(name, time); 731 AddPreReadHistogramTime(name, time);
719
720 #if defined(OS_WIN)
721 #if defined(GOOGLE_CHROME_BUILD)
722 // The pre-read experiment is Windows and Google Chrome specific.
723 scoped_ptr<base::Environment> env(base::Environment::Create());
724
725 // Only record the sub-histogram result if the experiment is running
726 // (environment variable is set, and valid).
727 std::string pre_read_percentage;
728 if (env->GetVar(chrome::kPreReadEnvironmentVariable, &pre_read_percentage)) {
729 std::string uma_name(name);
730
731 // We want XP to record a separate histogram, as the loader on XP
732 // is very different from the Vista and Win7 loaders.
733 if (base::win::GetVersion() <= base::win::VERSION_XP)
734 uma_name += "_XP";
735
736 uma_name += "_PreRead_";
737 uma_name += pre_read_percentage;
738 AddPreReadHistogramTime(uma_name.c_str(), time);
739 }
740 #endif
741 #endif
742 } 732 }
743 733
744 // ----------------------------------------------------------------------------- 734 // -----------------------------------------------------------------------------
745 // TODO(viettrungluu): move more/rest of BrowserMain() into BrowserMainParts. 735 // TODO(viettrungluu): move more/rest of BrowserMain() into BrowserMainParts.
746 736
747 #if defined(OS_WIN) 737 #if defined(OS_WIN)
748 #define DLLEXPORT __declspec(dllexport) 738 #define DLLEXPORT __declspec(dllexport)
749 739
750 // We use extern C for the prototype DLLEXPORT to avoid C++ name mangling. 740 // We use extern C for the prototype DLLEXPORT to avoid C++ name mangling.
751 extern "C" { 741 extern "C" {
(...skipping 948 matching lines...) Expand 10 before | Expand all | Expand 10 after
1700 chromeos::CrosSettings::Shutdown(); 1690 chromeos::CrosSettings::Shutdown();
1701 #endif 1691 #endif
1702 #endif 1692 #endif
1703 } 1693 }
1704 1694
1705 // Public members: 1695 // Public members:
1706 1696
1707 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) { 1697 void ChromeBrowserMainParts::AddParts(ChromeBrowserMainExtraParts* parts) {
1708 chrome_extra_parts_.push_back(parts); 1698 chrome_extra_parts_.push_back(parts);
1709 } 1699 }
OLDNEW
« chrome/app/client_util.cc ('K') | « chrome/app/client_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698