summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/shortcut_manager_factory.h2
-rw-r--r--chrome/browser/chrome_content_browser_client.cc3
-rw-r--r--chrome/browser/chrome_to_mobile_service_factory.h1
-rw-r--r--chrome/browser/chromeos/app_mode/kiosk_app_update_service.h2
-rw-r--r--chrome/browser/chromeos/login/login_utils_browsertest.cc6
-rw-r--r--chrome/browser/extensions/api/autotest_private/autotest_private_api_factory.h2
-rw-r--r--chrome/browser/extensions/api/bluetooth/bluetooth_api_factory.h2
-rw-r--r--chrome/browser/extensions/api/developer_private/developer_private_api_factory.h2
-rw-r--r--chrome/browser/extensions/api/discovery/suggested_links_registry_factory.h2
-rw-r--r--chrome/browser/extensions/api/idle/idle_manager_factory.h2
-rw-r--r--chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer_factory.h2
-rw-r--r--chrome/browser/extensions/api/system_indicator/system_indicator_manager_factory.h2
-rw-r--r--chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h2
-rw-r--r--chrome/browser/extensions/extension_pref_value_map_factory.h1
-rw-r--r--chrome/browser/extensions/token_cache/token_cache_service_factory.h2
-rw-r--r--chrome/browser/google_apis/drive_notification_manager_factory.h2
-rw-r--r--chrome/browser/managed_mode/managed_user_service_factory.h1
-rw-r--r--chrome/browser/policy/cloud/user_policy_signin_service_factory.h2
-rw-r--r--chrome/browser/predictors/autocomplete_action_predictor_factory.h2
-rw-r--r--chrome/browser/predictors/predictor_database_factory.h2
-rw-r--r--chrome/browser/predictors/resource_prefetch_predictor_factory.h2
-rw-r--r--chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc282
-rw-r--r--chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h35
-rw-r--r--chrome/browser/profiles/profile_dependency_manager.cc283
-rw-r--r--chrome/browser/profiles/profile_dependency_manager.h23
-rw-r--r--chrome/browser/profiles/profile_keyed_base_factory.cc10
-rw-r--r--chrome/browser/profiles/profile_keyed_base_factory.h1
-rw-r--r--chrome/browser/profiles/profile_keyed_service_factory.cc2
-rw-r--r--chrome/browser/profiles/profile_keyed_service_factory.h1
-rw-r--r--chrome/browser/speech/chrome_speech_recognition_preferences.h1
-rw-r--r--chrome/browser/spellchecker/spellcheck_factory.h1
-rw-r--r--chrome/browser/ui/global_error/global_error_service_factory.h1
-rw-r--r--chrome/browser/ui/webui/ntp/app_resource_cache_factory.h1
-rw-r--r--chrome/browser/ui/webui/ntp/ntp_resource_cache_factory.h1
-rw-r--r--chrome/chrome_browser.gypi2
-rw-r--r--chrome/test/base/testing_profile.cc6
36 files changed, 292 insertions, 402 deletions
diff --git a/apps/shortcut_manager_factory.h b/apps/shortcut_manager_factory.h
index 001bb61..bed2136 100644
--- a/apps/shortcut_manager_factory.h
+++ b/apps/shortcut_manager_factory.h
@@ -9,8 +9,6 @@
template<typename Type> struct DefaultSingletonTraits;
-class Profile;
-
namespace apps {
class ShortcutManager;
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index cec8396..2c7b4b2 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -58,7 +58,6 @@
#include "chrome/browser/prerender/prerender_message_filter.h"
#include "chrome/browser/prerender/prerender_tracker.h"
#include "chrome/browser/printing/printing_message_filter.h"
-#include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_io_data.h"
#include "chrome/browser/profiles/profile_manager.h"
@@ -544,8 +543,6 @@ content::BrowserMainParts* ChromeContentBrowserClient::CreateBrowserMainParts(
main_parts = new ChromeBrowserMainParts(parameters);
#endif
- chrome::AddProfilesExtraParts(main_parts);
-
// Construct additional browser parts. Stages are called in the order in
// which they are added.
#if defined(TOOLKIT_GTK)
diff --git a/chrome/browser/chrome_to_mobile_service_factory.h b/chrome/browser/chrome_to_mobile_service_factory.h
index 12168a1..4953079 100644
--- a/chrome/browser/chrome_to_mobile_service_factory.h
+++ b/chrome/browser/chrome_to_mobile_service_factory.h
@@ -10,7 +10,6 @@
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
class ChromeToMobileService;
-class Profile;
class ChromeToMobileServiceFactory : public ProfileKeyedServiceFactory {
public:
diff --git a/chrome/browser/chromeos/app_mode/kiosk_app_update_service.h b/chrome/browser/chromeos/app_mode/kiosk_app_update_service.h
index bd0601f..8bde271 100644
--- a/chrome/browser/chromeos/app_mode/kiosk_app_update_service.h
+++ b/chrome/browser/chromeos/app_mode/kiosk_app_update_service.h
@@ -15,8 +15,6 @@
#include "chrome/browser/profiles/profile_keyed_service.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace chromeos {
// This class enforces automatic restart on app and Chrome updates in app mode.
diff --git a/chrome/browser/chromeos/login/login_utils_browsertest.cc b/chrome/browser/chromeos/login/login_utils_browsertest.cc
index 256b99d..99d663b 100644
--- a/chrome/browser/chromeos/login/login_utils_browsertest.cc
+++ b/chrome/browser/chromeos/login/login_utils_browsertest.cc
@@ -35,7 +35,6 @@
#include "chrome/browser/policy/cloud/device_management_service.h"
#include "chrome/browser/policy/policy_service.h"
#include "chrome/browser/policy/proto/cloud/device_management_backend.pb.h"
-#include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/rlz/rlz.h"
#include "chrome/common/chrome_notification_types.h"
@@ -435,11 +434,6 @@ class LoginUtilsTest : public testing::Test,
}
void PrepareProfile(const std::string& username) {
- // Normally this would happen during browser startup, but for tests
- // we need to trigger creation of Profile-related services.
- ChromeBrowserMainExtraPartsProfiles::
- EnsureProfileKeyedServiceFactoriesBuilt();
-
DeviceSettingsTestHelper device_settings_test_helper;
DeviceSettingsService::Get()->SetSessionManager(
&device_settings_test_helper, new MockOwnerKeyUtil());
diff --git a/chrome/browser/extensions/api/autotest_private/autotest_private_api_factory.h b/chrome/browser/extensions/api/autotest_private/autotest_private_api_factory.h
index cc6dfda..0cb296e 100644
--- a/chrome/browser/extensions/api/autotest_private/autotest_private_api_factory.h
+++ b/chrome/browser/extensions/api/autotest_private/autotest_private_api_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace extensions {
class AutotestPrivateAPI;
diff --git a/chrome/browser/extensions/api/bluetooth/bluetooth_api_factory.h b/chrome/browser/extensions/api/bluetooth/bluetooth_api_factory.h
index cac8587..8c5f134 100644
--- a/chrome/browser/extensions/api/bluetooth/bluetooth_api_factory.h
+++ b/chrome/browser/extensions/api/bluetooth/bluetooth_api_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace extensions {
class BluetoothAPI;
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api_factory.h b/chrome/browser/extensions/api/developer_private/developer_private_api_factory.h
index 2aff89f..3c41292 100644
--- a/chrome/browser/extensions/api/developer_private/developer_private_api_factory.h
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace extensions {
class DeveloperPrivateAPI;
diff --git a/chrome/browser/extensions/api/discovery/suggested_links_registry_factory.h b/chrome/browser/extensions/api/discovery/suggested_links_registry_factory.h
index 5160d5b..3bb9af6 100644
--- a/chrome/browser/extensions/api/discovery/suggested_links_registry_factory.h
+++ b/chrome/browser/extensions/api/discovery/suggested_links_registry_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace extensions {
class SuggestedLinksRegistry;
diff --git a/chrome/browser/extensions/api/idle/idle_manager_factory.h b/chrome/browser/extensions/api/idle/idle_manager_factory.h
index 95d1750..b9c7c63 100644
--- a/chrome/browser/extensions/api/idle/idle_manager_factory.h
+++ b/chrome/browser/extensions/api/idle/idle_manager_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace extensions {
class IdleManager;
diff --git a/chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer_factory.h b/chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer_factory.h
index fe771ad..c394e77 100644
--- a/chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer_factory.h
+++ b/chrome/browser/extensions/api/sync_file_system/extension_sync_event_observer_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace extensions {
class ExtensionSyncEventObserver;
diff --git a/chrome/browser/extensions/api/system_indicator/system_indicator_manager_factory.h b/chrome/browser/extensions/api/system_indicator/system_indicator_manager_factory.h
index 89f359c..a1311cf 100644
--- a/chrome/browser/extensions/api/system_indicator/system_indicator_manager_factory.h
+++ b/chrome/browser/extensions/api/system_indicator/system_indicator_manager_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace extensions {
class SystemIndicatorManager;
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h b/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h
index 56c9283..b1849cf 100644
--- a/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h
+++ b/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace extensions {
class TabCaptureRegistry;
diff --git a/chrome/browser/extensions/extension_pref_value_map_factory.h b/chrome/browser/extensions/extension_pref_value_map_factory.h
index efb0641..9ec0168 100644
--- a/chrome/browser/extensions/extension_pref_value_map_factory.h
+++ b/chrome/browser/extensions/extension_pref_value_map_factory.h
@@ -9,7 +9,6 @@
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
class ExtensionPrefValueMap;
-class Profile;
class ExtensionPrefValueMapFactory : public ProfileKeyedServiceFactory {
public:
diff --git a/chrome/browser/extensions/token_cache/token_cache_service_factory.h b/chrome/browser/extensions/token_cache/token_cache_service_factory.h
index 2a99359..0d28101 100644
--- a/chrome/browser/extensions/token_cache/token_cache_service_factory.h
+++ b/chrome/browser/extensions/token_cache/token_cache_service_factory.h
@@ -9,8 +9,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace extensions {
class TokenCacheService;
} // namespace extensions
diff --git a/chrome/browser/google_apis/drive_notification_manager_factory.h b/chrome/browser/google_apis/drive_notification_manager_factory.h
index 177c27b..fbcfc9a 100644
--- a/chrome/browser/google_apis/drive_notification_manager_factory.h
+++ b/chrome/browser/google_apis/drive_notification_manager_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace google_apis {
class DriveNotificationManager;
diff --git a/chrome/browser/managed_mode/managed_user_service_factory.h b/chrome/browser/managed_mode/managed_user_service_factory.h
index 1dfb81d..12ef119 100644
--- a/chrome/browser/managed_mode/managed_user_service_factory.h
+++ b/chrome/browser/managed_mode/managed_user_service_factory.h
@@ -9,7 +9,6 @@
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
class ManagedUserService;
-class Profile;
class ManagedUserServiceFactory : public ProfileKeyedServiceFactory {
public:
diff --git a/chrome/browser/policy/cloud/user_policy_signin_service_factory.h b/chrome/browser/policy/cloud/user_policy_signin_service_factory.h
index a105ebe..cde10e8 100644
--- a/chrome/browser/policy/cloud/user_policy_signin_service_factory.h
+++ b/chrome/browser/policy/cloud/user_policy_signin_service_factory.h
@@ -8,8 +8,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace user_prefs {
class PrefRegistrySyncable;
}
diff --git a/chrome/browser/predictors/autocomplete_action_predictor_factory.h b/chrome/browser/predictors/autocomplete_action_predictor_factory.h
index 3e30f6a..b1624ab 100644
--- a/chrome/browser/predictors/autocomplete_action_predictor_factory.h
+++ b/chrome/browser/predictors/autocomplete_action_predictor_factory.h
@@ -9,8 +9,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace predictors {
class AutocompleteActionPredictor;
diff --git a/chrome/browser/predictors/predictor_database_factory.h b/chrome/browser/predictors/predictor_database_factory.h
index e08cdbd..4bfcf5a 100644
--- a/chrome/browser/predictors/predictor_database_factory.h
+++ b/chrome/browser/predictors/predictor_database_factory.h
@@ -9,8 +9,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace predictors {
class PredictorDatabase;
diff --git a/chrome/browser/predictors/resource_prefetch_predictor_factory.h b/chrome/browser/predictors/resource_prefetch_predictor_factory.h
index 147a21c..f40c38a 100644
--- a/chrome/browser/predictors/resource_prefetch_predictor_factory.h
+++ b/chrome/browser/predictors/resource_prefetch_predictor_factory.h
@@ -9,8 +9,6 @@
#include "base/memory/singleton.h"
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
-class Profile;
-
namespace predictors {
class ResourcePrefetchPredictor;
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
deleted file mode 100644
index d1dee56..0000000
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ /dev/null
@@ -1,282 +0,0 @@
-// Copyright 2013 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.
-
-#include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h"
-
-#include "apps/app_restore_service_factory.h"
-#include "apps/shortcut_manager_factory.h"
-#include "chrome/browser/autofill/autocheckout_whitelist_manager_factory.h"
-#include "chrome/browser/autofill/personal_data_manager_factory.h"
-#include "chrome/browser/background/background_contents_service_factory.h"
-#include "chrome/browser/bookmarks/bookmark_model_factory.h"
-#include "chrome/browser/chrome_browser_main.h"
-#include "chrome/browser/content_settings/cookie_settings.h"
-#include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h"
-#include "chrome/browser/download/download_service_factory.h"
-#include "chrome/browser/extensions/activity_log.h"
-#include "chrome/browser/extensions/api/alarms/alarm_manager.h"
-#include "chrome/browser/extensions/api/audio/audio_api.h"
-#include "chrome/browser/extensions/api/bluetooth/bluetooth_api_factory.h"
-#include "chrome/browser/extensions/api/bookmarks/bookmarks_api.h"
-#include "chrome/browser/extensions/api/commands/command_service.h"
-#include "chrome/browser/extensions/api/cookies/cookies_api.h"
-#include "chrome/browser/extensions/api/dial/dial_api_factory.h"
-#include "chrome/browser/extensions/api/discovery/suggested_links_registry_factory.h"
-#include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
-#include "chrome/browser/extensions/api/font_settings/font_settings_api.h"
-#include "chrome/browser/extensions/api/history/history_api.h"
-#include "chrome/browser/extensions/api/identity/identity_api.h"
-#include "chrome/browser/extensions/api/idle/idle_manager_factory.h"
-#include "chrome/browser/extensions/api/input/input.h"
-#include "chrome/browser/extensions/api/managed_mode_private/managed_mode_private_api.h"
-#include "chrome/browser/extensions/api/management/management_api.h"
-#include "chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h"
-#include "chrome/browser/extensions/api/omnibox/omnibox_api.h"
-#include "chrome/browser/extensions/api/preference/preference_api.h"
-#include "chrome/browser/extensions/api/processes/processes_api.h"
-#include "chrome/browser/extensions/api/push_messaging/push_messaging_api.h"
-#include "chrome/browser/extensions/api/session_restore/session_restore_api.h"
-#include "chrome/browser/extensions/api/spellcheck/spellcheck_api.h"
-#include "chrome/browser/extensions/api/streams_private/streams_private_api.h"
-#include "chrome/browser/extensions/api/system_info/system_info_api.h"
-#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h"
-#include "chrome/browser/extensions/api/tabs/tabs_windows_api.h"
-#include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h"
-#include "chrome/browser/extensions/extension_system_factory.h"
-#include "chrome/browser/extensions/extension_web_ui_override_registrar.h"
-#include "chrome/browser/extensions/install_tracker_factory.h"
-#include "chrome/browser/extensions/token_cache/token_cache_service_factory.h"
-#include "chrome/browser/favicon/favicon_service_factory.h"
-#include "chrome/browser/geolocation/chrome_geolocation_permission_context_factory.h"
-#include "chrome/browser/google/google_url_tracker_factory.h"
-#include "chrome/browser/history/history_service_factory.h"
-#include "chrome/browser/history/shortcuts_backend_factory.h"
-#include "chrome/browser/notifications/desktop_notification_service_factory.h"
-#include "chrome/browser/password_manager/password_store_factory.h"
-#include "chrome/browser/plugins/plugin_prefs_factory.h"
-#include "chrome/browser/policy/profile_policy_connector_factory.h"
-#include "chrome/browser/predictors/autocomplete_action_predictor_factory.h"
-#include "chrome/browser/predictors/predictor_database_factory.h"
-#include "chrome/browser/predictors/resource_prefetch_predictor_factory.h"
-#include "chrome/browser/prerender/prerender_link_manager_factory.h"
-#include "chrome/browser/prerender/prerender_manager_factory.h"
-#include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.h"
-#include "chrome/browser/profiles/gaia_info_update_service_factory.h"
-#include "chrome/browser/search_engines/template_url_fetcher_factory.h"
-#include "chrome/browser/search_engines/template_url_service_factory.h"
-#include "chrome/browser/sessions/session_service_factory.h"
-#include "chrome/browser/sessions/tab_restore_service_factory.h"
-#include "chrome/browser/signin/about_signin_internals_factory.h"
-#include "chrome/browser/signin/signin_manager_factory.h"
-#include "chrome/browser/signin/token_service_factory.h"
-#include "chrome/browser/speech/chrome_speech_recognition_preferences.h"
-#include "chrome/browser/speech/extension_api/tts_extension_api.h"
-#include "chrome/browser/spellchecker/spellcheck_factory.h"
-#include "chrome/browser/sync/profile_sync_service_factory.h"
-#include "chrome/browser/themes/theme_service_factory.h"
-#include "chrome/browser/thumbnails/thumbnail_service_factory.h"
-#include "chrome/browser/ui/find_bar/find_bar_state_factory.h"
-#include "chrome/browser/ui/global_error/global_error_service_factory.h"
-#include "chrome/browser/ui/tabs/pinned_tab_service_factory.h"
-#include "chrome/browser/ui/webui/ntp/ntp_resource_cache_factory.h"
-#include "chrome/browser/user_style_sheet_watcher_factory.h"
-#include "chrome/browser/webdata/web_data_service_factory.h"
-
-#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
-#include "chrome/browser/captive_portal/captive_portal_service_factory.h"
-#endif
-
-#if defined(ENABLE_CONFIGURATION_POLICY)
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h"
-#include "chrome/browser/chromeos/policy/user_cloud_policy_token_forwarder_factory.h"
-#else
-#include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
-#include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h"
-#endif
-#endif
-
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/extensions/input_method_api.h"
-#include "chrome/browser/chromeos/extensions/media_player_api.h"
-#include "chrome/browser/chromeos/extensions/networking_private_event_router_factory.h"
-#include "chrome/browser/extensions/api/input_ime/input_ime_api.h"
-#if defined(FILE_MANAGER_EXTENSION)
-#include "chrome/browser/chromeos/extensions/file_manager/file_browser_private_api_factory.h"
-#endif
-#endif
-
-#if defined(USE_AURA)
-#include "chrome/browser/ui/gesture_prefs_observer_factory_aura.h"
-#endif
-
-#if !defined(OS_ANDROID)
-#include "chrome/browser/media_galleries/media_galleries_preferences_factory.h"
-#include "chrome/browser/notifications/sync_notifier/chrome_notifier_service_factory.h"
-#endif
-
-namespace chrome {
-
-void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
- main_parts->AddParts(new ChromeBrowserMainExtraPartsProfiles());
-}
-
-} // namespace chrome
-
-ChromeBrowserMainExtraPartsProfiles::ChromeBrowserMainExtraPartsProfiles() {
-}
-
-ChromeBrowserMainExtraPartsProfiles::~ChromeBrowserMainExtraPartsProfiles() {
-}
-
-// This method gets the instance of each ServiceFactory. We do this so that
-// each ServiceFactory initializes itself and registers its dependencies with
-// the global PreferenceDependencyManager. We need to have a complete
-// dependency graph when we create a profile so we can dispatch the profile
-// creation message to the services that want to create their services at
-// profile creation time.
-//
-// TODO(erg): This needs to be something else. I don't think putting every
-// FooServiceFactory here will scale or is desirable long term.
-//
-// static
-void
-ChromeBrowserMainExtraPartsProfiles::EnsureProfileKeyedServiceFactoriesBuilt() {
- AboutSigninInternalsFactory::GetInstance();
-
-#if defined(ENABLE_BACKGROUND)
- BackgroundContentsServiceFactory::GetInstance();
-#endif
- BookmarkModelFactory::GetInstance();
-#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
- captive_portal::CaptivePortalServiceFactory::GetInstance();
-#endif
- ChromeGeolocationPermissionContextFactory::GetInstance();
-#if defined(ENABLE_PRINTING)
- CloudPrintProxyServiceFactory::GetInstance();
-#endif
- CookieSettings::Factory::GetInstance();
-#if defined(ENABLE_NOTIFICATIONS)
- DesktopNotificationServiceFactory::GetInstance();
-#endif
- DownloadServiceFactory::GetInstance();
-#if defined(ENABLE_EXTENSIONS)
- apps::AppRestoreServiceFactory::GetInstance();
- apps::ShortcutManagerFactory::GetInstance();
- autofill::autocheckout::WhitelistManagerFactory::GetInstance();
- extensions::ActivityLogFactory::GetInstance();
- extensions::AlarmManager::GetFactoryInstance();
- extensions::AudioAPI::GetFactoryInstance();
- extensions::BookmarksAPI::GetFactoryInstance();
- extensions::BluetoothAPIFactory::GetInstance();
- extensions::CommandService::GetFactoryInstance();
- extensions::CookiesAPI::GetFactoryInstance();
- extensions::DialAPIFactory::GetInstance();
- extensions::ExtensionActionAPI::GetFactoryInstance();
- extensions::ExtensionSystemFactory::GetInstance();
- extensions::ExtensionWebUIOverrideRegistrar::GetFactoryInstance();
- extensions::FontSettingsAPI::GetFactoryInstance();
- extensions::HistoryAPI::GetFactoryInstance();
- extensions::IdentityAPI::GetFactoryInstance();
- extensions::IdleManagerFactory::GetInstance();
- extensions::InstallTrackerFactory::GetInstance();
-#if defined(TOOLKIT_VIEWS)
- extensions::InputAPI::GetFactoryInstance();
-#endif
-#if defined(OS_CHROMEOS)
- extensions::InputImeAPI::GetFactoryInstance();
- extensions::InputMethodAPI::GetFactoryInstance();
-#endif
- extensions::ManagedModeAPI::GetFactoryInstance();
- extensions::ManagementAPI::GetFactoryInstance();
- extensions::MediaGalleriesPrivateAPI::GetFactoryInstance();
-#if defined(OS_CHROMEOS)
- extensions::MediaPlayerAPI::GetFactoryInstance();
-#endif
- extensions::OmniboxAPI::GetFactoryInstance();
- extensions::PreferenceAPI::GetFactoryInstance();
- extensions::ProcessesAPI::GetFactoryInstance();
- extensions::PushMessagingAPI::GetFactoryInstance();
- extensions::SessionRestoreAPI::GetFactoryInstance();
- extensions::SpellcheckAPI::GetFactoryInstance();
- extensions::StreamsPrivateAPI::GetFactoryInstance();
- extensions::SystemInfoAPI::GetFactoryInstance();
- extensions::SuggestedLinksRegistryFactory::GetInstance();
- extensions::TabCaptureRegistryFactory::GetInstance();
- extensions::TabsWindowsAPI::GetFactoryInstance();
- extensions::TtsAPI::GetFactoryInstance();
- extensions::WebNavigationAPI::GetFactoryInstance();
-#endif // defined(ENABLE_EXTENSIONS)
- FaviconServiceFactory::GetInstance();
-#if defined(OS_CHROMEOS) && defined(FILE_MANAGER_EXTENSION)
- FileBrowserPrivateAPIFactory::GetInstance();
-#endif
- FindBarStateFactory::GetInstance();
- GAIAInfoUpdateServiceFactory::GetInstance();
-#if defined(USE_AURA)
- GesturePrefsObserverFactoryAura::GetInstance();
-#endif
- GlobalErrorServiceFactory::GetInstance();
- GoogleURLTrackerFactory::GetInstance();
- HistoryServiceFactory::GetInstance();
-#if !defined(OS_ANDROID)
- notifier::ChromeNotifierServiceFactory::GetInstance();
- MediaGalleriesPreferencesFactory::GetInstance();
-#endif
-#if defined(OS_CHROMEOS)
- chromeos::NetworkingPrivateEventRouterFactory::GetInstance();
-#endif
- NTPResourceCacheFactory::GetInstance();
- PasswordStoreFactory::GetInstance();
- autofill::PersonalDataManagerFactory::GetInstance();
-#if !defined(OS_ANDROID)
- PinnedTabServiceFactory::GetInstance();
-#endif
-#if defined(ENABLE_PLUGINS)
- PluginPrefsFactory::GetInstance();
-#endif
- policy::ProfilePolicyConnectorFactory::GetInstance();
-#if defined(ENABLE_CONFIGURATION_POLICY)
-#if defined(OS_CHROMEOS)
- policy::UserCloudPolicyManagerFactoryChromeOS::GetInstance();
- policy::UserCloudPolicyTokenForwarderFactory::GetInstance();
-#else
- policy::UserCloudPolicyManagerFactory::GetInstance();
- policy::UserPolicySigninServiceFactory::GetInstance();
-#endif
-#endif
- predictors::AutocompleteActionPredictorFactory::GetInstance();
- predictors::PredictorDatabaseFactory::GetInstance();
- predictors::ResourcePrefetchPredictorFactory::GetInstance();
- prerender::PrerenderManagerFactory::GetInstance();
- prerender::PrerenderLinkManagerFactory::GetInstance();
- ProfileSyncServiceFactory::GetInstance();
- ProtocolHandlerRegistryFactory::GetInstance();
-#if defined(ENABLE_SESSION_SERVICE)
- SessionServiceFactory::GetInstance();
-#endif
- ShortcutsBackendFactory::GetInstance();
- ThumbnailServiceFactory::GetInstance();
- SigninManagerFactory::GetInstance();
-#if defined(ENABLE_INPUT_SPEECH)
- ChromeSpeechRecognitionPreferences::InitializeFactory();
-#endif
- SpellcheckServiceFactory::GetInstance();
- TabRestoreServiceFactory::GetInstance();
- TemplateURLFetcherFactory::GetInstance();
- TemplateURLServiceFactory::GetInstance();
-#if defined(ENABLE_THEMES)
- ThemeServiceFactory::GetInstance();
-#endif
- TokenCacheServiceFactory::GetInstance();
- TokenServiceFactory::GetInstance();
-#if !defined(OS_ANDROID)
- UserStyleSheetWatcherFactory::GetInstance();
-#endif
- WebDataServiceFactory::GetInstance();
-}
-
-void ChromeBrowserMainExtraPartsProfiles::PreProfileInit() {
- EnsureProfileKeyedServiceFactoriesBuilt();
-}
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h
deleted file mode 100644
index 1058102..0000000
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2013 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_PROFILES_CHROME_BROWSER_MAIN_EXTRA_PARTS_PROFILES_H_
-#define CHROME_BROWSER_PROFILES_CHROME_BROWSER_MAIN_EXTRA_PARTS_PROFILES_H_
-
-#include "base/basictypes.h"
-#include "base/compiler_specific.h"
-#include "chrome/browser/chrome_browser_main_extra_parts.h"
-
-class ChromeBrowserMainParts;
-
-namespace chrome {
-void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts);
-}
-
-class ChromeBrowserMainExtraPartsProfiles : public ChromeBrowserMainExtraParts {
- public:
- ChromeBrowserMainExtraPartsProfiles();
- virtual ~ChromeBrowserMainExtraPartsProfiles();
-
- // Instantiates all chrome ProfileKeyedService factories, which is especially
- // important for services that should be created at profile creation time
- // as compared to lazily on first access.
- static void EnsureProfileKeyedServiceFactoriesBuilt();
-
- // Overridden from ChromeBrowserMainExtraParts:
- virtual void PreProfileInit() OVERRIDE;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainExtraPartsProfiles);
-};
-
-#endif // CHROME_BROWSER_PROFILES_CHROME_BROWSER_MAIN_EXTRA_PARTS_PROFILES_H_
diff --git a/chrome/browser/profiles/profile_dependency_manager.cc b/chrome/browser/profiles/profile_dependency_manager.cc
index 8b9a1fa..93e7610 100644
--- a/chrome/browser/profiles/profile_dependency_manager.cc
+++ b/chrome/browser/profiles/profile_dependency_manager.cc
@@ -8,9 +8,119 @@
#include <deque>
#include <iterator>
-#include "base/bind.h"
-#include "chrome/browser/profiles/profile_keyed_base_factory.h"
-#include "content/public/browser/browser_context.h"
+#include "apps/app_restore_service_factory.h"
+#include "apps/shortcut_manager_factory.h"
+#include "chrome/browser/autofill/autocheckout_whitelist_manager_factory.h"
+#include "chrome/browser/autofill/personal_data_manager_factory.h"
+#include "chrome/browser/background/background_contents_service_factory.h"
+#include "chrome/browser/bookmarks/bookmark_model_factory.h"
+#include "chrome/browser/content_settings/cookie_settings.h"
+#include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h"
+#include "chrome/browser/download/download_service_factory.h"
+#include "chrome/browser/extensions/activity_log.h"
+#include "chrome/browser/extensions/api/alarms/alarm_manager.h"
+#include "chrome/browser/extensions/api/audio/audio_api.h"
+#include "chrome/browser/extensions/api/bluetooth/bluetooth_api_factory.h"
+#include "chrome/browser/extensions/api/bookmarks/bookmarks_api.h"
+#include "chrome/browser/extensions/api/commands/command_service.h"
+#include "chrome/browser/extensions/api/cookies/cookies_api.h"
+#include "chrome/browser/extensions/api/dial/dial_api_factory.h"
+#include "chrome/browser/extensions/api/discovery/suggested_links_registry_factory.h"
+#include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
+#include "chrome/browser/extensions/api/font_settings/font_settings_api.h"
+#include "chrome/browser/extensions/api/history/history_api.h"
+#include "chrome/browser/extensions/api/identity/identity_api.h"
+#include "chrome/browser/extensions/api/idle/idle_manager_factory.h"
+#include "chrome/browser/extensions/api/input/input.h"
+#include "chrome/browser/extensions/api/managed_mode_private/managed_mode_private_api.h"
+#include "chrome/browser/extensions/api/management/management_api.h"
+#include "chrome/browser/extensions/api/media_galleries_private/media_galleries_private_api.h"
+#include "chrome/browser/extensions/api/omnibox/omnibox_api.h"
+#include "chrome/browser/extensions/api/preference/preference_api.h"
+#include "chrome/browser/extensions/api/processes/processes_api.h"
+#include "chrome/browser/extensions/api/push_messaging/push_messaging_api.h"
+#include "chrome/browser/extensions/api/session_restore/session_restore_api.h"
+#include "chrome/browser/extensions/api/spellcheck/spellcheck_api.h"
+#include "chrome/browser/extensions/api/streams_private/streams_private_api.h"
+#include "chrome/browser/extensions/api/system_info/system_info_api.h"
+#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h"
+#include "chrome/browser/extensions/api/tabs/tabs_windows_api.h"
+#include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h"
+#include "chrome/browser/extensions/extension_system_factory.h"
+#include "chrome/browser/extensions/extension_web_ui_override_registrar.h"
+#include "chrome/browser/extensions/install_tracker_factory.h"
+#include "chrome/browser/extensions/token_cache/token_cache_service_factory.h"
+#include "chrome/browser/favicon/favicon_service_factory.h"
+#include "chrome/browser/geolocation/chrome_geolocation_permission_context_factory.h"
+#include "chrome/browser/google/google_url_tracker_factory.h"
+#include "chrome/browser/history/history_service_factory.h"
+#include "chrome/browser/history/shortcuts_backend_factory.h"
+#include "chrome/browser/notifications/desktop_notification_service_factory.h"
+#include "chrome/browser/password_manager/password_store_factory.h"
+#include "chrome/browser/plugins/plugin_prefs_factory.h"
+#include "chrome/browser/policy/profile_policy_connector_factory.h"
+#include "chrome/browser/predictors/autocomplete_action_predictor_factory.h"
+#include "chrome/browser/predictors/predictor_database_factory.h"
+#include "chrome/browser/predictors/resource_prefetch_predictor_factory.h"
+#include "chrome/browser/prerender/prerender_link_manager_factory.h"
+#include "chrome/browser/prerender/prerender_manager_factory.h"
+#include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory.h"
+#include "chrome/browser/profiles/gaia_info_update_service_factory.h"
+#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/profiles/profile_keyed_service.h"
+#include "chrome/browser/profiles/profile_keyed_service_factory.h"
+#include "chrome/browser/search_engines/template_url_fetcher_factory.h"
+#include "chrome/browser/search_engines/template_url_service_factory.h"
+#include "chrome/browser/sessions/session_service_factory.h"
+#include "chrome/browser/sessions/tab_restore_service_factory.h"
+#include "chrome/browser/signin/about_signin_internals_factory.h"
+#include "chrome/browser/signin/signin_manager_factory.h"
+#include "chrome/browser/signin/token_service_factory.h"
+#include "chrome/browser/speech/chrome_speech_recognition_preferences.h"
+#include "chrome/browser/speech/extension_api/tts_extension_api.h"
+#include "chrome/browser/spellchecker/spellcheck_factory.h"
+#include "chrome/browser/sync/profile_sync_service_factory.h"
+#include "chrome/browser/themes/theme_service_factory.h"
+#include "chrome/browser/thumbnails/thumbnail_service_factory.h"
+#include "chrome/browser/ui/find_bar/find_bar_state_factory.h"
+#include "chrome/browser/ui/global_error/global_error_service_factory.h"
+#include "chrome/browser/ui/tabs/pinned_tab_service_factory.h"
+#include "chrome/browser/ui/webui/ntp/ntp_resource_cache_factory.h"
+#include "chrome/browser/user_style_sheet_watcher_factory.h"
+#include "chrome/browser/webdata/web_data_service_factory.h"
+
+#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
+#include "chrome/browser/captive_portal/captive_portal_service_factory.h"
+#endif
+
+#if defined(ENABLE_CONFIGURATION_POLICY)
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/policy/user_cloud_policy_manager_factory_chromeos.h"
+#include "chrome/browser/chromeos/policy/user_cloud_policy_token_forwarder_factory.h"
+#else
+#include "chrome/browser/policy/cloud/user_cloud_policy_manager_factory.h"
+#include "chrome/browser/policy/cloud/user_policy_signin_service_factory.h"
+#endif
+#endif
+
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/extensions/input_method_api.h"
+#include "chrome/browser/chromeos/extensions/media_player_api.h"
+#include "chrome/browser/chromeos/extensions/networking_private_event_router_factory.h"
+#include "chrome/browser/extensions/api/input_ime/input_ime_api.h"
+#if defined(FILE_MANAGER_EXTENSION)
+#include "chrome/browser/chromeos/extensions/file_manager/file_browser_private_api_factory.h"
+#endif
+#endif
+
+#if defined(USE_AURA)
+#include "chrome/browser/ui/gesture_prefs_observer_factory_aura.h"
+#endif
+
+#if !defined(OS_ANDROID)
+#include "chrome/browser/media_galleries/media_galleries_preferences_factory.h"
+#include "chrome/browser/notifications/sync_notifier/chrome_notifier_service_factory.h"
+#endif
#ifndef NDEBUG
#include "base/command_line.h"
@@ -35,8 +145,8 @@ void ProfileDependencyManager::AddEdge(ProfileKeyedBaseFactory* depended,
dependency_graph_.AddEdge(depended, dependee);
}
-void ProfileDependencyManager::CreateProfileServices(
- content::BrowserContext* profile, bool is_testing_profile) {
+void ProfileDependencyManager::CreateProfileServices(Profile* profile,
+ bool is_testing_profile) {
#ifndef NDEBUG
// Unmark |profile| as dead. This exists because of unit tests, which will
// often have similar stack structures. 0xWhatever might be created, go out
@@ -44,6 +154,8 @@ void ProfileDependencyManager::CreateProfileServices(
dead_profile_pointers_.erase(profile);
#endif
+ AssertFactoriesBuilt();
+
std::vector<DependencyNode*> construction_order;
if (!dependency_graph_.GetConstructionOrder(&construction_order)) {
NOTREACHED();
@@ -72,8 +184,7 @@ void ProfileDependencyManager::CreateProfileServices(
}
}
-void ProfileDependencyManager::DestroyProfileServices(
- content::BrowserContext* profile) {
+void ProfileDependencyManager::DestroyProfileServices(Profile* profile) {
std::vector<DependencyNode*> destruction_order;
if (!dependency_graph_.GetDestructionOrder(&destruction_order)) {
NOTREACHED();
@@ -102,8 +213,7 @@ void ProfileDependencyManager::DestroyProfileServices(
}
#ifndef NDEBUG
-void ProfileDependencyManager::AssertProfileWasntDestroyed(
- content::BrowserContext* profile) {
+void ProfileDependencyManager::AssertProfileWasntDestroyed(Profile* profile) {
if (dead_profile_pointers_.find(profile) != dead_profile_pointers_.end()) {
NOTREACHED() << "Attempted to access a Profile that was ShutDown(). This "
<< "is most likely a heap smasher in progress. After "
@@ -118,10 +228,158 @@ ProfileDependencyManager* ProfileDependencyManager::GetInstance() {
return Singleton<ProfileDependencyManager>::get();
}
-ProfileDependencyManager::ProfileDependencyManager() {
+ProfileDependencyManager::ProfileDependencyManager() : built_factories_(false) {
}
-ProfileDependencyManager::~ProfileDependencyManager() {
+ProfileDependencyManager::~ProfileDependencyManager() {}
+
+// This method gets the instance of each ServiceFactory. We do this so that
+// each ServiceFactory initializes itself and registers its dependencies with
+// the global PreferenceDependencyManager. We need to have a complete
+// dependency graph when we create a profile so we can dispatch the profile
+// creation message to the services that want to create their services at
+// profile creation time.
+//
+// TODO(erg): This needs to be something else. I don't think putting every
+// FooServiceFactory here will scale or is desirable long term.
+void ProfileDependencyManager::AssertFactoriesBuilt() {
+ if (built_factories_)
+ return;
+
+ AboutSigninInternalsFactory::GetInstance();
+
+#if defined(ENABLE_BACKGROUND)
+ BackgroundContentsServiceFactory::GetInstance();
+#endif
+ BookmarkModelFactory::GetInstance();
+#if defined(ENABLE_CAPTIVE_PORTAL_DETECTION)
+ captive_portal::CaptivePortalServiceFactory::GetInstance();
+#endif
+ ChromeGeolocationPermissionContextFactory::GetInstance();
+#if defined(ENABLE_PRINTING)
+ CloudPrintProxyServiceFactory::GetInstance();
+#endif
+ CookieSettings::Factory::GetInstance();
+#if defined(ENABLE_NOTIFICATIONS)
+ DesktopNotificationServiceFactory::GetInstance();
+#endif
+ DownloadServiceFactory::GetInstance();
+#if defined(ENABLE_EXTENSIONS)
+ apps::AppRestoreServiceFactory::GetInstance();
+ apps::ShortcutManagerFactory::GetInstance();
+ autofill::autocheckout::WhitelistManagerFactory::GetInstance();
+ extensions::ActivityLogFactory::GetInstance();
+ extensions::AlarmManager::GetFactoryInstance();
+ extensions::AudioAPI::GetFactoryInstance();
+ extensions::BookmarksAPI::GetFactoryInstance();
+ extensions::BluetoothAPIFactory::GetInstance();
+ extensions::CommandService::GetFactoryInstance();
+ extensions::CookiesAPI::GetFactoryInstance();
+ extensions::DialAPIFactory::GetInstance();
+ extensions::ExtensionActionAPI::GetFactoryInstance();
+ extensions::ExtensionSystemFactory::GetInstance();
+ extensions::ExtensionWebUIOverrideRegistrar::GetFactoryInstance();
+ extensions::FontSettingsAPI::GetFactoryInstance();
+ extensions::HistoryAPI::GetFactoryInstance();
+ extensions::IdentityAPI::GetFactoryInstance();
+ extensions::IdleManagerFactory::GetInstance();
+ extensions::InstallTrackerFactory::GetInstance();
+#if defined(TOOLKIT_VIEWS)
+ extensions::InputAPI::GetFactoryInstance();
+#endif
+#if defined(OS_CHROMEOS)
+ extensions::InputImeAPI::GetFactoryInstance();
+ extensions::InputMethodAPI::GetFactoryInstance();
+#endif
+ extensions::ManagedModeAPI::GetFactoryInstance();
+ extensions::ManagementAPI::GetFactoryInstance();
+ extensions::MediaGalleriesPrivateAPI::GetFactoryInstance();
+#if defined(OS_CHROMEOS)
+ extensions::MediaPlayerAPI::GetFactoryInstance();
+#endif
+ extensions::OmniboxAPI::GetFactoryInstance();
+ extensions::PreferenceAPI::GetFactoryInstance();
+ extensions::ProcessesAPI::GetFactoryInstance();
+ extensions::PushMessagingAPI::GetFactoryInstance();
+ extensions::SessionRestoreAPI::GetFactoryInstance();
+ extensions::SpellcheckAPI::GetFactoryInstance();
+ extensions::StreamsPrivateAPI::GetFactoryInstance();
+ extensions::SystemInfoAPI::GetFactoryInstance();
+ extensions::SuggestedLinksRegistryFactory::GetInstance();
+ extensions::TabCaptureRegistryFactory::GetInstance();
+ extensions::TabsWindowsAPI::GetFactoryInstance();
+ extensions::TtsAPI::GetFactoryInstance();
+ extensions::WebNavigationAPI::GetFactoryInstance();
+#endif // defined(ENABLE_EXTENSIONS)
+ FaviconServiceFactory::GetInstance();
+#if defined(OS_CHROMEOS) && defined(FILE_MANAGER_EXTENSION)
+ FileBrowserPrivateAPIFactory::GetInstance();
+#endif
+ FindBarStateFactory::GetInstance();
+ GAIAInfoUpdateServiceFactory::GetInstance();
+#if defined(USE_AURA)
+ GesturePrefsObserverFactoryAura::GetInstance();
+#endif
+ GlobalErrorServiceFactory::GetInstance();
+ GoogleURLTrackerFactory::GetInstance();
+ HistoryServiceFactory::GetInstance();
+#if !defined(OS_ANDROID)
+ notifier::ChromeNotifierServiceFactory::GetInstance();
+ MediaGalleriesPreferencesFactory::GetInstance();
+#endif
+#if defined(OS_CHROMEOS)
+ chromeos::NetworkingPrivateEventRouterFactory::GetInstance();
+#endif
+ NTPResourceCacheFactory::GetInstance();
+ PasswordStoreFactory::GetInstance();
+ autofill::PersonalDataManagerFactory::GetInstance();
+#if !defined(OS_ANDROID)
+ PinnedTabServiceFactory::GetInstance();
+#endif
+#if defined(ENABLE_PLUGINS)
+ PluginPrefsFactory::GetInstance();
+#endif
+ policy::ProfilePolicyConnectorFactory::GetInstance();
+#if defined(ENABLE_CONFIGURATION_POLICY)
+#if defined(OS_CHROMEOS)
+ policy::UserCloudPolicyManagerFactoryChromeOS::GetInstance();
+ policy::UserCloudPolicyTokenForwarderFactory::GetInstance();
+#else
+ policy::UserCloudPolicyManagerFactory::GetInstance();
+ policy::UserPolicySigninServiceFactory::GetInstance();
+#endif
+#endif
+ predictors::AutocompleteActionPredictorFactory::GetInstance();
+ predictors::PredictorDatabaseFactory::GetInstance();
+ predictors::ResourcePrefetchPredictorFactory::GetInstance();
+ prerender::PrerenderManagerFactory::GetInstance();
+ prerender::PrerenderLinkManagerFactory::GetInstance();
+ ProfileSyncServiceFactory::GetInstance();
+ ProtocolHandlerRegistryFactory::GetInstance();
+#if defined(ENABLE_SESSION_SERVICE)
+ SessionServiceFactory::GetInstance();
+#endif
+ ShortcutsBackendFactory::GetInstance();
+ ThumbnailServiceFactory::GetInstance();
+ SigninManagerFactory::GetInstance();
+#if defined(ENABLE_INPUT_SPEECH)
+ ChromeSpeechRecognitionPreferences::InitializeFactory();
+#endif
+ SpellcheckServiceFactory::GetInstance();
+ TabRestoreServiceFactory::GetInstance();
+ TemplateURLFetcherFactory::GetInstance();
+ TemplateURLServiceFactory::GetInstance();
+#if defined(ENABLE_THEMES)
+ ThemeServiceFactory::GetInstance();
+#endif
+ TokenCacheServiceFactory::GetInstance();
+ TokenServiceFactory::GetInstance();
+#if !defined(OS_ANDROID)
+ UserStyleSheetWatcherFactory::GetInstance();
+#endif
+ WebDataServiceFactory::GetInstance();
+
+ built_factories_ = true;
}
#ifndef NDEBUG
@@ -133,8 +391,7 @@ std::string ProfileKeyedBaseFactoryGetNodeName(DependencyNode* node) {
} // namespace
-void ProfileDependencyManager::DumpProfileDependencies(
- content::BrowserContext* profile) {
+void ProfileDependencyManager::DumpProfileDependencies(Profile* profile) {
// Whenever we try to build a destruction ordering, we should also dump a
// dependency graph to "/path/to/profile/profile-dependencies.dot".
if (CommandLine::ForCurrentProcess()->HasSwitch(
diff --git a/chrome/browser/profiles/profile_dependency_manager.h b/chrome/browser/profiles/profile_dependency_manager.h
index 8c216d1..50a76d5 100644
--- a/chrome/browser/profiles/profile_dependency_manager.h
+++ b/chrome/browser/profiles/profile_dependency_manager.h
@@ -12,12 +12,9 @@
#include <set>
#endif
+class Profile;
class ProfileKeyedBaseFactory;
-namespace content {
-class BrowserContext;
-}
-
// A singleton that listens for profile destruction notifications and
// rebroadcasts them to each ProfileKeyedBaseFactory in a safe order based
// on the stated dependencies by each service.
@@ -37,8 +34,7 @@ class ProfileDependencyManager {
// done at this time. (If you want your ProfileKeyedService to be started
// with the Profile, override ProfileKeyedBaseFactory::
// ServiceIsCreatedWithProfile() to return true.)
- void CreateProfileServices(content::BrowserContext* profile,
- bool is_testing_profile);
+ void CreateProfileServices(Profile* profile, bool is_testing_profile);
// Called by each Profile to alert us that we should destroy services
// associated with it.
@@ -50,13 +46,13 @@ class ProfileDependencyManager {
// - Because this class is a singleton and Singletons can't rely on
// NotificationService in unit tests because NotificationService is
// replaced in many tests.
- void DestroyProfileServices(content::BrowserContext* profile);
+ void DestroyProfileServices(Profile* profile);
#ifndef NDEBUG
// Debugging assertion called as part of GetServiceForProfile in debug
// mode. This will NOTREACHED() whenever the user is trying to access a stale
// Profile*.
- void AssertProfileWasntDestroyed(content::BrowserContext* profile);
+ void AssertProfileWasntDestroyed(Profile* profile);
#endif
static ProfileDependencyManager* GetInstance();
@@ -68,10 +64,17 @@ class ProfileDependencyManager {
ProfileDependencyManager();
virtual ~ProfileDependencyManager();
+ // Ensures that all the factories have been created before building the
+ // dependency graph.
+ void AssertFactoriesBuilt();
+
#ifndef NDEBUG
- void DumpProfileDependencies(content::BrowserContext* profile);
+ void DumpProfileDependencies(Profile* profile);
#endif
+ // Whether AssertFactoriesBuilt has been done.
+ bool built_factories_;
+
DependencyGraph dependency_graph_;
#ifndef NDEBUG
@@ -79,7 +82,7 @@ class ProfileDependencyManager {
// phase. These pointers are most likely invalid, but we keep track of their
// locations in memory so we can nicely assert if we're asked to do anything
// with them.
- std::set<content::BrowserContext*> dead_profile_pointers_;
+ std::set<Profile*> dead_profile_pointers_;
#endif
};
diff --git a/chrome/browser/profiles/profile_keyed_base_factory.cc b/chrome/browser/profiles/profile_keyed_base_factory.cc
index cf98c94..5343e16 100644
--- a/chrome/browser/profiles/profile_keyed_base_factory.cc
+++ b/chrome/browser/profiles/profile_keyed_base_factory.cc
@@ -5,10 +5,10 @@
#include "chrome/browser/profiles/profile_keyed_base_factory.h"
#include "base/prefs/pref_service.h"
+#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_dependency_manager.h"
#include "components/user_prefs/pref_registry_syncable.h"
#include "components/user_prefs/user_prefs.h"
-#include "content/public/browser/browser_context.h"
ProfileKeyedBaseFactory::ProfileKeyedBaseFactory(
const char* name, ProfileDependencyManager* manager)
@@ -32,15 +32,17 @@ content::BrowserContext* ProfileKeyedBaseFactory::GetBrowserContextToUse(
content::BrowserContext* context) const {
DCHECK(CalledOnValidThread());
+ Profile* profile = static_cast<Profile*>(context);
+
#ifndef NDEBUG
- dependency_manager_->AssertProfileWasntDestroyed(context);
+ dependency_manager_->AssertProfileWasntDestroyed(profile);
#endif
// Safe default for the Incognito mode: no service.
- if (context->IsOffTheRecord())
+ if (profile->IsOffTheRecord())
return NULL;
- return context;
+ return profile;
}
void ProfileKeyedBaseFactory::RegisterUserPrefsOnProfile(
diff --git a/chrome/browser/profiles/profile_keyed_base_factory.h b/chrome/browser/profiles/profile_keyed_base_factory.h
index 25e090e..ca11d7a 100644
--- a/chrome/browser/profiles/profile_keyed_base_factory.h
+++ b/chrome/browser/profiles/profile_keyed_base_factory.h
@@ -11,6 +11,7 @@
#include "chrome/browser/profiles/dependency_node.h"
class PrefService;
+class Profile;
class ProfileDependencyManager;
namespace content {
diff --git a/chrome/browser/profiles/profile_keyed_service_factory.cc b/chrome/browser/profiles/profile_keyed_service_factory.cc
index eab250e..b64f073 100644
--- a/chrome/browser/profiles/profile_keyed_service_factory.cc
+++ b/chrome/browser/profiles/profile_keyed_service_factory.cc
@@ -8,9 +8,9 @@
#include "base/logging.h"
#include "base/stl_util.h"
+#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_dependency_manager.h"
#include "chrome/browser/profiles/profile_keyed_service.h"
-#include "content/public/browser/browser_context.h"
void ProfileKeyedServiceFactory::SetTestingFactory(
content::BrowserContext* profile, FactoryFunction factory) {
diff --git a/chrome/browser/profiles/profile_keyed_service_factory.h b/chrome/browser/profiles/profile_keyed_service_factory.h
index 78c73ba..973ef6b 100644
--- a/chrome/browser/profiles/profile_keyed_service_factory.h
+++ b/chrome/browser/profiles/profile_keyed_service_factory.h
@@ -12,6 +12,7 @@
#include "chrome/browser/profiles/profile_keyed_base_factory.h"
#include "chrome/browser/profiles/profile_keyed_service.h"
+class Profile;
class ProfileDependencyManager;
class ProfileKeyedService;
diff --git a/chrome/browser/speech/chrome_speech_recognition_preferences.h b/chrome/browser/speech/chrome_speech_recognition_preferences.h
index b18fc2a..8ee5ad4 100644
--- a/chrome/browser/speech/chrome_speech_recognition_preferences.h
+++ b/chrome/browser/speech/chrome_speech_recognition_preferences.h
@@ -17,7 +17,6 @@
#include "content/public/browser/speech_recognition_preferences.h"
class PrefService;
-class Profile;
namespace base {
class ListValue;
diff --git a/chrome/browser/spellchecker/spellcheck_factory.h b/chrome/browser/spellchecker/spellcheck_factory.h
index 9f1de12..78d05a8 100644
--- a/chrome/browser/spellchecker/spellcheck_factory.h
+++ b/chrome/browser/spellchecker/spellcheck_factory.h
@@ -10,7 +10,6 @@
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
class SpellcheckService;
-class Profile;
// Entry into the SpellCheck system.
//
diff --git a/chrome/browser/ui/global_error/global_error_service_factory.h b/chrome/browser/ui/global_error/global_error_service_factory.h
index badb03e..1936e2c 100644
--- a/chrome/browser/ui/global_error/global_error_service_factory.h
+++ b/chrome/browser/ui/global_error/global_error_service_factory.h
@@ -11,7 +11,6 @@
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
class GlobalErrorService;
-class Profile;
// Singleton that owns all GlobalErrorService and associates them with
// Profiles. Listens for the Profile's destruction notification and cleans up
diff --git a/chrome/browser/ui/webui/ntp/app_resource_cache_factory.h b/chrome/browser/ui/webui/ntp/app_resource_cache_factory.h
index 1b53d50..fd2eb29 100644
--- a/chrome/browser/ui/webui/ntp/app_resource_cache_factory.h
+++ b/chrome/browser/ui/webui/ntp/app_resource_cache_factory.h
@@ -9,7 +9,6 @@
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
class NTPResourceCache;
-class Profile;
// Singleton that owns NTPResourceCaches used by the apps launcher page and
// associates them with Profiles. Listens for the Profile's destruction
diff --git a/chrome/browser/ui/webui/ntp/ntp_resource_cache_factory.h b/chrome/browser/ui/webui/ntp/ntp_resource_cache_factory.h
index 8d7145b..16d4319 100644
--- a/chrome/browser/ui/webui/ntp/ntp_resource_cache_factory.h
+++ b/chrome/browser/ui/webui/ntp/ntp_resource_cache_factory.h
@@ -9,7 +9,6 @@
#include "chrome/browser/profiles/profile_keyed_service_factory.h"
class NTPResourceCache;
-class Profile;
// Singleton that owns the NTPResourceCaches used by the NTP and associates them
// with Profiles. Listens for the Profile's destruction notification and cleans
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 5c585c2..9b790af 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -1546,8 +1546,6 @@
'browser/profiles/avatar_menu_model_observer.h',
'browser/profiles/bookmark_model_loaded_observer.cc',
'browser/profiles/bookmark_model_loaded_observer.h',
- 'browser/profiles/chrome_browser_main_extra_parts_profiles.cc',
- 'browser/profiles/chrome_browser_main_extra_parts_profiles.h',
'browser/profiles/chrome_version_service.cc',
'browser/profiles/chrome_version_service.h',
'browser/profiles/dependency_graph.cc',
diff --git a/chrome/test/base/testing_profile.cc b/chrome/test/base/testing_profile.cc
index a8b6e85..2d4a400 100644
--- a/chrome/test/base/testing_profile.cc
+++ b/chrome/test/base/testing_profile.cc
@@ -44,7 +44,6 @@
#include "chrome/browser/prefs/browser_prefs.h"
#include "chrome/browser/prefs/pref_service_syncable.h"
#include "chrome/browser/prerender/prerender_manager.h"
-#include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h"
#include "chrome/browser/profiles/profile_dependency_manager.h"
#include "chrome/browser/profiles/storage_partition_descriptor.h"
#include "chrome/browser/search_engines/template_url_fetcher_factory.h"
@@ -278,11 +277,6 @@ void TestingProfile::CreateTempProfileDir() {
}
void TestingProfile::Init() {
- // Normally this would happen during browser startup, but for tests
- // we need to trigger creation of Profile-related services.
- ChromeBrowserMainExtraPartsProfiles::
- EnsureProfileKeyedServiceFactoriesBuilt();
-
if (prefs_.get())
components::UserPrefs::Set(this, prefs_.get());
else