blob: c5e8850c241eac0bdfd521928b1b867e60a234fc [file] [log] [blame]
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CHROME_BROWSER_MAIN_EXTRA_PARTS_H_
#define CHROME_BROWSER_CHROME_BROWSER_MAIN_EXTRA_PARTS_H_
// Interface class for Parts owned by ChromeBrowserMainParts.
// The default implementation for all methods is empty.
// Most of these map to content::BrowserMainParts methods. This interface is
// separate to allow stages to be further subdivided for Chrome specific
// initialization stages (e.g. browser process init, profile init).
// While ChromeBrowserMainParts are platform-specific,
// ChromeBrowserMainExtraParts are used to do further initialization for various
// Chrome toolkits (e.g., GTK, VIEWS, ASH, AURA, etc.; see
// ChromeContentBrowserClient::CreateBrowserMainParts()).
class ChromeBrowserMainExtraParts {
public:
virtual ~ChromeBrowserMainExtraParts() {}
// EarlyInitialization methods.
virtual void PreEarlyInitialization() {}
virtual void PostEarlyInitialization() {}
// ToolkitInitialized methods.
virtual void ToolkitInitialized() {}
// MainMessageLoopStart methods.
virtual void PreMainMessageLoopStart() {}
virtual void PostMainMessageLoopStart() {}
// MainMessageLoopRun methods.
virtual void PreCreateThreads() {}
virtual void PostCreateThreads() {}
virtual void PreProfileInit() {}
virtual void PostProfileInit() {}
virtual void PreBrowserStart() {}
virtual void PostBrowserStart() {}
virtual void PreMainMessageLoopRun() {}
virtual void PostMainMessageLoopRun() {}
};
#endif // CHROME_BROWSER_CHROME_BROWSER_MAIN_EXTRA_PARTS_H_