17d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch/*
27d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * Copyright 2010, The Android Open Source Project
37d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch *
47d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * Redistribution and use in source and binary forms, with or without
57d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * modification, are permitted provided that the following conditions
67d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * are met:
77d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch *  * Redistributions of source code must retain the above copyright
87d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch *    notice, this list of conditions and the following disclaimer.
97d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch *  * Redistributions in binary form must reproduce the above copyright
107d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch *    notice, this list of conditions and the following disclaimer in the
117d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch *    documentation and/or other materials provided with the distribution.
127d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch *
137d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
147d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
157d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
167d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
177d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
187d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
197d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
207d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
217d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
227d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
237d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
247d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch */
257d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
267d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch// This class gathers state related to a single user profile.
277d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch// On Android, we only use this for AutoFill so methods are mostly
287d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch// just stubs.
297d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
307d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch#ifndef ANDROID_AUTOFILL_PROFILE_H_
317d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch#define ANDROID_AUTOFILL_PROFILE_H_
327d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
337d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch#include "android/autofill/android_url_request_context_getter.h"
347d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch#include "base/basictypes.h"
357d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch#include "base/file_path.h"
36cfb4826edae011aed657a813297687800ed85e17Kristian Monsen#include "base/memory/ref_counted.h"
377d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch#include "base/scoped_ptr.h"
387d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch#include "base/timer.h"
39dbeb7bfd58939b6a020a91552afd12c32108a7c7Iain Merrick#include "chrome/browser/prefs/pref_service.h"
400dcd5fce7fd690e4bcadabbb2dfd1a5ef859bb4dKristian Monsen#include "chrome/browser/profiles/profile.h"
417d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
427d214dfa174224b459660971e5b5cce2e06be02aBen Murdochnamespace base {
437d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass Time;
447d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch}
457d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
467d214dfa174224b459660971e5b5cce2e06be02aBen Murdochnamespace history {
477d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass TopSites;
487d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch}
497d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
503f388049fd942346ffbeed1dd8f4214d36f8f856Kristian Monsennamespace fileapi {
513f388049fd942346ffbeed1dd8f4214d36f8f856Kristian Monsenclass FileSystemContext;
523f388049fd942346ffbeed1dd8f4214d36f8f856Kristian Monsen}
533f388049fd942346ffbeed1dd8f4214d36f8f856Kristian Monsen
547d214dfa174224b459660971e5b5cce2e06be02aBen Murdochnamespace net {
557d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass TransportSecurityState;
567d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass SSLConfigService;
577d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch}
587d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
591bbc2eb6ced80e65ee853160820623e295e99d79Ben Murdochnamespace policy {
601bbc2eb6ced80e65ee853160820623e295e99d79Ben Murdochclass ProfilePolicyContext;
611bbc2eb6ced80e65ee853160820623e295e99d79Ben Murdoch}
621bbc2eb6ced80e65ee853160820623e295e99d79Ben Murdoch
63307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsennamespace prerender {
64307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsenclass PrerenderManager;
65307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsen}
66307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsen
677d214dfa174224b459660971e5b5cce2e06be02aBen Murdochnamespace webkit_database {
687d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass DatabaseTracker;
697d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch}
707d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
717d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass AutocompleteClassifier;
727d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass BackgroundContentsService;
737d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass BookmarkModel;
7481e333ba9bbaf09cb5411cb0966ae032d4539e12Ben Murdochclass BrowserSignin;
757d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass BrowserThemeProvider;
767d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass ChromeURLRequestContextGetter;
777d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass DesktopNotificationService;
787d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass DownloadManager;
797d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass Extension;
807d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass ExtensionDevToolsManager;
81307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsenclass ExtensionIOEventRouter;
827d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass ExtensionProcessManager;
837d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass ExtensionMessageService;
847d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass ExtensionsService;
857d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass FaviconService;
867d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass FindBarState;
877d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass GeolocationContentSettingsMap;
887d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass GeolocationPermissionContext;
897d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass HistoryService;
907d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass HostContentSettingsMap;
917d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass HostZoomMap;
927d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass NavigationController;
937d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass NTPResourceCache;
947d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass PasswordStore;
957d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass PersonalDataManager;
967d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass PinnedTabService;
971bbc2eb6ced80e65ee853160820623e295e99d79Ben Murdochclass PrefProxyConfigTracker;
9896c28f8867c49042c0bfa240ea3babba600e6416Ben Murdochclass PromoCounter;
997d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass ProfileSyncService;
1007d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass ProfileSyncFactory;
1017d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass SessionService;
1027d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass SpellCheckHost;
1037d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass SSLConfigServiceManager;
1047d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass SSLHostState;
1057d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass TransportSecurityPersister;
1067d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass SQLitePersistentCookieStore;
1077d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass TabRestoreService;
1087d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass TemplateURLFetcher;
1097d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass TemplateURLModel;
1107d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass ThemeProvider;
1117d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass TokenService;
1127d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass URLRequestContextGetter;
1137d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass UserScriptMaster;
1147d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass UserStyleSheetWatcher;
1157d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass VisitedLinkMaster;
1167d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass VisitedLinkEventListener;
1177d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass WebDataService;
1187d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass WebKitContext;
1197d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass WebResourceService;
1207d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass CloudPrintProxyService;
1217d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
1227d214dfa174224b459660971e5b5cce2e06be02aBen Murdochtypedef intptr_t ProfileId;
1237d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
1247d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch// The android profile implementation.
1257d214dfa174224b459660971e5b5cce2e06be02aBen Murdochclass ProfileImplAndroid : public Profile {
1267d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch public:
1277d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual ~ProfileImplAndroid();
1287d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
129cfb4826edae011aed657a813297687800ed85e17Kristian Monsen  void SetRequestContext(net::URLRequestContextGetter* context) { url_request_context_getter_ = context; }
13040eae52c5e5dbf475a0cf368c9ccbb7f8a0653f4Ben Murdoch
1317d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  // Profile implementation.
1327d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual Profile* GetOriginalProfile();
1337d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual PersonalDataManager* GetPersonalDataManager();
1347d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual PrefService* GetPrefs();
1357d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual FilePath GetPath() { return path_; }
136cfb4826edae011aed657a813297687800ed85e17Kristian Monsen  virtual net::URLRequestContextGetter* GetRequestContext();
1377d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
1387d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  // Functions from Profile that we don't need on Android for AutoFill.
1397d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual ProfileId GetRuntimeId() { NOTREACHED(); return 0; }
1407d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual bool IsOffTheRecord() { NOTREACHED(); return false; }
1417d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual Profile* GetOffTheRecordProfile() { NOTREACHED(); return NULL; }
1427d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void DestroyOffTheRecordProfile() { NOTREACHED(); }
1437d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual bool HasOffTheRecordProfile() { NOTREACHED(); return false; }
144dbeb7bfd58939b6a020a91552afd12c32108a7c7Iain Merrick  virtual ChromeAppCacheService* GetAppCacheService() { NOTREACHED(); return NULL; }
1457d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual webkit_database::DatabaseTracker* GetDatabaseTracker() { NOTREACHED(); return NULL; }
1467d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual history::TopSites* GetTopSites() { NOTREACHED(); return NULL; }
1477d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual VisitedLinkMaster* GetVisitedLinkMaster() { NOTREACHED(); return NULL; }
1487d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual UserScriptMaster* GetUserScriptMaster() { NOTREACHED(); return NULL; }
1497d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual SSLHostState* GetSSLHostState() { NOTREACHED(); return NULL; }
1507d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual net::TransportSecurityState* GetTransportSecurityState() { NOTREACHED(); return NULL; }
1517d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual ExtensionsService* GetExtensionsService() { NOTREACHED(); return NULL; }
1527d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual ExtensionDevToolsManager* GetExtensionDevToolsManager() { NOTREACHED(); return NULL; }
1537d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual ExtensionProcessManager* GetExtensionProcessManager() { NOTREACHED(); return NULL; }
1547d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual ExtensionMessageService* GetExtensionMessageService() { NOTREACHED(); return NULL; }
155c9e6b390683f93c99d2f4cc1bd1a344ba2b1b339Iain Merrick  virtual ExtensionEventRouter* GetExtensionEventRouter() { NOTREACHED(); return NULL; }
1563f388049fd942346ffbeed1dd8f4214d36f8f856Kristian Monsen  virtual ExtensionIOEventRouter* GetExtensionIOEventRouter() { NOTREACHED(); return NULL; };
1577f5be1d04007766d15c1ca8bcbfbadd43f605aa0Kristian Monsen  virtual ExtensionService* GetExtensionService() { NOTREACHED(); return NULL; }
158307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsen  virtual ExtensionSpecialStoragePolicy* GetExtensionSpecialStoragePolicy() { NOTREACHED(); return NULL; }
1597d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual FaviconService* GetFaviconService(ServiceAccessType sat) { NOTREACHED(); return NULL; }
1607d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual HistoryService* GetHistoryService(ServiceAccessType sat) { NOTREACHED(); return NULL; }
1617d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual HistoryService* GetHistoryServiceWithoutCreating() { NOTREACHED(); return NULL; }
1627d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual AutocompleteClassifier* GetAutocompleteClassifier() { NOTREACHED(); return NULL; }
1637d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual WebDataService* GetWebDataService(ServiceAccessType sat) { NOTREACHED(); return NULL; }
1647d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual WebDataService* GetWebDataServiceWithoutCreating() { NOTREACHED(); return NULL; }
1657d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual PasswordStore* GetPasswordStore(ServiceAccessType sat) { NOTREACHED(); return NULL; }
166307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsen  virtual ProtocolHandlerRegistry* GetProtocolHandlerRegistry() { NOTREACHED(); return NULL; }
1673f388049fd942346ffbeed1dd8f4214d36f8f856Kristian Monsen  virtual PrefService* GetOffTheRecordPrefs() { NOTREACHED(); return NULL; }
168307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsen  virtual policy::ProfilePolicyConnector* GetPolicyConnector() { NOTREACHED(); return NULL; }
1697d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual TemplateURLModel* GetTemplateURLModel() { NOTREACHED(); return NULL; }
1707d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual TemplateURLFetcher* GetTemplateURLFetcher() { NOTREACHED(); return NULL; }
1717d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual DownloadManager* GetDownloadManager() { NOTREACHED(); return NULL; }
1723f388049fd942346ffbeed1dd8f4214d36f8f856Kristian Monsen  virtual fileapi::FileSystemContext* GetFileSystemContext() { NOTREACHED(); return NULL; }
173307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsen  virtual void InitPromoResources() { NOTREACHED(); }
174307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsen  virtual void InitRegisteredProtocolHandlers() { NOTREACHED(); }
1757d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void InitThemes() { NOTREACHED(); }
17681e333ba9bbaf09cb5411cb0966ae032d4539e12Ben Murdoch  virtual void SetTheme(const Extension* extension) { NOTREACHED(); }
1777d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void SetNativeTheme() { NOTREACHED(); }
1787d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void ClearTheme() { NOTREACHED(); }
17981e333ba9bbaf09cb5411cb0966ae032d4539e12Ben Murdoch  virtual const Extension* GetTheme() { NOTREACHED(); return NULL; }
1807d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual BrowserThemeProvider* GetThemeProvider()  { NOTREACHED(); return NULL; }
1817d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual bool HasCreatedDownloadManager() const { NOTREACHED(); return false; }
182cfb4826edae011aed657a813297687800ed85e17Kristian Monsen  virtual net::URLRequestContextGetter* GetRequestContextForMedia()  { NOTREACHED(); return NULL; }
183cfb4826edae011aed657a813297687800ed85e17Kristian Monsen  virtual net::URLRequestContextGetter* GetRequestContextForExtensions()  { NOTREACHED(); return NULL; }
18481e333ba9bbaf09cb5411cb0966ae032d4539e12Ben Murdoch  virtual void RegisterExtensionWithRequestContexts(const Extension* extension) { NOTREACHED(); }
18581e333ba9bbaf09cb5411cb0966ae032d4539e12Ben Murdoch  virtual void UnregisterExtensionWithRequestContexts(const Extension* extension) { NOTREACHED(); }
1867d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual net::SSLConfigService* GetSSLConfigService()  { NOTREACHED(); return NULL; }
1877d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual HostContentSettingsMap* GetHostContentSettingsMap()  { NOTREACHED(); return NULL; }
1887d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual HostZoomMap* GetHostZoomMap()  { NOTREACHED(); return NULL; }
1897d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual GeolocationContentSettingsMap* GetGeolocationContentSettingsMap()  { NOTREACHED(); return NULL; }
1907d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual GeolocationPermissionContext* GetGeolocationPermissionContext()  { NOTREACHED(); return NULL; }
1917d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual UserStyleSheetWatcher* GetUserStyleSheetWatcher()  { NOTREACHED(); return NULL; }
1927d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual FindBarState* GetFindBarState()  { NOTREACHED(); return NULL; }
1937d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual SessionService* GetSessionService()  { NOTREACHED(); return NULL; }
1947d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void ShutdownSessionService() { NOTREACHED(); }
1957d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual bool HasSessionService() const { NOTREACHED(); return false; }
1967d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual bool DidLastSessionExitCleanly() { NOTREACHED(); return true; }
1977d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual BookmarkModel* GetBookmarkModel()  { NOTREACHED(); return NULL; }
1987d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual bool IsSameProfile(Profile* profile) { NOTREACHED(); return false; }
1997d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual base::Time GetStartTime() const  { NOTREACHED(); return base::Time(); }
2007d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual TabRestoreService* GetTabRestoreService()  { NOTREACHED(); return NULL; }
2017d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void ResetTabRestoreService() { NOTREACHED(); }
2027d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual SpellCheckHost* GetSpellCheckHost()  { NOTREACHED(); return NULL; }
2037d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void ReinitializeSpellCheckHost(bool force) { NOTREACHED(); }
2047d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual WebKitContext* GetWebKitContext()  { NOTREACHED(); return NULL; }
2057d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual DesktopNotificationService* GetDesktopNotificationService() { NOTREACHED(); return NULL; }
20696c28f8867c49042c0bfa240ea3babba600e6416Ben Murdoch  virtual BackgroundContentsService* GetBackgroundContentsService() const { NOTREACHED(); return NULL; }
207dbeb7bfd58939b6a020a91552afd12c32108a7c7Iain Merrick  virtual StatusTray* GetStatusTray() { NOTREACHED(); return NULL; }
2087d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void MarkAsCleanShutdown() { NOTREACHED(); }
209cfb4826edae011aed657a813297687800ed85e17Kristian Monsen  virtual void InitExtensions(bool extensions_enabled) { NOTREACHED(); }
2107d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void InitWebResources() { NOTREACHED(); }
2117d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual NTPResourceCache* GetNTPResourceCache()  { NOTREACHED(); return NULL; }
2127d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual FilePath last_selected_directory() { NOTREACHED(); return FilePath(""); }
2137d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual void set_last_selected_directory(const FilePath& path) { NOTREACHED(); }
214dbeb7bfd58939b6a020a91552afd12c32108a7c7Iain Merrick  virtual ChromeBlobStorageContext* GetBlobStorageContext() { NOTREACHED(); return NULL; }
215c9e6b390683f93c99d2f4cc1bd1a344ba2b1b339Iain Merrick  virtual ExtensionInfoMap* GetExtensionInfoMap() { NOTREACHED(); return NULL; }
21696c28f8867c49042c0bfa240ea3babba600e6416Ben Murdoch  virtual PromoCounter* GetInstantPromoCounter() { NOTREACHED(); return NULL; }
2177d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual ProfileSyncService* GetProfileSyncService()  { NOTREACHED();  return NULL; }
218dbeb7bfd58939b6a020a91552afd12c32108a7c7Iain Merrick  virtual ProfileSyncService* GetProfileSyncService(const std::string&) { NOTREACHED(); return NULL; }
2197d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual TokenService* GetTokenService()  { NOTREACHED(); return NULL; }
2207d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  void InitSyncService() { NOTREACHED(); }
2217d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  virtual CloudPrintProxyService* GetCloudPrintProxyService()  { NOTREACHED(); return NULL; }
2227d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  void InitCloudPrintProxyService() { NOTREACHED(); }
2237d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
22481e333ba9bbaf09cb5411cb0966ae032d4539e12Ben Murdoch  virtual history::TopSites* GetTopSitesWithoutCreating() { NOTREACHED(); return NULL; }
22581e333ba9bbaf09cb5411cb0966ae032d4539e12Ben Murdoch  virtual BrowserSignin* GetBrowserSignin() { NOTREACHED(); return NULL; }
22681e333ba9bbaf09cb5411cb0966ae032d4539e12Ben Murdoch  virtual bool HasProfileSyncService() const { NOTREACHED(); return false; }
22781e333ba9bbaf09cb5411cb0966ae032d4539e12Ben Murdoch
2281bbc2eb6ced80e65ee853160820623e295e99d79Ben Murdoch  virtual policy::ProfilePolicyContext* GetPolicyContext() { NOTREACHED(); return NULL; }
2293f388049fd942346ffbeed1dd8f4214d36f8f856Kristian Monsen  virtual ChromeURLDataManager* GetChromeURLDataManager() { NOTREACHED(); return NULL; }
2301bbc2eb6ced80e65ee853160820623e295e99d79Ben Murdoch  virtual PrefProxyConfigTracker* GetProxyConfigTracker() { NOTREACHED(); return NULL; }
231307470abbc6b789f999abb2e48ee43ba6df9e859Kristian Monsen  virtual prerender::PrerenderManager* GetPrerenderManager() { NOTREACHED(); return NULL; }
232cfb4826edae011aed657a813297687800ed85e17Kristian Monsen  virtual net::URLRequestContextGetter* GetRequestContextForPossibleApp(
233cfb4826edae011aed657a813297687800ed85e17Kristian Monsen      const Extension* installed_app) { NOTREACHED(); return NULL; }
234cfb4826edae011aed657a813297687800ed85e17Kristian Monsen  virtual net::URLRequestContextGetter* GetRequestContextForIsolatedApp(
235cfb4826edae011aed657a813297687800ed85e17Kristian Monsen      const std::string& app_id) { NOTREACHED(); return NULL; }
2361bbc2eb6ced80e65ee853160820623e295e99d79Ben Murdoch
2377d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch private:
2387d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  friend class Profile;
2397d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
2407d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  explicit ProfileImplAndroid(const FilePath& path);
2417d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
2427d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  void CreateWebDataService() { NOTREACHED(); }
2437d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  FilePath GetPrefFilePath() { return path_; }
2447d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
2457d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  void CreatePasswordStore() { NOTREACHED(); }
2467d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
2477d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  void StopCreateSessionServiceTimer() { NOTREACHED(); }
2487d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
2497d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  void EnsureRequestContextCreated() {
2507d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch    GetRequestContext();
2517d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  }
2527d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
2537d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  void EnsureSessionServiceCreated() {
2547d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch    GetSessionService();
2557d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  }
2567d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
2577d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  FilePath path_;
2587d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  scoped_ptr<PrefService> preferences_;
2597d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  scoped_refptr<PersonalDataManager> personal_data_;
260cfb4826edae011aed657a813297687800ed85e17Kristian Monsen  scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_;
2617d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
2627d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch  DISALLOW_COPY_AND_ASSIGN(ProfileImplAndroid);
2637d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch};
2647d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch
2657d214dfa174224b459660971e5b5cce2e06be02aBen Murdoch#endif  // CHROME_BROWSER_PROFILE_H_
266