diff options
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 |