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

Unified Diff: chrome/browser/chrome_browser_main.h

Issue 8302016: Make GTK and Aura parts orthogonal to OS parts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chrome_browser_main.h
diff --git a/chrome/browser/chrome_browser_main.h b/chrome/browser/chrome_browser_main.h
index 95f2fea609beba0ee0069fbb29108542c978d8ff..a520b4dcd6db9e4ad224ccfa8a926aa2289e7910 100644
--- a/chrome/browser/chrome_browser_main.h
+++ b/chrome/browser/chrome_browser_main.h
@@ -8,6 +8,7 @@
#include "base/basictypes.h"
#include "base/gtest_prod_util.h"
+#include "base/memory/scoped_vector.h"
#include "base/metrics/field_trial.h"
#include "base/tracked_objects.h"
#include "chrome/browser/first_run/first_run.h"
@@ -33,6 +34,26 @@ class ChromeBrowserMainParts : public content::BrowserMainParts {
public:
virtual ~ChromeBrowserMainParts();
+ // Subclass to handle setup for parts orthagonal to the OS (GTK, Aura, etc).
+ class ExtraParts {
+ public:
+ explicit ExtraParts(ChromeBrowserMainParts* main_parts);
+ virtual ~ExtraParts();
+
+ virtual void PreEarlyInitialization();
+ virtual void PostEarlyInitialization();
+ virtual void PreMainMessageLoopRun();
+ virtual void PostMainMessageLoopRun();
+
+ protected:
+ ChromeBrowserMainParts* main_parts() { return main_parts_; }
+
+ private:
+ ChromeBrowserMainParts* main_parts_;
+
+ DISALLOW_COPY_AND_ASSIGN(ExtraParts);
+ };
+
// Constructs metrics service and does related initialization, including
// creation of field trials. Call only after labs have been converted to
// switches.
@@ -43,13 +64,29 @@ class ChromeBrowserMainParts : public content::BrowserMainParts {
protected:
explicit ChromeBrowserMainParts(const MainFunctionParams& parameters);
+ // content::BrowserMainParts overrides
+ virtual void PreEarlyInitialization() OVERRIDE;
+ virtual void PostEarlyInitialization() OVERRIDE;
virtual void PreMainMessageLoopRun() OVERRIDE;
- int PreMainMessageLoopRunInternal();
virtual void MainMessageLoopRun() OVERRIDE;
virtual void PostMainMessageLoopRun() OVERRIDE;
virtual void ToolkitInitialized() OVERRIDE;
+ // New virtuals
+
+ // Displays a warning message that we can't find any locale data files.
+ virtual void ShowMissingLocaleMessageBox() = 0;
+ // Handles the --hide-icons and --show-icons command line options.
+ virtual int HandleIconsCommands() = 0;
+ // Check if there is any machine level Chrome installed. If so, handle it
+ // and return true.
+ virtual bool CheckMachineLevelInstall() = 0;
+ // Prepare localization, etc for handling crashes.
+ virtual void PrepareRestartOnCrashEnviroment() = 0;
+
private:
+ int PreMainMessageLoopRunInternal();
+
// Methods for |EarlyInitialization()| ---------------------------------------
// A/B test for the maximum number of persistent connections per host.
@@ -107,6 +144,12 @@ class ChromeBrowserMainParts : public content::BrowserMainParts {
// SetupMetricsAndFieldTrials is called.
scoped_ptr<base::FieldTrialList> field_trial_list_;
+ // Vector of extra parts instantiated in the constructor.
+ // The virtual methods on each of these are called in the order added.
+ // They are releaed (destroyed) in the opposite order.
+ typedef ScopedVector<ExtraParts> PartsList;
+ PartsList extra_parts_;
+
// Members initialized after / released before main_message_loop_ ------------
scoped_ptr<BrowserProcessImpl> browser_process_;
@@ -138,9 +181,6 @@ void RecordBreakpadStatusUMA(MetricsService* metrics);
// present on the current platform.
void WarnAboutMinimumSystemRequirements();
-// Displays a warning message that we can't find any locale data files.
-void ShowMissingLocaleMessageBox();
-
// Records the time from our process' startup to the present time in
// the UMA histogram |metric_name|.
void RecordBrowserStartupTime();
« no previous file with comments | « no previous file | chrome/browser/chrome_browser_main.cc » ('j') | chrome/browser/chromeos/chrome_browser_main_chromeos.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698