[M120 Migration]Fix for crash during chrome exit
[platform/framework/web/chromium-efl.git] / chrome / browser / chrome_browser_main_extra_parts.h
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.
4
5 #ifndef CHROME_BROWSER_CHROME_BROWSER_MAIN_EXTRA_PARTS_H_
6 #define CHROME_BROWSER_CHROME_BROWSER_MAIN_EXTRA_PARTS_H_
7
8 // Interface class for Parts owned by ChromeBrowserMainParts.
9 // The default implementation for all methods is empty.
10
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).
14
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()).
19
20 class Profile;
21
22 class ChromeBrowserMainExtraParts {
23  public:
24   virtual ~ChromeBrowserMainExtraParts() {}
25
26   // EarlyInitialization methods.
27   virtual void PreEarlyInitialization() {}
28   virtual void PostEarlyInitialization() {}
29
30   // ToolkitInitialized methods.
31   virtual void ToolkitInitialized() {}
32
33   // CreateMainMessageLoop methods.
34   virtual void PreCreateMainMessageLoop() {}
35   virtual void PostCreateMainMessageLoop() {}
36
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() {}
46 };
47
48 #endif  // CHROME_BROWSER_CHROME_BROWSER_MAIN_EXTRA_PARTS_H_