| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This class gathers state related to a single user profile. | 5 // This class gathers state related to a single user profile. |
| 6 | 6 |
| 7 #ifndef CHROME_BROWSER_PROFILES_PROFILE_H_ | 7 #ifndef CHROME_BROWSER_PROFILES_PROFILE_H_ |
| 8 #define CHROME_BROWSER_PROFILES_PROFILE_H_ | 8 #define CHROME_BROWSER_PROFILES_PROFILE_H_ |
| 9 #pragma once | 9 #pragma once |
| 10 | 10 |
| 11 #include <string> | 11 #include <string> |
| 12 | 12 |
| 13 #include "base/basictypes.h" | 13 #include "base/basictypes.h" |
| 14 #include "base/logging.h" | 14 #include "base/logging.h" |
| 15 #include "chrome/browser/net/preconnect.h" // TODO: remove this. |
| 15 #include "chrome/common/extensions/extension.h" | 16 #include "chrome/common/extensions/extension.h" |
| 16 | 17 |
| 17 namespace base { | 18 namespace base { |
| 18 class Time; | 19 class Time; |
| 19 } | 20 } |
| 20 | 21 |
| 22 namespace chrome_browser_net_websocket_experiment { |
| 23 class WebSocketExperimentTask; |
| 24 } |
| 25 |
| 26 namespace chromeos { |
| 27 class LibCrosServiceLibraryImpl; |
| 28 class ResetDefaultProxyConfigServiceTask; |
| 29 } |
| 30 |
| 21 namespace content { | 31 namespace content { |
| 22 class ResourceContext; | 32 class ResourceContext; |
| 23 } | 33 } |
| 24 | 34 |
| 25 namespace fileapi { | 35 namespace fileapi { |
| 26 class FileSystemContext; | 36 class FileSystemContext; |
| 27 class SandboxedFileSystemContext; | 37 class SandboxedFileSystemContext; |
| 28 } | 38 } |
| 29 | 39 |
| 30 namespace history { | 40 namespace history { |
| 31 class TopSites; | 41 class TopSites; |
| 32 } | 42 } |
| 33 | 43 |
| 34 namespace net { | 44 namespace net { |
| 35 class TransportSecurityState; | 45 class TransportSecurityState; |
| 36 class SSLConfigService; | 46 class SSLConfigService; |
| 37 } | 47 } |
| 38 | 48 |
| 39 | 49 |
| 40 namespace prerender { | 50 namespace prerender { |
| 41 class PrerenderManager; | 51 class PrerenderManager; |
| 42 } | 52 } |
| 43 | 53 |
| 44 namespace quota { | 54 namespace quota { |
| 45 class QuotaManager; | 55 class QuotaManager; |
| 46 } | 56 } |
| 47 | 57 |
| 58 namespace speech_input { |
| 59 class SpeechRecognizer; |
| 60 } |
| 61 |
| 48 namespace webkit_database { | 62 namespace webkit_database { |
| 49 class DatabaseTracker; | 63 class DatabaseTracker; |
| 50 } | 64 } |
| 51 | 65 |
| 52 class AutocompleteClassifier; | 66 class AutocompleteClassifier; |
| 53 class BookmarkModel; | 67 class BookmarkModel; |
| 54 class BrowserSignin; | 68 class BrowserSignin; |
| 55 class ChromeAppCacheService; | 69 class ChromeAppCacheService; |
| 56 class ChromeBlobStorageContext; | 70 class ChromeBlobStorageContext; |
| 57 class ChromeURLDataManager; | 71 class ChromeURLDataManager; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 // incognito mode. | 150 // incognito mode. |
| 137 IMPLICIT_ACCESS | 151 IMPLICIT_ACCESS |
| 138 }; | 152 }; |
| 139 | 153 |
| 140 class Delegate { | 154 class Delegate { |
| 141 public: | 155 public: |
| 142 // Called when creation of the profile is finished. | 156 // Called when creation of the profile is finished. |
| 143 virtual void OnProfileCreated(Profile* profile, bool success) = 0; | 157 virtual void OnProfileCreated(Profile* profile, bool success) = 0; |
| 144 }; | 158 }; |
| 145 | 159 |
| 160 // Whitelist access to deprecated API in order to prevent new regressions. |
| 161 class Deprecated { |
| 162 private: |
| 163 friend bool IsGoogleGAIACookieInstalled(); |
| 164 friend void chrome_browser_net::PreconnectOnIOThread( |
| 165 const GURL&, |
| 166 chrome_browser_net::UrlInfo::ResolutionMotivation, |
| 167 int); |
| 168 |
| 169 friend class AutofillDownloadManager; |
| 170 friend class ChromePluginMessageFilter; |
| 171 friend class DefaultGeolocationArbitratorDependencyFactory; |
| 172 friend class DevToolsHttpProtocolHandler; |
| 173 friend class DevToolsUI; |
| 174 friend class LiveSyncTest; |
| 175 friend class MetricsService; |
| 176 friend class ResolveProxyMsgHelper; |
| 177 friend class SafeBrowsingServiceTestHelper; |
| 178 friend class SdchDictionaryFetcher; |
| 179 friend class Toolbar5Importer; |
| 180 friend class TranslateManager; |
| 181 friend class |
| 182 chrome_browser_net_websocket_experiment::WebSocketExperimentTask; |
| 183 friend class chromeos::LibCrosServiceLibraryImpl; |
| 184 friend class chromeos::ResetDefaultProxyConfigServiceTask; |
| 185 friend class speech_input::SpeechRecognizer; |
| 186 |
| 187 static net::URLRequestContextGetter* GetDefaultRequestContext() { |
| 188 return Profile::GetDefaultRequestContext(); |
| 189 } |
| 190 }; |
| 191 |
| 146 // Key used to bind profile to the widget with which it is associated. | 192 // Key used to bind profile to the widget with which it is associated. |
| 147 static const char* kProfileKey; | 193 static const char* const kProfileKey; |
| 148 | 194 |
| 149 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX) | 195 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX) |
| 150 // Value that represents no local profile id. | 196 // Value that represents no local profile id. |
| 151 static const LocalProfileId kInvalidLocalProfileId; | 197 static const LocalProfileId kInvalidLocalProfileId; |
| 152 #endif | 198 #endif |
| 153 | 199 |
| 154 Profile(); | 200 Profile(); |
| 155 virtual ~Profile() {} | 201 virtual ~Profile() {} |
| 156 | 202 |
| 157 // Profile prefs are registered as soon as the prefs are loaded for the first | 203 // Profile prefs are registered as soon as the prefs are loaded for the first |
| 158 // time. | 204 // time. |
| 159 static void RegisterUserPrefs(PrefService* prefs); | 205 static void RegisterUserPrefs(PrefService* prefs); |
| 160 | 206 |
| 161 // Create a new profile given a path. | 207 // Create a new profile given a path. |
| 162 static Profile* CreateProfile(const FilePath& path); | 208 static Profile* CreateProfile(const FilePath& path); |
| 163 | 209 |
| 164 // Same as above, but uses async initialization. | 210 // Same as above, but uses async initialization. |
| 165 static Profile* CreateProfileAsync(const FilePath& path, | 211 static Profile* CreateProfileAsync(const FilePath& path, |
| 166 Delegate* delegate); | 212 Delegate* delegate); |
| 167 | 213 |
| 168 // Returns the request context for the "default" profile. This may be called | |
| 169 // from any thread. This CAN return NULL if a first request context has not | |
| 170 // yet been created. If necessary, listen on the UI thread for | |
| 171 // NOTIFY_DEFAULT_REQUEST_CONTEXT_AVAILABLE. | |
| 172 static net::URLRequestContextGetter* GetDefaultRequestContext(); | |
| 173 | |
| 174 // Returns the name associated with this profile. This name is displayed in | 214 // Returns the name associated with this profile. This name is displayed in |
| 175 // the browser frame. | 215 // the browser frame. |
| 176 virtual std::string GetProfileName() = 0; | 216 virtual std::string GetProfileName() = 0; |
| 177 | 217 |
| 178 // Returns the path of the directory where this profile's data is stored. | 218 // Returns the path of the directory where this profile's data is stored. |
| 179 virtual FilePath GetPath() = 0; | 219 virtual FilePath GetPath() = 0; |
| 180 | 220 |
| 181 // Return whether this profile is incognito. Default is false. | 221 // Return whether this profile is incognito. Default is false. |
| 182 virtual bool IsOffTheRecord() = 0; | 222 virtual bool IsOffTheRecord() = 0; |
| 183 | 223 |
| (...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 | 601 |
| 562 // Creates an OffTheRecordProfile which points to this Profile. | 602 // Creates an OffTheRecordProfile which points to this Profile. |
| 563 Profile* CreateOffTheRecordProfile(); | 603 Profile* CreateOffTheRecordProfile(); |
| 564 | 604 |
| 565 protected: | 605 protected: |
| 566 friend class OffTheRecordProfileImpl; | 606 friend class OffTheRecordProfileImpl; |
| 567 | 607 |
| 568 static net::URLRequestContextGetter* default_request_context_; | 608 static net::URLRequestContextGetter* default_request_context_; |
| 569 | 609 |
| 570 private: | 610 private: |
| 611 // ***DEPRECATED**: You should be passing in the specific profile's |
| 612 // URLRequestContextGetter or using the system URLRequestContextGetter. |
| 613 // |
| 614 // Returns the request context for the "default" profile. This may be called |
| 615 // from any thread. This CAN return NULL if a first request context has not |
| 616 // yet been created. If necessary, listen on the UI thread for |
| 617 // NOTIFY_DEFAULT_REQUEST_CONTEXT_AVAILABLE. |
| 618 static net::URLRequestContextGetter* GetDefaultRequestContext(); |
| 619 |
| 571 bool restored_last_session_; | 620 bool restored_last_session_; |
| 572 | 621 |
| 573 // Accessibility events will only be propagated when the pause | 622 // Accessibility events will only be propagated when the pause |
| 574 // level is zero. PauseAccessibilityEvents and ResumeAccessibilityEvents | 623 // level is zero. PauseAccessibilityEvents and ResumeAccessibilityEvents |
| 575 // increment and decrement the level, respectively, rather than set it to | 624 // increment and decrement the level, respectively, rather than set it to |
| 576 // true or false, so that calls can be nested. | 625 // true or false, so that calls can be nested. |
| 577 int accessibility_pause_level_; | 626 int accessibility_pause_level_; |
| 578 }; | 627 }; |
| 579 | 628 |
| 580 #if defined(COMPILER_GCC) | 629 #if defined(COMPILER_GCC) |
| 581 namespace __gnu_cxx { | 630 namespace __gnu_cxx { |
| 582 | 631 |
| 583 template<> | 632 template<> |
| 584 struct hash<Profile*> { | 633 struct hash<Profile*> { |
| 585 std::size_t operator()(Profile* const& p) const { | 634 std::size_t operator()(Profile* const& p) const { |
| 586 return reinterpret_cast<std::size_t>(p); | 635 return reinterpret_cast<std::size_t>(p); |
| 587 } | 636 } |
| 588 }; | 637 }; |
| 589 | 638 |
| 590 } // namespace __gnu_cxx | 639 } // namespace __gnu_cxx |
| 591 #endif | 640 #endif |
| 592 | 641 |
| 593 #endif // CHROME_BROWSER_PROFILES_PROFILE_H_ | 642 #endif // CHROME_BROWSER_PROFILES_PROFILE_H_ |
| OLD | NEW |