| Index: chrome/browser/profile.h
|
| ===================================================================
|
| --- chrome/browser/profile.h (revision 68044)
|
| +++ chrome/browser/profile.h (working copy)
|
| @@ -1,549 +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.
|
| -
|
| -// This class gathers state related to a single user profile.
|
| -
|
| -#ifndef CHROME_BROWSER_PROFILE_H_
|
| -#define CHROME_BROWSER_PROFILE_H_
|
| -#pragma once
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/logging.h"
|
| -
|
| -namespace base {
|
| -class Time;
|
| -}
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| -namespace chromeos {
|
| -class EnterpriseExtensionObserver;
|
| -class ProxyConfigServiceImpl;
|
| -}
|
| -#endif
|
| -
|
| -namespace history {
|
| -class TopSites;
|
| -}
|
| -
|
| -namespace net {
|
| -class TransportSecurityState;
|
| -class SSLConfigService;
|
| -}
|
| -
|
| -namespace policy {
|
| -class ProfilePolicyContext;
|
| -}
|
| -
|
| -namespace webkit_database {
|
| -class DatabaseTracker;
|
| -}
|
| -
|
| -class AutocompleteClassifier;
|
| -class BackgroundContentsService;
|
| -class BackgroundModeManager;
|
| -class BookmarkModel;
|
| -class BrowserSignin;
|
| -class BrowserThemeProvider;
|
| -class ChromeAppCacheService;
|
| -class ChromeBlobStorageContext;
|
| -class ChromeURLRequestContextGetter;
|
| -class CloudPrintProxyService;
|
| -class DesktopNotificationService;
|
| -class DownloadManager;
|
| -class Extension;
|
| -class ExtensionDevToolsManager;
|
| -class ExtensionEventRouter;
|
| -class ExtensionMessageService;
|
| -class ExtensionProcessManager;
|
| -class ExtensionsService;
|
| -class FaviconService;
|
| -class FilePath;
|
| -class BrowserFileSystemContext;
|
| -class FindBarState;
|
| -class GeolocationContentSettingsMap;
|
| -class GeolocationPermissionContext;
|
| -class HistoryService;
|
| -class HostContentSettingsMap;
|
| -class HostZoomMap;
|
| -class NavigationController;
|
| -class NTPResourceCache;
|
| -class PasswordStore;
|
| -class PersonalDataManager;
|
| -class PinnedTabService;
|
| -class PrefService;
|
| -class ExtensionInfoMap;
|
| -class PrefProxyConfigTracker;
|
| -class PromoCounter;
|
| -class ProfileSyncService;
|
| -class ProfileSyncFactory;
|
| -class SessionService;
|
| -class SpellCheckHost;
|
| -class SSLConfigServiceManager;
|
| -class SSLHostState;
|
| -class StatusTray;
|
| -class TransportSecurityPersister;
|
| -class SQLitePersistentCookieStore;
|
| -class TabRestoreService;
|
| -class TemplateURLFetcher;
|
| -class TemplateURLModel;
|
| -class ThemeProvider;
|
| -class TokenService;
|
| -class URLRequestContextGetter;
|
| -class UserScriptMaster;
|
| -class UserStyleSheetWatcher;
|
| -class VisitedLinkMaster;
|
| -class VisitedLinkEventListener;
|
| -class WebDataService;
|
| -class WebKitContext;
|
| -class WebResourceService;
|
| -
|
| -typedef intptr_t ProfileId;
|
| -
|
| -class Profile {
|
| - public:
|
| - // Profile services are accessed with the following parameter. This parameter
|
| - // defines what the caller plans to do with the service.
|
| - // The caller is responsible for not performing any operation that would
|
| - // result in persistent implicit records while using an OffTheRecord profile.
|
| - // This flag allows the profile to perform an additional check.
|
| - //
|
| - // It also gives us an opportunity to perform further checks in the future. We
|
| - // could, for example, return an history service that only allow some specific
|
| - // methods.
|
| - enum ServiceAccessType {
|
| - // The caller plans to perform a read or write that takes place as a result
|
| - // of the user input. Use this flag when the operation you are doing can be
|
| - // performed while off the record. (ex: creating a bookmark)
|
| - //
|
| - // Since EXPLICIT_ACCESS means "as a result of a user action", this request
|
| - // always succeeds.
|
| - EXPLICIT_ACCESS,
|
| -
|
| - // The caller plans to call a method that will permanently change some data
|
| - // in the profile, as part of Chrome's implicit data logging. Use this flag
|
| - // when you are about to perform an operation which is incompatible with the
|
| - // off the record mode.
|
| - IMPLICIT_ACCESS
|
| - };
|
| -
|
| - // Value that represents no profile Id.
|
| - static const ProfileId InvalidProfileId;
|
| -
|
| - Profile() : restored_last_session_(false), accessibility_pause_level_(0) {}
|
| - virtual ~Profile() {}
|
| -
|
| - // Profile prefs are registered as soon as the prefs are loaded for the first
|
| - // time.
|
| - static void RegisterUserPrefs(PrefService* prefs);
|
| -
|
| - // Create a new profile given a path.
|
| - static Profile* CreateProfile(const FilePath& path);
|
| -
|
| - // Returns the request context for the "default" profile. This may be called
|
| - // from any thread. This CAN return NULL if a first request context has not
|
| - // yet been created. If necessary, listen on the UI thread for
|
| - // NOTIFY_DEFAULT_REQUEST_CONTEXT_AVAILABLE.
|
| - static URLRequestContextGetter* GetDefaultRequestContext();
|
| -
|
| - // Returns a unique Id that can be used to identify this profile at runtime.
|
| - // This Id is not persistent and will not survive a restart of the browser.
|
| - virtual ProfileId GetRuntimeId() = 0;
|
| -
|
| - // Returns the path of the directory where this profile's data is stored.
|
| - virtual FilePath GetPath() = 0;
|
| -
|
| - // Return whether this profile is off the record. Default is false.
|
| - virtual bool IsOffTheRecord() = 0;
|
| -
|
| - // Return the off the record version of this profile. The returned pointer
|
| - // is owned by the receiving profile. If the receiving profile is off the
|
| - // record, the same profile is returned.
|
| - virtual Profile* GetOffTheRecordProfile() = 0;
|
| -
|
| - // Destroys the off the record profile.
|
| - virtual void DestroyOffTheRecordProfile() = 0;
|
| -
|
| - // True if an off the record profile exists.
|
| - virtual bool HasOffTheRecordProfile() = 0;
|
| -
|
| - // Return the original "recording" profile. This method returns this if the
|
| - // profile is not off the record.
|
| - virtual Profile* GetOriginalProfile() = 0;
|
| -
|
| - // Returns a pointer to the ChromeAppCacheService instance for this profile.
|
| - virtual ChromeAppCacheService* GetAppCacheService() = 0;
|
| -
|
| - // Returns a pointer to the DatabaseTracker instance for this profile.
|
| - virtual webkit_database::DatabaseTracker* GetDatabaseTracker() = 0;
|
| -
|
| - // Returns a pointer to the TopSites (thumbnail manager) instance
|
| - // for this profile.
|
| - virtual history::TopSites* GetTopSites() = 0;
|
| -
|
| - // Variant of GetTopSites that doesn't force creation.
|
| - virtual history::TopSites* GetTopSitesWithoutCreating() = 0;
|
| -
|
| - // Retrieves a pointer to the VisitedLinkMaster associated with this
|
| - // profile. The VisitedLinkMaster is lazily created the first time
|
| - // that this method is called.
|
| - virtual VisitedLinkMaster* GetVisitedLinkMaster() = 0;
|
| -
|
| - // Retrieves a pointer to the ExtensionsService associated with this
|
| - // profile. The ExtensionsService is created at startup.
|
| - virtual ExtensionsService* GetExtensionsService() = 0;
|
| -
|
| - // Retrieves a pointer to the UserScriptMaster associated with this
|
| - // profile. The UserScriptMaster is lazily created the first time
|
| - // that this method is called.
|
| - virtual UserScriptMaster* GetUserScriptMaster() = 0;
|
| -
|
| - // Retrieves a pointer to the ExtensionDevToolsManager associated with this
|
| - // profile. The instance is created at startup.
|
| - virtual ExtensionDevToolsManager* GetExtensionDevToolsManager() = 0;
|
| -
|
| - // Retrieves a pointer to the ExtensionProcessManager associated with this
|
| - // profile. The instance is created at startup.
|
| - virtual ExtensionProcessManager* GetExtensionProcessManager() = 0;
|
| -
|
| - // Retrieves a pointer to the ExtensionMessageService associated with this
|
| - // profile. The instance is created at startup.
|
| - virtual ExtensionMessageService* GetExtensionMessageService() = 0;
|
| -
|
| - // Accessor. The instance is created at startup.
|
| - virtual ExtensionEventRouter* GetExtensionEventRouter() = 0;
|
| -
|
| - // Retrieves a pointer to the SSLHostState associated with this profile.
|
| - // The SSLHostState is lazily created the first time that this method is
|
| - // called.
|
| - virtual SSLHostState* GetSSLHostState() = 0;
|
| -
|
| - // Retrieves a pointer to the TransportSecurityState associated with
|
| - // this profile. The TransportSecurityState is lazily created the
|
| - // first time that this method is called.
|
| - virtual net::TransportSecurityState*
|
| - GetTransportSecurityState() = 0;
|
| -
|
| - // Retrieves a pointer to the FaviconService associated with this
|
| - // profile. The FaviconService is lazily created the first time
|
| - // that this method is called.
|
| - //
|
| - // Although FaviconService is refcounted, this will not addref, and callers
|
| - // do not need to do any reference counting as long as they keep the pointer
|
| - // only for the local scope (which they should do anyway since the browser
|
| - // process may decide to shut down).
|
| - //
|
| - // |access| defines what the caller plans to do with the service. See
|
| - // the ServiceAccessType definition above.
|
| - virtual FaviconService* GetFaviconService(ServiceAccessType access) = 0;
|
| -
|
| - // Retrieves a pointer to the HistoryService associated with this
|
| - // profile. The HistoryService is lazily created the first time
|
| - // that this method is called.
|
| - //
|
| - // Although HistoryService is refcounted, this will not addref, and callers
|
| - // do not need to do any reference counting as long as they keep the pointer
|
| - // only for the local scope (which they should do anyway since the browser
|
| - // process may decide to shut down).
|
| - //
|
| - // |access| defines what the caller plans to do with the service. See
|
| - // the ServiceAccessType definition above.
|
| - virtual HistoryService* GetHistoryService(ServiceAccessType access) = 0;
|
| -
|
| - // Similar to GetHistoryService(), but won't create the history service if it
|
| - // doesn't already exist.
|
| - virtual HistoryService* GetHistoryServiceWithoutCreating() = 0;
|
| -
|
| - // Retrieves a pointer to the AutocompleteClassifier associated with this
|
| - // profile. The AutocompleteClassifier is lazily created the first time that
|
| - // this method is called.
|
| - virtual AutocompleteClassifier* GetAutocompleteClassifier() = 0;
|
| -
|
| - // Returns the WebDataService for this profile. This is owned by
|
| - // the Profile. Callers that outlive the life of this profile need to be
|
| - // sure they refcount the returned value.
|
| - //
|
| - // |access| defines what the caller plans to do with the service. See
|
| - // the ServiceAccessType definition above.
|
| - virtual WebDataService* GetWebDataService(ServiceAccessType access) = 0;
|
| -
|
| - // Similar to GetWebDataService(), but won't create the web data service if it
|
| - // doesn't already exist.
|
| - virtual WebDataService* GetWebDataServiceWithoutCreating() = 0;
|
| -
|
| - // Returns the PasswordStore for this profile. This is owned by the Profile.
|
| - virtual PasswordStore* GetPasswordStore(ServiceAccessType access) = 0;
|
| -
|
| - // Retrieves a pointer to the PrefService that manages the preferences
|
| - // for this user profile. The PrefService is lazily created the first
|
| - // time that this method is called.
|
| - virtual PrefService* GetPrefs() = 0;
|
| -
|
| - // Returns the TemplateURLModel for this profile. This is owned by the
|
| - // the Profile.
|
| - virtual TemplateURLModel* GetTemplateURLModel() = 0;
|
| -
|
| - // Returns the TemplateURLFetcher for this profile. This is owned by the
|
| - // profile.
|
| - virtual TemplateURLFetcher* GetTemplateURLFetcher() = 0;
|
| -
|
| - // Returns the DownloadManager associated with this profile.
|
| - virtual DownloadManager* GetDownloadManager() = 0;
|
| - virtual bool HasCreatedDownloadManager() const = 0;
|
| -
|
| - // Returns the PersonalDataManager associated with this profile.
|
| - virtual PersonalDataManager* GetPersonalDataManager() = 0;
|
| -
|
| - // Returns the FileSystemContext associated to this profile. The context
|
| - // is lazily created the first time this method is called. This is owned
|
| - // by the profile.
|
| - virtual BrowserFileSystemContext* GetFileSystemContext() = 0;
|
| -
|
| - // Returns the BrowserSignin object assigned to this profile.
|
| - virtual BrowserSignin* GetBrowserSignin() = 0;
|
| -
|
| - // Init our themes system.
|
| - virtual void InitThemes() = 0;
|
| -
|
| - // Set the theme to the specified extension.
|
| - virtual void SetTheme(const Extension* extension) = 0;
|
| -
|
| - // Set the theme to the machine's native theme.
|
| - virtual void SetNativeTheme() = 0;
|
| -
|
| - // Clear the theme and reset it to default.
|
| - virtual void ClearTheme() = 0;
|
| -
|
| - // Gets the theme that was last set. Returns NULL if the theme is no longer
|
| - // installed, if there is no installed theme, or the theme was cleared.
|
| - virtual const Extension* GetTheme() = 0;
|
| -
|
| - // Returns or creates the ThemeProvider associated with this profile
|
| - virtual BrowserThemeProvider* GetThemeProvider() = 0;
|
| -
|
| - // Returns the request context information associated with this profile. Call
|
| - // this only on the UI thread, since it can send notifications that should
|
| - // happen on the UI thread.
|
| - virtual URLRequestContextGetter* GetRequestContext() = 0;
|
| -
|
| - // Returns the request context for media resources asociated with this
|
| - // profile.
|
| - virtual URLRequestContextGetter* GetRequestContextForMedia() = 0;
|
| -
|
| - // Returns the request context used for extension-related requests. This
|
| - // is only used for a separate cookie store currently.
|
| - virtual URLRequestContextGetter* GetRequestContextForExtensions() = 0;
|
| -
|
| - // Called by the ExtensionsService that lives in this profile. Gives the
|
| - // profile a chance to react to the load event before the EXTENSION_LOADED
|
| - // notification has fired. The purpose for handling this event first is to
|
| - // avoid race conditions by making sure URLRequestContexts learn about new
|
| - // extensions before anything else needs them to know.
|
| - virtual void RegisterExtensionWithRequestContexts(
|
| - const Extension* extension) {}
|
| -
|
| - // Called by the ExtensionsService that lives in this profile. Lets the
|
| - // profile clean up its RequestContexts once all the listeners to the
|
| - // EXTENSION_UNLOADED notification have finished running.
|
| - virtual void UnregisterExtensionWithRequestContexts(
|
| - const Extension* extension) {}
|
| -
|
| - // Returns the SSLConfigService for this profile.
|
| - virtual net::SSLConfigService* GetSSLConfigService() = 0;
|
| -
|
| - // Returns the Hostname <-> Content settings map for this profile.
|
| - virtual HostContentSettingsMap* GetHostContentSettingsMap() = 0;
|
| -
|
| - // Returns the Hostname <-> Zoom Level map for this profile.
|
| - virtual HostZoomMap* GetHostZoomMap() = 0;
|
| -
|
| - // Returns the geolocation settings map for this profile.
|
| - virtual GeolocationContentSettingsMap* GetGeolocationContentSettingsMap() = 0;
|
| -
|
| - // Returns the geolocation permission context for this profile.
|
| - virtual GeolocationPermissionContext* GetGeolocationPermissionContext() = 0;
|
| -
|
| - // Returns the user style sheet watcher.
|
| - virtual UserStyleSheetWatcher* GetUserStyleSheetWatcher() = 0;
|
| -
|
| - // Returns the find bar state for this profile. The find bar state is lazily
|
| - // created the first time that this method is called.
|
| - virtual FindBarState* GetFindBarState() = 0;
|
| -
|
| - // Returns the session service for this profile. This may return NULL. If
|
| - // this profile supports a session service (it isn't off the record), and
|
| - // the session service hasn't yet been created, this forces creation of
|
| - // the session service.
|
| - //
|
| - // This returns NULL in two situations: the profile is off the record, or the
|
| - // session service has been explicitly shutdown (browser is exiting). Callers
|
| - // should always check the return value for NULL.
|
| - virtual SessionService* GetSessionService() = 0;
|
| -
|
| - // If this profile has a session service, it is shut down. To properly record
|
| - // the current state this forces creation of the session service, then shuts
|
| - // it down.
|
| - virtual void ShutdownSessionService() = 0;
|
| -
|
| - // Returns true if this profile has a session service.
|
| - virtual bool HasSessionService() const = 0;
|
| -
|
| - // Returns true if this profile has a profile sync service.
|
| - virtual bool HasProfileSyncService() const = 0;
|
| -
|
| - // Returns true if the last time this profile was open it was exited cleanly.
|
| - virtual bool DidLastSessionExitCleanly() = 0;
|
| -
|
| - // Returns the BookmarkModel, creating if not yet created.
|
| - virtual BookmarkModel* GetBookmarkModel() = 0;
|
| -
|
| - // Returns the Gaia Token Service, creating if not yet created.
|
| - virtual TokenService* GetTokenService() = 0;
|
| -
|
| - // Returns the ProfileSyncService, creating if not yet created.
|
| - virtual ProfileSyncService* GetProfileSyncService() = 0;
|
| -
|
| - // Returns the ProfileSyncService, creating if not yet created, with
|
| - // the specified CrOS username.
|
| - virtual ProfileSyncService* GetProfileSyncService(
|
| - const std::string& cros_user) = 0;
|
| -
|
| - // Returns the CloudPrintProxyService, creating if not yet created.
|
| - virtual CloudPrintProxyService* GetCloudPrintProxyService() = 0;
|
| -
|
| - // Return whether 2 profiles are the same. 2 profiles are the same if they
|
| - // represent the same profile. This can happen if there is pointer equality
|
| - // or if one profile is the off the record version of another profile (or vice
|
| - // versa).
|
| - virtual bool IsSameProfile(Profile* profile) = 0;
|
| -
|
| - // Returns the time the profile was started. This is not the time the profile
|
| - // was created, rather it is the time the user started chrome and logged into
|
| - // this profile. For the single profile case, this corresponds to the time
|
| - // the user started chrome.
|
| - virtual base::Time GetStartTime() const = 0;
|
| -
|
| - // Returns the TabRestoreService. This returns NULL when off the record.
|
| - virtual TabRestoreService* GetTabRestoreService() = 0;
|
| -
|
| - virtual void ResetTabRestoreService() = 0;
|
| -
|
| - // May return NULL.
|
| - virtual SpellCheckHost* GetSpellCheckHost() = 0;
|
| -
|
| - // If |force| is false, and the spellchecker is already initialized (or is in
|
| - // the process of initializing), then do nothing. Otherwise clobber the
|
| - // current spellchecker and replace it with a new one.
|
| - virtual void ReinitializeSpellCheckHost(bool force) = 0;
|
| -
|
| - // Returns the WebKitContext assigned to this profile.
|
| - virtual WebKitContext* GetWebKitContext() = 0;
|
| -
|
| - // Returns the provider of desktop notifications for this profile.
|
| - virtual DesktopNotificationService* GetDesktopNotificationService() = 0;
|
| -
|
| - // Returns the service that manages BackgroundContents for this profile.
|
| - virtual BackgroundContentsService* GetBackgroundContentsService() const = 0;
|
| -
|
| - // Returns the StatusTray, which provides an API for displaying status icons
|
| - // in the system status tray. Returns NULL if status icons are not supported
|
| - // on this platform (or this is a unit test).
|
| - virtual StatusTray* GetStatusTray() = 0;
|
| -
|
| - // Marks the profile as cleanly shutdown.
|
| - //
|
| - // NOTE: this is invoked internally on a normal shutdown, but is public so
|
| - // that it can be invoked when the user logs out/powers down (WM_ENDSESSION).
|
| - virtual void MarkAsCleanShutdown() = 0;
|
| -
|
| - virtual void InitExtensions() = 0;
|
| -
|
| - // Start up service that gathers data from a web resource feed.
|
| - virtual void InitWebResources() = 0;
|
| -
|
| - // Returns the new tab page resource cache.
|
| - virtual NTPResourceCache* GetNTPResourceCache() = 0;
|
| -
|
| - // Returns the last directory that was chosen for uploading or opening a file.
|
| - virtual FilePath last_selected_directory() = 0;
|
| - virtual void set_last_selected_directory(const FilePath& path) = 0;
|
| -
|
| - // Returns a pointer to the ChromeBlobStorageContext instance for this
|
| - // profile.
|
| - virtual ChromeBlobStorageContext* GetBlobStorageContext() = 0;
|
| -
|
| - // Returns the IO-thread-accessible profile data for this profile.
|
| - virtual ExtensionInfoMap* GetExtensionInfoMap() = 0;
|
| -
|
| - // Returns the PromoCounter for Instant, or NULL if not applicable.
|
| - virtual PromoCounter* GetInstantPromoCounter() = 0;
|
| -
|
| - // Gets the policy context associated with this profile.
|
| - virtual policy::ProfilePolicyContext* GetPolicyContext() = 0;
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| - // Returns ChromeOS's ProxyConfigServiceImpl, creating if not yet created.
|
| - virtual chromeos::ProxyConfigServiceImpl*
|
| - GetChromeOSProxyConfigServiceImpl() = 0;
|
| -
|
| - // Creates ChromeOS's EnterpriseExtensionListener.
|
| - virtual void SetupChromeOSEnterpriseExtensionObserver() = 0;
|
| -
|
| -#endif // defined(OS_CHROMEOS)
|
| -
|
| - // Returns the helper object that provides the proxy configuration service
|
| - // access to the the proxy configuration possibly defined by preferences.
|
| - virtual PrefProxyConfigTracker* GetProxyConfigTracker() = 0;
|
| -
|
| -#ifdef UNIT_TEST
|
| - // Use with caution. GetDefaultRequestContext may be called on any thread!
|
| - static void set_default_request_context(URLRequestContextGetter* c) {
|
| - default_request_context_ = c;
|
| - }
|
| -#endif
|
| -
|
| - // Did the user restore the last session? This is set by SessionRestore.
|
| - void set_restored_last_session(bool restored_last_session) {
|
| - restored_last_session_ = restored_last_session;
|
| - }
|
| - bool restored_last_session() const {
|
| - return restored_last_session_;
|
| - }
|
| -
|
| - // Stop sending accessibility events until ResumeAccessibilityEvents().
|
| - // Calls to Pause nest; no events will be sent until the number of
|
| - // Resume calls matches the number of Pause calls received.
|
| - void PauseAccessibilityEvents() {
|
| - accessibility_pause_level_++;
|
| - }
|
| -
|
| - void ResumeAccessibilityEvents() {
|
| - DCHECK(accessibility_pause_level_ > 0);
|
| - accessibility_pause_level_--;
|
| - }
|
| -
|
| - bool ShouldSendAccessibilityEvents() {
|
| - return 0 == accessibility_pause_level_;
|
| - }
|
| -
|
| - // Checks whether sync is configurable by the user. Returns false if sync is
|
| - // disabled or controlled by configuration management.
|
| - bool IsSyncAccessible();
|
| -
|
| - // Creates an OffTheRecordProfile which points to this Profile.
|
| - Profile* CreateOffTheRecordProfile();
|
| -
|
| - protected:
|
| - static URLRequestContextGetter* default_request_context_;
|
| -
|
| - private:
|
| - bool restored_last_session_;
|
| -
|
| - // Accessibility events will only be propagated when the pause
|
| - // level is zero. PauseAccessibilityEvents and ResumeAccessibilityEvents
|
| - // increment and decrement the level, respectively, rather than set it to
|
| - // true or false, so that calls can be nested.
|
| - int accessibility_pause_level_;
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_PROFILE_H_
|
|
|