/* * Copyright 2010, The Android Open Source Project * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ // This class gathers state related to a single user profile. // On Android, we only use this for AutoFill so methods are mostly // just stubs. #ifndef ANDROID_AUTOFILL_PROFILE_H_ #define ANDROID_AUTOFILL_PROFILE_H_ #include "android/autofill/android_url_request_context_getter.h" #include "base/basictypes.h" #include "base/file_path.h" #include "base/memory/ref_counted.h" #include "base/scoped_ptr.h" #include "base/timer.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" namespace base { class Time; } namespace history { class TopSites; } namespace fileapi { class FileSystemContext; } namespace net { class TransportSecurityState; class SSLConfigService; } namespace policy { class ProfilePolicyContext; } namespace prerender { class PrerenderManager; } namespace webkit_database { class DatabaseTracker; } class AutocompleteClassifier; class BackgroundContentsService; class BookmarkModel; class BrowserSignin; class BrowserThemeProvider; class ChromeURLRequestContextGetter; class DesktopNotificationService; class DownloadManager; class Extension; class ExtensionDevToolsManager; class ExtensionIOEventRouter; class ExtensionProcessManager; class ExtensionMessageService; class ExtensionsService; class FaviconService; class FindBarState; class GeolocationContentSettingsMap; class GeolocationPermissionContext; class HistoryService; class HostContentSettingsMap; class HostZoomMap; class NavigationController; class NTPResourceCache; class PasswordStore; class PersonalDataManager; class PinnedTabService; class PrefProxyConfigTracker; class PromoCounter; class ProfileSyncService; class ProfileSyncFactory; class SessionService; class SpellCheckHost; class SSLConfigServiceManager; class SSLHostState; 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; class CloudPrintProxyService; typedef intptr_t ProfileId; // The android profile implementation. class ProfileImplAndroid : public Profile { public: virtual ~ProfileImplAndroid(); void SetRequestContext(net::URLRequestContextGetter* context) { url_request_context_getter_ = context; } // Profile implementation. virtual Profile* GetOriginalProfile(); virtual PersonalDataManager* GetPersonalDataManager(); virtual PrefService* GetPrefs(); virtual FilePath GetPath() { return path_; } virtual net::URLRequestContextGetter* GetRequestContext(); // Functions from Profile that we don't need on Android for AutoFill. virtual ProfileId GetRuntimeId() { NOTREACHED(); return 0; } virtual bool IsOffTheRecord() { NOTREACHED(); return false; } virtual Profile* GetOffTheRecordProfile() { NOTREACHED(); return NULL; } virtual void DestroyOffTheRecordProfile() { NOTREACHED(); } virtual bool HasOffTheRecordProfile() { NOTREACHED(); return false; } virtual ChromeAppCacheService* GetAppCacheService() { NOTREACHED(); return NULL; } virtual webkit_database::DatabaseTracker* GetDatabaseTracker() { NOTREACHED(); return NULL; } virtual history::TopSites* GetTopSites() { NOTREACHED(); return NULL; } virtual VisitedLinkMaster* GetVisitedLinkMaster() { NOTREACHED(); return NULL; } virtual UserScriptMaster* GetUserScriptMaster() { NOTREACHED(); return NULL; } virtual SSLHostState* GetSSLHostState() { NOTREACHED(); return NULL; } virtual net::TransportSecurityState* GetTransportSecurityState() { NOTREACHED(); return NULL; } virtual ExtensionsService* GetExtensionsService() { NOTREACHED(); return NULL; } virtual ExtensionDevToolsManager* GetExtensionDevToolsManager() { NOTREACHED(); return NULL; } virtual ExtensionProcessManager* GetExtensionProcessManager() { NOTREACHED(); return NULL; } virtual ExtensionMessageService* GetExtensionMessageService() { NOTREACHED(); return NULL; } virtual ExtensionEventRouter* GetExtensionEventRouter() { NOTREACHED(); return NULL; } virtual ExtensionIOEventRouter* GetExtensionIOEventRouter() { NOTREACHED(); return NULL; }; virtual ExtensionService* GetExtensionService() { NOTREACHED(); return NULL; } virtual ExtensionSpecialStoragePolicy* GetExtensionSpecialStoragePolicy() { NOTREACHED(); return NULL; } virtual FaviconService* GetFaviconService(ServiceAccessType sat) { NOTREACHED(); return NULL; } virtual HistoryService* GetHistoryService(ServiceAccessType sat) { NOTREACHED(); return NULL; } virtual HistoryService* GetHistoryServiceWithoutCreating() { NOTREACHED(); return NULL; } virtual AutocompleteClassifier* GetAutocompleteClassifier() { NOTREACHED(); return NULL; } virtual WebDataService* GetWebDataService(ServiceAccessType sat) { NOTREACHED(); return NULL; } virtual WebDataService* GetWebDataServiceWithoutCreating() { NOTREACHED(); return NULL; } virtual PasswordStore* GetPasswordStore(ServiceAccessType sat) { NOTREACHED(); return NULL; } virtual ProtocolHandlerRegistry* GetProtocolHandlerRegistry() { NOTREACHED(); return NULL; } virtual PrefService* GetOffTheRecordPrefs() { NOTREACHED(); return NULL; } virtual policy::ProfilePolicyConnector* GetPolicyConnector() { NOTREACHED(); return NULL; } virtual TemplateURLModel* GetTemplateURLModel() { NOTREACHED(); return NULL; } virtual TemplateURLFetcher* GetTemplateURLFetcher() { NOTREACHED(); return NULL; } virtual DownloadManager* GetDownloadManager() { NOTREACHED(); return NULL; } virtual fileapi::FileSystemContext* GetFileSystemContext() { NOTREACHED(); return NULL; } virtual void InitPromoResources() { NOTREACHED(); } virtual void InitRegisteredProtocolHandlers() { NOTREACHED(); } virtual void InitThemes() { NOTREACHED(); } virtual void SetTheme(const Extension* extension) { NOTREACHED(); } virtual void SetNativeTheme() { NOTREACHED(); } virtual void ClearTheme() { NOTREACHED(); } virtual const Extension* GetTheme() { NOTREACHED(); return NULL; } virtual BrowserThemeProvider* GetThemeProvider() { NOTREACHED(); return NULL; } virtual bool HasCreatedDownloadManager() const { NOTREACHED(); return false; } virtual net::URLRequestContextGetter* GetRequestContextForMedia() { NOTREACHED(); return NULL; } virtual net::URLRequestContextGetter* GetRequestContextForExtensions() { NOTREACHED(); return NULL; } virtual void RegisterExtensionWithRequestContexts(const Extension* extension) { NOTREACHED(); } virtual void UnregisterExtensionWithRequestContexts(const Extension* extension) { NOTREACHED(); } virtual net::SSLConfigService* GetSSLConfigService() { NOTREACHED(); return NULL; } virtual HostContentSettingsMap* GetHostContentSettingsMap() { NOTREACHED(); return NULL; } virtual HostZoomMap* GetHostZoomMap() { NOTREACHED(); return NULL; } virtual GeolocationContentSettingsMap* GetGeolocationContentSettingsMap() { NOTREACHED(); return NULL; } virtual GeolocationPermissionContext* GetGeolocationPermissionContext() { NOTREACHED(); return NULL; } virtual UserStyleSheetWatcher* GetUserStyleSheetWatcher() { NOTREACHED(); return NULL; } virtual FindBarState* GetFindBarState() { NOTREACHED(); return NULL; } virtual SessionService* GetSessionService() { NOTREACHED(); return NULL; } virtual void ShutdownSessionService() { NOTREACHED(); } virtual bool HasSessionService() const { NOTREACHED(); return false; } virtual bool DidLastSessionExitCleanly() { NOTREACHED(); return true; } virtual BookmarkModel* GetBookmarkModel() { NOTREACHED(); return NULL; } virtual bool IsSameProfile(Profile* profile) { NOTREACHED(); return false; } virtual base::Time GetStartTime() const { NOTREACHED(); return base::Time(); } virtual TabRestoreService* GetTabRestoreService() { NOTREACHED(); return NULL; } virtual void ResetTabRestoreService() { NOTREACHED(); } virtual SpellCheckHost* GetSpellCheckHost() { NOTREACHED(); return NULL; } virtual void ReinitializeSpellCheckHost(bool force) { NOTREACHED(); } virtual WebKitContext* GetWebKitContext() { NOTREACHED(); return NULL; } virtual DesktopNotificationService* GetDesktopNotificationService() { NOTREACHED(); return NULL; } virtual BackgroundContentsService* GetBackgroundContentsService() const { NOTREACHED(); return NULL; } virtual StatusTray* GetStatusTray() { NOTREACHED(); return NULL; } virtual void MarkAsCleanShutdown() { NOTREACHED(); } virtual void InitExtensions(bool extensions_enabled) { NOTREACHED(); } virtual void InitWebResources() { NOTREACHED(); } virtual NTPResourceCache* GetNTPResourceCache() { NOTREACHED(); return NULL; } virtual FilePath last_selected_directory() { NOTREACHED(); return FilePath(""); } virtual void set_last_selected_directory(const FilePath& path) { NOTREACHED(); } virtual ChromeBlobStorageContext* GetBlobStorageContext() { NOTREACHED(); return NULL; } virtual ExtensionInfoMap* GetExtensionInfoMap() { NOTREACHED(); return NULL; } virtual PromoCounter* GetInstantPromoCounter() { NOTREACHED(); return NULL; } virtual ProfileSyncService* GetProfileSyncService() { NOTREACHED(); return NULL; } virtual ProfileSyncService* GetProfileSyncService(const std::string&) { NOTREACHED(); return NULL; } virtual TokenService* GetTokenService() { NOTREACHED(); return NULL; } void InitSyncService() { NOTREACHED(); } virtual CloudPrintProxyService* GetCloudPrintProxyService() { NOTREACHED(); return NULL; } void InitCloudPrintProxyService() { NOTREACHED(); } virtual history::TopSites* GetTopSitesWithoutCreating() { NOTREACHED(); return NULL; } virtual BrowserSignin* GetBrowserSignin() { NOTREACHED(); return NULL; } virtual bool HasProfileSyncService() const { NOTREACHED(); return false; } virtual policy::ProfilePolicyContext* GetPolicyContext() { NOTREACHED(); return NULL; } virtual ChromeURLDataManager* GetChromeURLDataManager() { NOTREACHED(); return NULL; } virtual PrefProxyConfigTracker* GetProxyConfigTracker() { NOTREACHED(); return NULL; } virtual prerender::PrerenderManager* GetPrerenderManager() { NOTREACHED(); return NULL; } virtual net::URLRequestContextGetter* GetRequestContextForPossibleApp( const Extension* installed_app) { NOTREACHED(); return NULL; } virtual net::URLRequestContextGetter* GetRequestContextForIsolatedApp( const std::string& app_id) { NOTREACHED(); return NULL; } private: friend class Profile; explicit ProfileImplAndroid(const FilePath& path); void CreateWebDataService() { NOTREACHED(); } FilePath GetPrefFilePath() { return path_; } void CreatePasswordStore() { NOTREACHED(); } void StopCreateSessionServiceTimer() { NOTREACHED(); } void EnsureRequestContextCreated() { GetRequestContext(); } void EnsureSessionServiceCreated() { GetSessionService(); } FilePath path_; scoped_ptr preferences_; scoped_refptr personal_data_; scoped_refptr url_request_context_getter_; DISALLOW_COPY_AND_ASSIGN(ProfileImplAndroid); }; #endif // CHROME_BROWSER_PROFILE_H_