190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// found in the LICENSE file.
490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#ifndef CHROME_BROWSER_PROFILES_CHROME_BROWSER_MAIN_EXTRA_PARTS_PROFILES_H_
690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#define CHROME_BROWSER_PROFILES_CHROME_BROWSER_MAIN_EXTRA_PARTS_PROFILES_H_
790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/basictypes.h"
990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/compiler_specific.h"
1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "chrome/browser/chrome_browser_main_extra_parts.h"
1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class ChromeBrowserMainParts;
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)namespace chrome {
1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts);
1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)}
1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)class ChromeBrowserMainExtraPartsProfiles : public ChromeBrowserMainExtraParts {
1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) public:
2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  ChromeBrowserMainExtraPartsProfiles();
2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual ~ChromeBrowserMainExtraPartsProfiles();
2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Instantiates all chrome KeyedService factories, which is
2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  // especially important for services that should be created at profile
2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  // creation time as compared to lazily on first access.
2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  static void EnsureBrowserContextKeyedServiceFactoriesBuilt();
2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  // Overridden from ChromeBrowserMainExtraParts:
2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  virtual void PreProfileInit() OVERRIDE;
3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) private:
3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainExtraPartsProfiles);
3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)};
3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#endif  // CHROME_BROWSER_PROFILES_CHROME_BROWSER_MAIN_EXTRA_PARTS_PROFILES_H_
36