diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-02 21:18:33 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-02 21:18:33 +0000 |
commit | 8ecad5ed4a616e8c5023561c224e81e09a37d79a (patch) | |
tree | 86f596a20c73edf5a39eb0a4e589fe654c15ba2c /chrome/browser/profile.cc | |
parent | 96ccc7ec1f107b74a697ced6d08c4150efb5c297 (diff) | |
download | chromium_src-8ecad5ed4a616e8c5023561c224e81e09a37d79a.zip chromium_src-8ecad5ed4a616e8c5023561c224e81e09a37d79a.tar.gz chromium_src-8ecad5ed4a616e8c5023561c224e81e09a37d79a.tar.bz2 |
Move:
file_path_watcher into subdir
profile* into profiles/ subdir
login* into ui/login
visitedlink* into subdir
BUG=none
TEST=none
TBR=brettw
Review URL: http://codereview.chromium.org/5606002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68069 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/profile.cc')
-rw-r--r-- | chrome/browser/profile.cc | 667 |
1 files changed, 0 insertions, 667 deletions
diff --git a/chrome/browser/profile.cc b/chrome/browser/profile.cc deleted file mode 100644 index e903da3..0000000 --- a/chrome/browser/profile.cc +++ /dev/null @@ -1,667 +0,0 @@ -// 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. - -#include "chrome/browser/profile.h" - -#include "app/resource_bundle.h" -#include "base/command_line.h" -#include "base/file_path.h" -#include "base/file_util.h" -#include "base/path_service.h" -#include "base/scoped_ptr.h" -#include "base/string_util.h" -#include "chrome/browser/background_contents_service.h" -#include "chrome/browser/browser_list.h" -#include "chrome/browser/browser_process.h" -#include "chrome/browser/browser_thread.h" -#include "chrome/browser/chrome_blob_storage_context.h" -#include "chrome/browser/download/download_manager.h" -#include "chrome/browser/extensions/extension_message_service.h" -#include "chrome/browser/extensions/extension_process_manager.h" -#include "chrome/browser/file_system/browser_file_system_context.h" -#include "chrome/browser/in_process_webkit/webkit_context.h" -#include "chrome/browser/net/chrome_url_request_context.h" -#include "chrome/browser/notifications/desktop_notification_service.h" -#include "chrome/browser/ssl/ssl_host_state.h" -#include "chrome/browser/sync/profile_sync_service.h" -#include "chrome/browser/themes/browser_theme_provider.h" -#include "chrome/browser/ui/find_bar/find_bar_state.h" -#include "chrome/common/chrome_constants.h" -#include "chrome/common/chrome_paths.h" -#include "chrome/common/chrome_switches.h" -#include "chrome/common/json_pref_store.h" -#include "chrome/common/notification_service.h" -#include "chrome/common/pref_names.h" -#include "chrome/common/render_messages.h" -#include "grit/browser_resources.h" -#include "grit/locale_settings.h" -#include "net/base/transport_security_state.h" -#include "webkit/database/database_tracker.h" -#if defined(TOOLKIT_USES_GTK) -#include "chrome/browser/gtk/gtk_theme_provider.h" -#endif - -#if defined(OS_WIN) -#include "chrome/browser/password_manager/password_store_win.h" -#elif defined(OS_MACOSX) -#include "chrome/browser/keychain_mac.h" -#include "chrome/browser/password_manager/password_store_mac.h" -#elif defined(OS_POSIX) && !defined(OS_CHROMEOS) -#include "chrome/browser/password_manager/native_backend_gnome_x.h" -#include "chrome/browser/password_manager/native_backend_kwallet_x.h" -#include "chrome/browser/password_manager/password_store_x.h" -#endif - -using base::Time; -using base::TimeDelta; - -// A pointer to the request context for the default profile. See comments on -// Profile::GetDefaultRequestContext. -URLRequestContextGetter* Profile::default_request_context_; - -namespace { - -// TODO(pathorn): Duplicated in profile_impl.cc -void CleanupRequestContext(ChromeURLRequestContextGetter* context) { - if (context) - context->CleanupOnUIThread(); -} - -} // namespace - -// static -const ProfileId Profile::InvalidProfileId = static_cast<ProfileId>(0); - -// static -void Profile::RegisterUserPrefs(PrefService* prefs) { - prefs->RegisterBooleanPref(prefs::kSearchSuggestEnabled, true); - prefs->RegisterBooleanPref(prefs::kSessionExitedCleanly, true); - prefs->RegisterBooleanPref(prefs::kSafeBrowsingEnabled, true); - prefs->RegisterBooleanPref(prefs::kSafeBrowsingReportingEnabled, false); - // TODO(estade): IDS_SPELLCHECK_DICTIONARY should be an ASCII string. - prefs->RegisterLocalizedStringPref(prefs::kSpellCheckDictionary, - IDS_SPELLCHECK_DICTIONARY); - prefs->RegisterBooleanPref(prefs::kEnableSpellCheck, true); - prefs->RegisterBooleanPref(prefs::kEnableAutoSpellCorrect, true); -#if defined(TOOLKIT_USES_GTK) - prefs->RegisterBooleanPref(prefs::kUsesSystemTheme, - GtkThemeProvider::DefaultUsesSystemTheme()); -#endif - prefs->RegisterFilePathPref(prefs::kCurrentThemePackFilename, FilePath()); - prefs->RegisterStringPref(prefs::kCurrentThemeID, - BrowserThemeProvider::kDefaultThemeID); - prefs->RegisterDictionaryPref(prefs::kCurrentThemeImages); - prefs->RegisterDictionaryPref(prefs::kCurrentThemeColors); - prefs->RegisterDictionaryPref(prefs::kCurrentThemeTints); - prefs->RegisterDictionaryPref(prefs::kCurrentThemeDisplayProperties); - prefs->RegisterBooleanPref(prefs::kDisableExtensions, false); - prefs->RegisterStringPref(prefs::kSelectFileLastDirectory, ""); -#if defined(OS_CHROMEOS) - // TODO(dilmah): For OS_CHROMEOS we maintain kApplicationLocale in both - // local state and user's profile. For other platforms we maintain - // kApplicationLocale only in local state. - // In the future we may want to maintain kApplicationLocale - // in user's profile for other platforms as well. - prefs->RegisterStringPref(prefs::kApplicationLocale, ""); -#endif -} - -// static -URLRequestContextGetter* Profile::GetDefaultRequestContext() { - return default_request_context_; -} - -bool Profile::IsSyncAccessible() { - ProfileSyncService* syncService = GetProfileSyncService(); - return syncService && !syncService->IsManaged(); -} - -//////////////////////////////////////////////////////////////////////////////// -// -// OffTheRecordProfileImpl is a profile subclass that wraps an existing profile -// to make it suitable for the off the record mode. -// -//////////////////////////////////////////////////////////////////////////////// -class OffTheRecordProfileImpl : public Profile, - public BrowserList::Observer { - public: - explicit OffTheRecordProfileImpl(Profile* real_profile) - : profile_(real_profile), - start_time_(Time::Now()) { - request_context_ = ChromeURLRequestContextGetter::CreateOffTheRecord(this); - extension_process_manager_.reset(ExtensionProcessManager::Create(this)); - - BrowserList::AddObserver(this); - - background_contents_service_.reset( - new BackgroundContentsService(this, CommandLine::ForCurrentProcess())); - } - - virtual ~OffTheRecordProfileImpl() { - NotificationService::current()->Notify(NotificationType::PROFILE_DESTROYED, - Source<Profile>(this), - NotificationService::NoDetails()); - CleanupRequestContext(request_context_); - CleanupRequestContext(extensions_request_context_); - - // Clean up all DB files/directories - BrowserThread::PostTask( - BrowserThread::FILE, FROM_HERE, - NewRunnableMethod( - db_tracker_.get(), - &webkit_database::DatabaseTracker::DeleteIncognitoDBDirectory)); - - BrowserList::RemoveObserver(this); - } - - virtual ProfileId GetRuntimeId() { - return reinterpret_cast<ProfileId>(this); - } - - virtual FilePath GetPath() { return profile_->GetPath(); } - - virtual bool IsOffTheRecord() { - return true; - } - - virtual Profile* GetOffTheRecordProfile() { - return this; - } - - virtual void DestroyOffTheRecordProfile() { - // Suicide is bad! - NOTREACHED(); - } - - virtual bool HasOffTheRecordProfile() { - return true; - } - - virtual Profile* GetOriginalProfile() { - return profile_; - } - - virtual ChromeAppCacheService* GetAppCacheService() { - if (!appcache_service_) { - appcache_service_ = new ChromeAppCacheService; - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableMethod(appcache_service_.get(), - &ChromeAppCacheService::InitializeOnIOThread, - GetPath(), IsOffTheRecord(), - make_scoped_refptr(GetHostContentSettingsMap()))); - } - return appcache_service_; - } - - virtual webkit_database::DatabaseTracker* GetDatabaseTracker() { - if (!db_tracker_) { - db_tracker_ = new webkit_database::DatabaseTracker( - GetPath(), IsOffTheRecord()); - } - return db_tracker_; - } - - virtual VisitedLinkMaster* GetVisitedLinkMaster() { - // We don't provide access to the VisitedLinkMaster when we're OffTheRecord - // because we don't want to leak the sites that the user has visited before. - return NULL; - } - - virtual ExtensionsService* GetExtensionsService() { - return GetOriginalProfile()->GetExtensionsService(); - } - - virtual BackgroundContentsService* GetBackgroundContentsService() const { - return background_contents_service_.get(); - } - - virtual StatusTray* GetStatusTray() { - return GetOriginalProfile()->GetStatusTray(); - } - - virtual UserScriptMaster* GetUserScriptMaster() { - return GetOriginalProfile()->GetUserScriptMaster(); - } - - virtual ExtensionDevToolsManager* GetExtensionDevToolsManager() { - // TODO(mpcomplete): figure out whether we should return the original - // profile's version. - return NULL; - } - - virtual ExtensionProcessManager* GetExtensionProcessManager() { - return extension_process_manager_.get(); - } - - virtual ExtensionMessageService* GetExtensionMessageService() { - return GetOriginalProfile()->GetExtensionMessageService(); - } - - virtual ExtensionEventRouter* GetExtensionEventRouter() { - return GetOriginalProfile()->GetExtensionEventRouter(); - } - - virtual SSLHostState* GetSSLHostState() { - if (!ssl_host_state_.get()) - ssl_host_state_.reset(new SSLHostState()); - - DCHECK(ssl_host_state_->CalledOnValidThread()); - return ssl_host_state_.get(); - } - - virtual net::TransportSecurityState* GetTransportSecurityState() { - if (!transport_security_state_.get()) - transport_security_state_ = new net::TransportSecurityState(); - - return transport_security_state_.get(); - } - - virtual HistoryService* GetHistoryService(ServiceAccessType sat) { - if (sat == EXPLICIT_ACCESS) - return profile_->GetHistoryService(sat); - - NOTREACHED() << "This profile is OffTheRecord"; - return NULL; - } - - virtual HistoryService* GetHistoryServiceWithoutCreating() { - return profile_->GetHistoryServiceWithoutCreating(); - } - - virtual FaviconService* GetFaviconService(ServiceAccessType sat) { - if (sat == EXPLICIT_ACCESS) - return profile_->GetFaviconService(sat); - - NOTREACHED() << "This profile is OffTheRecord"; - return NULL; - } - - virtual AutocompleteClassifier* GetAutocompleteClassifier() { - return profile_->GetAutocompleteClassifier(); - } - - virtual WebDataService* GetWebDataService(ServiceAccessType sat) { - if (sat == EXPLICIT_ACCESS) - return profile_->GetWebDataService(sat); - - NOTREACHED() << "This profile is OffTheRecord"; - return NULL; - } - - virtual WebDataService* GetWebDataServiceWithoutCreating() { - return profile_->GetWebDataServiceWithoutCreating(); - } - - virtual PasswordStore* GetPasswordStore(ServiceAccessType sat) { - if (sat == EXPLICIT_ACCESS) - return profile_->GetPasswordStore(sat); - - NOTREACHED() << "This profile is OffTheRecord"; - return NULL; - } - - virtual PrefService* GetPrefs() { - return profile_->GetPrefs(); - } - - virtual TemplateURLModel* GetTemplateURLModel() { - return profile_->GetTemplateURLModel(); - } - - virtual TemplateURLFetcher* GetTemplateURLFetcher() { - return profile_->GetTemplateURLFetcher(); - } - - virtual DownloadManager* GetDownloadManager() { - if (!download_manager_.get()) { - scoped_refptr<DownloadManager> dlm( - new DownloadManager(g_browser_process->download_status_updater())); - dlm->Init(this); - download_manager_.swap(dlm); - } - return download_manager_.get(); - } - - virtual bool HasCreatedDownloadManager() const { - return (download_manager_.get() != NULL); - } - - virtual PersonalDataManager* GetPersonalDataManager() { - return NULL; - } - - virtual BrowserFileSystemContext* GetFileSystemContext() { - if (!browser_file_system_context_) - browser_file_system_context_ = new BrowserFileSystemContext( - GetPath(), IsOffTheRecord()); - DCHECK(browser_file_system_context_.get()); - return browser_file_system_context_.get(); - } - - virtual void InitThemes() { - profile_->InitThemes(); - } - - virtual void SetTheme(const Extension* extension) { - profile_->SetTheme(extension); - } - - virtual void SetNativeTheme() { - profile_->SetNativeTheme(); - } - - virtual void ClearTheme() { - profile_->ClearTheme(); - } - - virtual const Extension* GetTheme() { - return profile_->GetTheme(); - } - - virtual BrowserThemeProvider* GetThemeProvider() { - return profile_->GetThemeProvider(); - } - - virtual URLRequestContextGetter* GetRequestContext() { - return request_context_; - } - - virtual URLRequestContextGetter* GetRequestContextForMedia() { - // In OTR mode, media request context is the same as the original one. - return request_context_; - } - - URLRequestContextGetter* GetRequestContextForExtensions() { - if (!extensions_request_context_) { - extensions_request_context_ = - ChromeURLRequestContextGetter::CreateOffTheRecordForExtensions(this); - } - - return extensions_request_context_; - } - - virtual net::SSLConfigService* GetSSLConfigService() { - return profile_->GetSSLConfigService(); - } - - virtual HostContentSettingsMap* GetHostContentSettingsMap() { - // Retrieve the host content settings map of the parent profile in order to - // ensure the preferences have been migrated. - profile_->GetHostContentSettingsMap(); - if (!host_content_settings_map_.get()) - host_content_settings_map_ = new HostContentSettingsMap(this); - return host_content_settings_map_.get(); - } - - virtual HostZoomMap* GetHostZoomMap() { - if (!host_zoom_map_) - host_zoom_map_ = new HostZoomMap(this); - return host_zoom_map_.get(); - } - - virtual GeolocationContentSettingsMap* GetGeolocationContentSettingsMap() { - return profile_->GetGeolocationContentSettingsMap(); - } - - virtual GeolocationPermissionContext* GetGeolocationPermissionContext() { - return profile_->GetGeolocationPermissionContext(); - } - - virtual UserStyleSheetWatcher* GetUserStyleSheetWatcher() { - return profile_->GetUserStyleSheetWatcher(); - } - - virtual FindBarState* GetFindBarState() { - if (!find_bar_state_.get()) - find_bar_state_.reset(new FindBarState()); - return find_bar_state_.get(); - } - - virtual SessionService* GetSessionService() { - // Don't save any sessions when off the record. - return NULL; - } - - virtual void ShutdownSessionService() { - // We don't allow a session service, nothing to do. - } - - virtual bool HasSessionService() const { - // We never have a session service. - return false; - } - - virtual bool HasProfileSyncService() const { - // We never have a profile sync service. - return false; - } - - virtual bool DidLastSessionExitCleanly() { - return profile_->DidLastSessionExitCleanly(); - } - - virtual BookmarkModel* GetBookmarkModel() { - return profile_->GetBookmarkModel(); - } - - virtual DesktopNotificationService* GetDesktopNotificationService() { - if (!desktop_notification_service_.get()) { - desktop_notification_service_.reset(new DesktopNotificationService( - this, g_browser_process->notification_ui_manager())); - } - return desktop_notification_service_.get(); - } - - virtual TokenService* GetTokenService() { - return NULL; - } - - virtual ProfileSyncService* GetProfileSyncService() { - return NULL; - } - - virtual ProfileSyncService* GetProfileSyncService( - const std::string& cros_user) { - return NULL; - } - - virtual BrowserSignin* GetBrowserSignin() { - return profile_->GetBrowserSignin(); - } - - virtual CloudPrintProxyService* GetCloudPrintProxyService() { - return NULL; - } - - virtual bool IsSameProfile(Profile* profile) { - return (profile == this) || (profile == profile_); - } - - virtual Time GetStartTime() const { - return start_time_; - } - - virtual TabRestoreService* GetTabRestoreService() { - return NULL; - } - - virtual void ResetTabRestoreService() { - } - - virtual SpellCheckHost* GetSpellCheckHost() { - return profile_->GetSpellCheckHost(); - } - - virtual void ReinitializeSpellCheckHost(bool force) { - profile_->ReinitializeSpellCheckHost(force); - } - - virtual WebKitContext* GetWebKitContext() { - if (!webkit_context_.get()) - webkit_context_ = new WebKitContext(this, false); - DCHECK(webkit_context_.get()); - return webkit_context_.get(); - } - - virtual history::TopSites* GetTopSitesWithoutCreating() { - return NULL; - } - - virtual history::TopSites* GetTopSites() { - return NULL; - } - - virtual void MarkAsCleanShutdown() { - } - - virtual void InitExtensions() { - NOTREACHED(); - } - - virtual void InitWebResources() { - NOTREACHED(); - } - - virtual NTPResourceCache* GetNTPResourceCache() { - // Just return the real profile resource cache. - return profile_->GetNTPResourceCache(); - } - - virtual FilePath last_selected_directory() { - const FilePath& directory = last_selected_directory_; - if (directory.empty()) { - return profile_->last_selected_directory(); - } - return directory; - } - - virtual void set_last_selected_directory(const FilePath& path) { - last_selected_directory_ = path; - } - -#if defined(OS_CHROMEOS) - virtual chromeos::ProxyConfigServiceImpl* - GetChromeOSProxyConfigServiceImpl() { - return profile_->GetChromeOSProxyConfigServiceImpl(); - } - - virtual void SetupChromeOSEnterpriseExtensionObserver() { - profile_->SetupChromeOSEnterpriseExtensionObserver(); - } -#endif // defined(OS_CHROMEOS) - - virtual void ExitedOffTheRecordMode() { - // DownloadManager is lazily created, so check before accessing it. - if (download_manager_.get()) { - // Drop our download manager so we forget about all the downloads made - // in off-the-record mode. - download_manager_->Shutdown(); - download_manager_ = NULL; - } - } - - virtual void OnBrowserAdded(const Browser* browser) { - } - - virtual void OnBrowserRemoved(const Browser* browser) { - if (BrowserList::GetBrowserCount(this) == 0) - ExitedOffTheRecordMode(); - } - - virtual ChromeBlobStorageContext* GetBlobStorageContext() { - if (!blob_storage_context_) { - blob_storage_context_ = new ChromeBlobStorageContext(); - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - NewRunnableMethod( - blob_storage_context_.get(), - &ChromeBlobStorageContext::InitializeOnIOThread)); - } - return blob_storage_context_; - } - - virtual ExtensionInfoMap* GetExtensionInfoMap() { - return profile_->GetExtensionInfoMap(); - } - - virtual policy::ProfilePolicyContext* GetPolicyContext() { - return NULL; - } - - virtual PromoCounter* GetInstantPromoCounter() { - return NULL; - } - - virtual PrefProxyConfigTracker* GetProxyConfigTracker() { - return profile_->GetProxyConfigTracker(); - } - - private: - NotificationRegistrar registrar_; - - // The real underlying profile. - Profile* profile_; - - scoped_ptr<ExtensionProcessManager> extension_process_manager_; - - // The context to use for requests made from this OTR session. - scoped_refptr<ChromeURLRequestContextGetter> request_context_; - - // The context to use for requests made by an extension while in OTR mode. - scoped_refptr<ChromeURLRequestContextGetter> extensions_request_context_; - - // The download manager that only stores downloaded items in memory. - scoped_refptr<DownloadManager> download_manager_; - - // Use a separate desktop notification service for OTR. - scoped_ptr<DesktopNotificationService> desktop_notification_service_; - - // We use a non-writable content settings map for OTR. - scoped_refptr<HostContentSettingsMap> host_content_settings_map_; - - // Use a separate zoom map for OTR. - scoped_refptr<HostZoomMap> host_zoom_map_; - - // Use a special WebKit context for OTR browsing. - scoped_refptr<WebKitContext> webkit_context_; - - // We don't want SSLHostState from the OTR profile to leak back to the main - // profile because then the main profile would learn some of the host names - // the user visited while OTR. - scoped_ptr<SSLHostState> ssl_host_state_; - - // Use a separate FindBarState so search terms do not leak back to the main - // profile. - scoped_ptr<FindBarState> find_bar_state_; - - // The TransportSecurityState that only stores enabled sites in memory. - scoped_refptr<net::TransportSecurityState> - transport_security_state_; - - // Time we were started. - Time start_time_; - - scoped_refptr<ChromeAppCacheService> appcache_service_; - - // The main database tracker for this profile. - // Should be used only on the file thread. - scoped_refptr<webkit_database::DatabaseTracker> db_tracker_; - - FilePath last_selected_directory_; - - // Tracks all BackgroundContents running under this profile. - scoped_ptr<BackgroundContentsService> background_contents_service_; - - scoped_refptr<ChromeBlobStorageContext> blob_storage_context_; - - // The file_system context for this profile. - scoped_refptr<BrowserFileSystemContext> browser_file_system_context_; - - DISALLOW_COPY_AND_ASSIGN(OffTheRecordProfileImpl); -}; - -Profile* Profile::CreateOffTheRecordProfile() { - return new OffTheRecordProfileImpl(this); -} |