OLD | NEW |
---|---|
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 #ifndef CHROME_BROWSER_BROWSER_MAIN_H_ | 5 #ifndef CHROME_BROWSER_BROWSER_MAIN_H_ |
6 #define CHROME_BROWSER_BROWSER_MAIN_H_ | 6 #define CHROME_BROWSER_BROWSER_MAIN_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
11 #include "base/metrics/field_trial.h" | 11 #include "base/metrics/field_trial.h" |
12 #include "base/tracked_objects.h" | 12 #include "base/tracked_objects.h" |
13 #include "content/browser/browser_main.h" | 13 #include "content/browser/browser_main.h" |
14 #include "chrome/browser/first_run/first_run.h" | |
tony
2011/09/08 17:21:04
Nit: alphabetize
jam
2011/09/08 17:43:01
Done.
| |
14 | 15 |
16 class BrowserProcessImpl; | |
15 class FieldTrialSynchronizer; | 17 class FieldTrialSynchronizer; |
16 class HistogramSynchronizer; | 18 class HistogramSynchronizer; |
17 class MetricsService; | 19 class MetricsService; |
18 class PrefService; | 20 class PrefService; |
21 class ProcessSingleton; | |
22 class Profile; | |
19 class ShutdownWatcherHelper; | 23 class ShutdownWatcherHelper; |
24 class TranslateManager; | |
20 | 25 |
21 namespace chrome_browser { | 26 namespace chrome_browser { |
22 // For use by ShowMissingLocaleMessageBox. | 27 // For use by ShowMissingLocaleMessageBox. |
23 extern const char kMissingLocaleDataTitle[]; | 28 extern const char kMissingLocaleDataTitle[]; |
24 extern const char kMissingLocaleDataMessage[]; | 29 extern const char kMissingLocaleDataMessage[]; |
25 } | 30 } |
26 | 31 |
27 class ChromeBrowserMainParts : public content::BrowserMainParts { | 32 class ChromeBrowserMainParts : public content::BrowserMainParts { |
28 public: | 33 public: |
29 virtual ~ChromeBrowserMainParts(); | 34 virtual ~ChromeBrowserMainParts(); |
30 | 35 |
31 // Constructs HistogramSynchronizer which gets released early (before | |
32 // main_message_loop_). | |
33 void SetupHistogramSynchronizer(); | |
34 | |
35 // Constructs metrics service and does related initialization, including | 36 // Constructs metrics service and does related initialization, including |
36 // creation of field trials. Call only after labs have been converted to | 37 // creation of field trials. Call only after labs have been converted to |
37 // switches. | 38 // switches. |
38 MetricsService* SetupMetricsAndFieldTrials( | 39 MetricsService* SetupMetricsAndFieldTrials( |
39 const CommandLine& parsed_command_line, | 40 const CommandLine& parsed_command_line, |
40 PrefService* local_state); | 41 PrefService* local_state); |
41 | 42 |
42 protected: | 43 protected: |
43 explicit ChromeBrowserMainParts(const MainFunctionParams& parameters); | 44 explicit ChromeBrowserMainParts(const MainFunctionParams& parameters); |
44 | 45 |
45 virtual void PostMainMessageLoopStart() OVERRIDE; | 46 virtual void PostMainMessageLoopStart() OVERRIDE; |
47 virtual void PreMainMessageLoopRun() OVERRIDE; | |
48 virtual void MainMessageLoopRun() OVERRIDE; | |
49 virtual void PostMainMessageLoopRun() OVERRIDE; | |
46 virtual void ToolkitInitialized() OVERRIDE; | 50 virtual void ToolkitInitialized() OVERRIDE; |
47 | 51 |
48 virtual int TemporaryContinue() OVERRIDE; | |
49 | |
50 private: | 52 private: |
51 // Methods for |EarlyInitialization()| --------------------------------------- | 53 // Methods for |EarlyInitialization()| --------------------------------------- |
52 | 54 |
53 // A/B test for the maximum number of persistent connections per host. | 55 // A/B test for the maximum number of persistent connections per host. |
54 void ConnectionFieldTrial(); | 56 void ConnectionFieldTrial(); |
55 | 57 |
56 // A/B test for determining a value for unused socket timeout. | 58 // A/B test for determining a value for unused socket timeout. |
57 void SocketTimeoutFieldTrial(); | 59 void SocketTimeoutFieldTrial(); |
58 | 60 |
59 // A/B test for the maximum number of connections per proxy server. | 61 // A/B test for the maximum number of connections per proxy server. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
95 // destroyed after the main_message_loop. | 97 // destroyed after the main_message_loop. |
96 tracked_objects::AutoTracking tracking_objects_; | 98 tracked_objects::AutoTracking tracking_objects_; |
97 #endif | 99 #endif |
98 | 100 |
99 // Statistical testing infrastructure for the entire browser. NULL until | 101 // Statistical testing infrastructure for the entire browser. NULL until |
100 // SetupMetricsAndFieldTrials is called. | 102 // SetupMetricsAndFieldTrials is called. |
101 scoped_ptr<base::FieldTrialList> field_trial_list_; | 103 scoped_ptr<base::FieldTrialList> field_trial_list_; |
102 | 104 |
103 // Members initialized after / released before main_message_loop_ ------------ | 105 // Members initialized after / released before main_message_loop_ ------------ |
104 | 106 |
105 // Initialized in SetupHistogramSynchronizer. | 107 scoped_ptr<BrowserProcessImpl> browser_process_; |
106 scoped_refptr<HistogramSynchronizer> histogram_synchronizer_; | 108 scoped_refptr<HistogramSynchronizer> histogram_synchronizer_; |
109 scoped_ptr<ProcessSingleton> process_singleton_; | |
110 scoped_ptr<FirstRun::MasterPrefs> master_prefs_; | |
111 bool record_search_engine_; | |
112 TranslateManager* translate_manager_; | |
113 MetricsService* metrics_; | |
114 Profile* profile_; | |
115 bool run_message_loop_; | |
107 | 116 |
108 // Initialized in SetupMetricsAndFieldTrials. | 117 // Initialized in SetupMetricsAndFieldTrials. |
109 scoped_refptr<FieldTrialSynchronizer> field_trial_synchronizer_; | 118 scoped_refptr<FieldTrialSynchronizer> field_trial_synchronizer_; |
110 | 119 |
111 FRIEND_TEST(BrowserMainTest, WarmConnectionFieldTrial_WarmestSocket); | 120 FRIEND_TEST(BrowserMainTest, WarmConnectionFieldTrial_WarmestSocket); |
112 FRIEND_TEST(BrowserMainTest, WarmConnectionFieldTrial_Random); | 121 FRIEND_TEST(BrowserMainTest, WarmConnectionFieldTrial_Random); |
113 FRIEND_TEST(BrowserMainTest, WarmConnectionFieldTrial_Invalid); | 122 FRIEND_TEST(BrowserMainTest, WarmConnectionFieldTrial_Invalid); |
114 DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainParts); | 123 DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainParts); |
115 }; | 124 }; |
116 | 125 |
(...skipping 13 matching lines...) Expand all Loading... | |
130 // Records the time from our process' startup to the present time in | 139 // Records the time from our process' startup to the present time in |
131 // the UMA histogram |metric_name|. | 140 // the UMA histogram |metric_name|. |
132 void RecordBrowserStartupTime(); | 141 void RecordBrowserStartupTime(); |
133 | 142 |
134 // Records a time value to an UMA histogram in the context of the | 143 // Records a time value to an UMA histogram in the context of the |
135 // PreReadExperiment field-trial. This also reports to the appropriate | 144 // PreReadExperiment field-trial. This also reports to the appropriate |
136 // sub-histogram (_PreRead(Enabled|Disabled)). | 145 // sub-histogram (_PreRead(Enabled|Disabled)). |
137 void RecordPreReadExperimentTime(const char* name, base::TimeDelta time); | 146 void RecordPreReadExperimentTime(const char* name, base::TimeDelta time); |
138 | 147 |
139 #endif // CHROME_BROWSER_BROWSER_MAIN_H_ | 148 #endif // CHROME_BROWSER_BROWSER_MAIN_H_ |
OLD | NEW |