summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chrome_browser_main.cc12
-rw-r--r--chrome/browser/chrome_browser_main.h6
-rw-r--r--chrome/browser/chromeos/chrome_browser_main_chromeos.cc13
-rw-r--r--chrome/browser/chromeos/chrome_browser_main_chromeos.h5
4 files changed, 20 insertions, 16 deletions
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index 54f308b..1eaac21 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -583,10 +583,11 @@ void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() {
browser_process_->variations_service();
variations_service->CreateTrialsFromSeed(browser_process_->local_state());
- SetupFieldTrials(metrics->recording_active(),
- local_state_->IsManagedPreference(
+ SetupFieldTrials(local_state_->IsManagedPreference(
prefs::kMaxConnectionsPerProxy));
+ SetupPlatformFieldTrials();
+
// Initialize FieldTrialSynchronizer system. This is a singleton and is used
// for posting tasks via base::Bind. Its deleted when it goes out of scope.
// Even though base::Bind does AddRef and Release, the object will not be
@@ -1075,8 +1076,7 @@ void ChromeBrowserMainParts::DisableNewTabFieldTrialIfNecesssary() {
// ChromeBrowserMainParts: |SetupMetricsAndFieldTrials()| related --------------
-void ChromeBrowserMainParts::SetupFieldTrials(bool metrics_recording_enabled,
- bool proxy_policy_is_set) {
+void ChromeBrowserMainParts::SetupFieldTrials(bool proxy_policy_is_set) {
// Note: make sure to call ConnectionFieldTrial() before
// ProxyConnectionsFieldTrial().
ConnectionFieldTrial();
@@ -1456,6 +1456,10 @@ void ChromeBrowserMainParts::RunPageCycler() {
page_cycler->Run();
}
+void ChromeBrowserMainParts::SetupPlatformFieldTrials() {
+ // Base class implementation of this does nothing.
+}
+
int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
// Now that the file thread has been started, start recording.
StartMetricsRecording();
diff --git a/chrome/browser/chrome_browser_main.h b/chrome/browser/chrome_browser_main.h
index 84d1b38..f7002a4 100644
--- a/chrome/browser/chrome_browser_main.h
+++ b/chrome/browser/chrome_browser_main.h
@@ -81,6 +81,9 @@ class ChromeBrowserMainParts : public content::BrowserMainParts {
// Runs the PageCycler; called if the switch kVisitURLs is present.
virtual void RunPageCycler();
+ // Override this in subclasses to initialize platform specific field trials.
+ virtual void SetupPlatformFieldTrials();
+
// Displays a warning message that we can't find any locale data files.
virtual void ShowMissingLocaleMessageBox() = 0;
@@ -144,8 +147,7 @@ class ChromeBrowserMainParts : public content::BrowserMainParts {
void SetupMetricsAndFieldTrials();
// Add an invocation of your field trial init function to this method.
- void SetupFieldTrials(bool metrics_recording_enabled,
- bool proxy_policy_is_set);
+ void SetupFieldTrials(bool proxy_policy_is_set);
// Starts recording of metrics. This can only be called after we have a file
// thread.
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
index 9734a30..04b51e3 100644
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -292,13 +292,6 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopStart() {
ChromeBrowserMainPartsLinux::PostMainMessageLoopStart();
}
-int ChromeBrowserMainPartsChromeos::PreCreateThreads() {
- // Set up field trial for low memory headroom settings.
- SetupLowMemoryHeadroomFieldTrial();
-
- return ChromeBrowserMainPartsLinux::PreCreateThreads();
-}
-
// Threads are initialized MainMessageLoopStart and MainMessageLoopRun.
void ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun() {
@@ -518,6 +511,10 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
ChromeBrowserMainPartsLinux::PostMainMessageLoopRun();
}
+void ChromeBrowserMainPartsChromeos::SetupPlatformFieldTrials() {
+ SetupLowMemoryHeadroomFieldTrial();
+}
+
void ChromeBrowserMainPartsChromeos::SetupLowMemoryHeadroomFieldTrial() {
chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
// Only enable this experiment on Canary and Dev, since it's possible
@@ -533,7 +530,7 @@ void ChromeBrowserMainPartsChromeos::SetupLowMemoryHeadroomFieldTrial() {
const base::FieldTrial::Probability kEnableProbability = 1;
scoped_refptr<base::FieldTrial> trial =
base::FieldTrialList::FactoryGetFieldTrial(
- "LowMemoryMargin", kDivisor, "default", 2012, 6, 30, NULL);
+ "LowMemoryMargin", kDivisor, "default", 2012, 7, 30, NULL);
int disable = trial->AppendGroup("off", kEnableProbability);
int margin_0mb = trial->AppendGroup("0mb", kEnableProbability);
int margin_25mb = trial->AppendGroup("25mb", kEnableProbability);
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.h b/chrome/browser/chromeos/chrome_browser_main_chromeos.h
index f924966..726100e 100644
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.h
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.h
@@ -35,7 +35,6 @@ class ChromeBrowserMainPartsChromeos : public ChromeBrowserMainPartsLinux {
virtual void PreEarlyInitialization() OVERRIDE;
virtual void PreMainMessageLoopStart() OVERRIDE;
virtual void PostMainMessageLoopStart() OVERRIDE;
- virtual int PreCreateThreads() OVERRIDE;
virtual void PreMainMessageLoopRun() OVERRIDE;
// Stages called from PreMainMessageLoopRun.
@@ -46,10 +45,12 @@ class ChromeBrowserMainPartsChromeos : public ChromeBrowserMainPartsLinux {
virtual void PostMainMessageLoopRun() OVERRIDE;
+ virtual void SetupPlatformFieldTrials() OVERRIDE;
+
+ private:
// Set up field trial for low memory headroom settings.
void SetupLowMemoryHeadroomFieldTrial();
- private:
scoped_ptr<chromeos::BrightnessObserver> brightness_observer_;
scoped_ptr<chromeos::OutputObserver> output_observer_;
scoped_ptr<chromeos::ResumeObserver> resume_observer_;