summaryrefslogtreecommitdiffstats
path: root/chrome/browser/profile_impl.h
diff options
context:
space:
mode:
authorpathorn@chromium.org <pathorn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-30 23:42:59 +0000
committerpathorn@chromium.org <pathorn@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-30 23:42:59 +0000
commit5a0b42e4c702b66ceeaa5c1529b8b03c9d668c74 (patch)
tree86b3c26e4ea8bd711d08c54647ad86bc6c40a212 /chrome/browser/profile_impl.h
parent8e4f010318e8ee028b22a2e8f5d4276a93054950 (diff)
downloadchromium_src-5a0b42e4c702b66ceeaa5c1529b8b03c9d668c74.zip
chromium_src-5a0b42e4c702b66ceeaa5c1529b8b03c9d668c74.tar.gz
chromium_src-5a0b42e4c702b66ceeaa5c1529b8b03c9d668c74.tar.bz2
Split ProfileImpl out of profile.cc.
This is a relatively trivial change which moves ProfileImpl into a separate file to avoid depending on its implementation. The fact that no code references ProfileImpl implies that it doesn't need to be public anyway. Does not affect OffTheRecordProfile, since its dependencies are relatively minimal. BUG=none TEST=none Review URL: http://codereview.chromium.org/2806087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54409 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/profile_impl.h')
-rw-r--r--chrome/browser/profile_impl.h229
1 files changed, 229 insertions, 0 deletions
diff --git a/chrome/browser/profile_impl.h b/chrome/browser/profile_impl.h
new file mode 100644
index 0000000..e3de444
--- /dev/null
+++ b/chrome/browser/profile_impl.h
@@ -0,0 +1,229 @@
+// Copyright (c) 2010 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.
+
+// This class gathers state related to a single user profile.
+
+#ifndef CHROME_BROWSER_PROFILE_IMPL_H_
+#define CHROME_BROWSER_PROFILE_IMPL_H_
+#pragma once
+
+#include <set>
+#include <string>
+
+#include "chrome/browser/profile.h"
+#include "chrome/browser/spellcheck_host_observer.h"
+#include "chrome/common/notification_registrar.h"
+
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/preferences.h"
+#endif
+
+// The default profile implementation.
+class ProfileImpl : public Profile,
+ public SpellCheckHostObserver,
+ public NotificationObserver {
+ public:
+ virtual ~ProfileImpl();
+
+ // Profile implementation.
+ virtual ProfileId GetRuntimeId();
+ virtual FilePath GetPath();
+ virtual bool IsOffTheRecord();
+ virtual Profile* GetOffTheRecordProfile();
+ virtual void DestroyOffTheRecordProfile();
+ virtual bool HasOffTheRecordProfile();
+ virtual Profile* GetOriginalProfile();
+ virtual webkit_database::DatabaseTracker* GetDatabaseTracker();
+ virtual history::TopSites* GetTopSites();
+ virtual VisitedLinkMaster* GetVisitedLinkMaster();
+ virtual UserScriptMaster* GetUserScriptMaster();
+ virtual SSLHostState* GetSSLHostState();
+ virtual net::TransportSecurityState* GetTransportSecurityState();
+ virtual ExtensionsService* GetExtensionsService();
+ virtual ExtensionDevToolsManager* GetExtensionDevToolsManager();
+ virtual ExtensionProcessManager* GetExtensionProcessManager();
+ virtual ExtensionMessageService* GetExtensionMessageService();
+ virtual FaviconService* GetFaviconService(ServiceAccessType sat);
+ virtual HistoryService* GetHistoryService(ServiceAccessType sat);
+ virtual HistoryService* GetHistoryServiceWithoutCreating();
+ virtual AutocompleteClassifier* GetAutocompleteClassifier();
+ virtual WebDataService* GetWebDataService(ServiceAccessType sat);
+ virtual WebDataService* GetWebDataServiceWithoutCreating();
+ virtual PasswordStore* GetPasswordStore(ServiceAccessType sat);
+ virtual PrefService* GetPrefs();
+ virtual TemplateURLModel* GetTemplateURLModel();
+ virtual TemplateURLFetcher* GetTemplateURLFetcher();
+ virtual DownloadManager* GetDownloadManager();
+ virtual PersonalDataManager* GetPersonalDataManager();
+ virtual void InitThemes();
+ virtual void SetTheme(Extension* extension);
+ virtual void SetNativeTheme();
+ virtual void ClearTheme();
+ virtual Extension* GetTheme();
+ virtual BrowserThemeProvider* GetThemeProvider();
+ virtual bool HasCreatedDownloadManager() const;
+ virtual URLRequestContextGetter* GetRequestContext();
+ virtual URLRequestContextGetter* GetRequestContextForMedia();
+ virtual URLRequestContextGetter* GetRequestContextForExtensions();
+ virtual void RegisterExtensionWithRequestContexts(Extension* extension);
+ virtual void UnregisterExtensionWithRequestContexts(Extension* extension);
+ virtual net::SSLConfigService* GetSSLConfigService();
+ virtual HostContentSettingsMap* GetHostContentSettingsMap();
+ virtual HostZoomMap* GetHostZoomMap();
+ virtual GeolocationContentSettingsMap* GetGeolocationContentSettingsMap();
+ virtual GeolocationPermissionContext* GetGeolocationPermissionContext();
+ virtual UserStyleSheetWatcher* GetUserStyleSheetWatcher();
+ virtual FindBarState* GetFindBarState();
+ virtual SessionService* GetSessionService();
+ virtual void ShutdownSessionService();
+ virtual bool HasSessionService() const;
+ virtual bool DidLastSessionExitCleanly();
+ virtual BookmarkModel* GetBookmarkModel();
+ virtual bool IsSameProfile(Profile* profile);
+ virtual base::Time GetStartTime() const;
+ virtual TabRestoreService* GetTabRestoreService();
+ virtual void ResetTabRestoreService();
+ virtual SpellCheckHost* GetSpellCheckHost();
+ virtual void ReinitializeSpellCheckHost(bool force);
+ virtual WebKitContext* GetWebKitContext();
+ virtual DesktopNotificationService* GetDesktopNotificationService();
+ virtual BackgroundContentsService* GetBackgroundContentsService();
+ virtual void MarkAsCleanShutdown();
+ virtual void InitExtensions();
+ virtual NTPResourceCache* GetNTPResourceCache();
+ virtual FilePath last_selected_directory();
+ virtual void set_last_selected_directory(const FilePath& path);
+ virtual ProfileSyncService* GetProfileSyncService();
+ virtual TokenService* GetTokenService();
+ void InitSyncService();
+ virtual CloudPrintProxyService* GetCloudPrintProxyService();
+ void InitCloudPrintProxyService();
+
+ // NotificationObserver implementation.
+ virtual void Observe(NotificationType type,
+ const NotificationSource& source,
+ const NotificationDetails& details);
+
+ // SpellCheckHostObserver implementation.
+ virtual void SpellCheckHostInitialized();
+
+ private:
+ friend class Profile;
+
+ explicit ProfileImpl(const FilePath& path);
+
+ void CreateWebDataService();
+ FilePath GetPrefFilePath();
+
+ void CreatePasswordStore();
+
+ void StopCreateSessionServiceTimer();
+
+ void EnsureRequestContextCreated() {
+ GetRequestContext();
+ }
+
+ void EnsureSessionServiceCreated() {
+ GetSessionService();
+ }
+
+ NotificationRegistrar registrar_;
+
+ FilePath path_;
+ FilePath base_cache_path_;
+ scoped_ptr<VisitedLinkEventListener> visited_link_event_listener_;
+ scoped_ptr<VisitedLinkMaster> visited_link_master_;
+ scoped_refptr<ExtensionsService> extensions_service_;
+ scoped_refptr<UserScriptMaster> user_script_master_;
+ scoped_refptr<ExtensionDevToolsManager> extension_devtools_manager_;
+ scoped_ptr<ExtensionProcessManager> extension_process_manager_;
+ scoped_refptr<ExtensionMessageService> extension_message_service_;
+ scoped_ptr<SSLHostState> ssl_host_state_;
+ scoped_refptr<net::TransportSecurityState>
+ transport_security_state_;
+ scoped_refptr<TransportSecurityPersister>
+ transport_security_persister_;
+ scoped_ptr<PrefService> prefs_;
+ scoped_ptr<TemplateURLFetcher> template_url_fetcher_;
+ scoped_ptr<TemplateURLModel> template_url_model_;
+ scoped_ptr<BookmarkModel> bookmark_bar_model_;
+ scoped_refptr<WebResourceService> web_resource_service_;
+ scoped_ptr<NTPResourceCache> ntp_resource_cache_;
+
+ scoped_ptr<TokenService> token_service_;
+ scoped_ptr<ProfileSyncFactory> profile_sync_factory_;
+ scoped_ptr<ProfileSyncService> sync_service_;
+ scoped_ptr<CloudPrintProxyService> cloud_print_proxy_service_;
+
+ scoped_refptr<ChromeURLRequestContextGetter> request_context_;
+
+ scoped_refptr<ChromeURLRequestContextGetter> media_request_context_;
+
+ scoped_refptr<ChromeURLRequestContextGetter> extensions_request_context_;
+
+ scoped_ptr<SSLConfigServiceManager> ssl_config_service_manager_;
+
+ scoped_refptr<HostContentSettingsMap> host_content_settings_map_;
+ scoped_refptr<HostZoomMap> host_zoom_map_;
+ scoped_refptr<GeolocationContentSettingsMap>
+ geolocation_content_settings_map_;
+ scoped_refptr<GeolocationPermissionContext>
+ geolocation_permission_context_;
+ scoped_refptr<UserStyleSheetWatcher> user_style_sheet_watcher_;
+ scoped_ptr<FindBarState> find_bar_state_;
+ scoped_refptr<DownloadManager> download_manager_;
+ scoped_refptr<HistoryService> history_service_;
+ scoped_refptr<FaviconService> favicon_service_;
+ scoped_ptr<AutocompleteClassifier> autocomplete_classifier_;
+ scoped_refptr<WebDataService> web_data_service_;
+ scoped_refptr<PasswordStore> password_store_;
+ scoped_refptr<SessionService> session_service_;
+ scoped_ptr<BrowserThemeProvider> theme_provider_;
+ scoped_refptr<WebKitContext> webkit_context_;
+ scoped_ptr<DesktopNotificationService> desktop_notification_service_;
+ scoped_ptr<BackgroundContentsService> background_contents_service_;
+ scoped_refptr<PersonalDataManager> personal_data_manager_;
+ scoped_ptr<PinnedTabService> pinned_tab_service_;
+ bool history_service_created_;
+ bool favicon_service_created_;
+ bool created_web_data_service_;
+ bool created_password_store_;
+ bool created_download_manager_;
+ bool created_theme_provider_;
+ // Whether or not the last session exited cleanly. This is set only once.
+ bool last_session_exited_cleanly_;
+
+ base::OneShotTimer<ProfileImpl> create_session_service_timer_;
+
+ scoped_ptr<Profile> off_the_record_profile_;
+
+ // See GetStartTime for details.
+ base::Time start_time_;
+
+ scoped_refptr<TabRestoreService> tab_restore_service_;
+
+ scoped_refptr<SpellCheckHost> spellcheck_host_;
+
+ // Indicates whether |spellcheck_host_| has told us initialization is
+ // finished.
+ bool spellcheck_host_ready_;
+
+ // Set to true when ShutdownSessionService is invoked. If true
+ // GetSessionService won't recreate the SessionService.
+ bool shutdown_session_service_;
+
+ // The main database tracker for this profile.
+ // Should be used only on the file thread.
+ scoped_refptr<webkit_database::DatabaseTracker> db_tracker_;
+
+ scoped_refptr<history::TopSites> top_sites_; // For history and thumbnails.
+
+#if defined(OS_CHROMEOS)
+ chromeos::Preferences chromeos_preferences_;
+#endif
+
+ DISALLOW_COPY_AND_ASSIGN(ProfileImpl);
+};
+
+#endif // CHROME_BROWSER_PROFILE_IMPL_H_