1 // Copyright 2011 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_CHROME_BROWSER_MAIN_EXTRA_PARTS_H_
6 #define CHROME_BROWSER_CHROME_BROWSER_MAIN_EXTRA_PARTS_H_
8 // Interface class for Parts owned by ChromeBrowserMainParts.
9 // The default implementation for all methods is empty.
11 // Most of these map to content::BrowserMainParts methods. This interface is
12 // separate to allow stages to be further subdivided for Chrome specific
13 // initialization stages (e.g. browser process init, profile init).
15 // While ChromeBrowserMainParts are platform-specific,
16 // ChromeBrowserMainExtraParts are used to do further initialization for various
17 // Chrome toolkits (e.g., GTK, VIEWS, ASH, AURA, etc.; see
18 // ChromeContentBrowserClient::CreateBrowserMainParts()).
22 class ChromeBrowserMainExtraParts {
24 virtual ~ChromeBrowserMainExtraParts() {}
26 // EarlyInitialization methods.
27 virtual void PreEarlyInitialization() {}
28 virtual void PostEarlyInitialization() {}
30 // ToolkitInitialized methods.
31 virtual void ToolkitInitialized() {}
33 // CreateMainMessageLoop methods.
34 virtual void PreCreateMainMessageLoop() {}
35 virtual void PostCreateMainMessageLoop() {}
37 // MainMessageLoopRun methods.
38 virtual void PreCreateThreads() {}
39 virtual void PostCreateThreads() {}
40 virtual void PreProfileInit() {}
41 virtual void PostProfileInit(Profile* profile, bool is_initial_profile) {}
42 virtual void PreBrowserStart() {}
43 virtual void PostBrowserStart() {}
44 virtual void PreMainMessageLoopRun() {}
45 virtual void PostMainMessageLoopRun() {}
48 #endif // CHROME_BROWSER_CHROME_BROWSER_MAIN_EXTRA_PARTS_H_