OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 | 9 |
10 #include <string> | 10 #include <string> |
11 | 11 |
12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
13 #include "base/hash_tables.h" | 13 #include "base/hash_tables.h" |
14 #include "base/logging.h" | 14 #include "base/logging.h" |
15 #include "chrome/browser/net/pref_proxy_config_tracker.h" | 15 #include "chrome/browser/net/pref_proxy_config_tracker.h" |
16 #include "chrome/browser/ui/webui/chrome_url_data_manager_factory.h" | |
17 #include "content/public/browser/browser_context.h" | 16 #include "content/public/browser/browser_context.h" |
18 | 17 |
19 class ChromeAppCacheService; | 18 class ChromeAppCacheService; |
20 class ChromeURLDataManager; | |
21 class ExtensionService; | 19 class ExtensionService; |
22 class ExtensionSpecialStoragePolicy; | 20 class ExtensionSpecialStoragePolicy; |
23 class FaviconService; | 21 class FaviconService; |
24 class HostContentSettingsMap; | 22 class HostContentSettingsMap; |
25 class PasswordStore; | 23 class PasswordStore; |
26 class PrefServiceSyncable; | 24 class PrefServiceSyncable; |
27 class PromoCounter; | 25 class PromoCounter; |
28 class ProtocolHandlerRegistry; | 26 class ProtocolHandlerRegistry; |
29 class TestingProfile; | 27 class TestingProfile; |
30 class WebDataService; | 28 class WebDataService; |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 // already been sent. It is necessary because most Profiles are destroyed by | 355 // already been sent. It is necessary because most Profiles are destroyed by |
358 // ProfileDestroyer, but in tests, some are not. | 356 // ProfileDestroyer, but in tests, some are not. |
359 void MaybeSendDestroyedNotification(); | 357 void MaybeSendDestroyedNotification(); |
360 | 358 |
361 // Creates an OffTheRecordProfile which points to this Profile. | 359 // Creates an OffTheRecordProfile which points to this Profile. |
362 Profile* CreateOffTheRecordProfile(); | 360 Profile* CreateOffTheRecordProfile(); |
363 | 361 |
364 protected: | 362 protected: |
365 // TODO(erg, willchan): Remove friendship once |ProfileIOData| is made into | 363 // TODO(erg, willchan): Remove friendship once |ProfileIOData| is made into |
366 // a |ProfileKeyedService|. | 364 // a |ProfileKeyedService|. |
367 friend class ChromeURLDataManagerFactory; | |
368 friend class OffTheRecordProfileImpl; | 365 friend class OffTheRecordProfileImpl; |
369 | 366 |
370 // Returns a callback to a method returning a |ChromeURLDataManagerBackend|. | |
371 // Used to create a |ChromeURLDataManager| for this |Profile|. | |
372 // TODO(erg, willchan): Remove this once |ProfileIOData| is made into a | |
373 // |ProfileKeyedService|. | |
374 virtual base::Callback<ChromeURLDataManagerBackend*(void)> | |
375 GetChromeURLDataManagerBackendGetter() const = 0; | |
376 | |
377 private: | 367 private: |
378 bool restored_last_session_; | 368 bool restored_last_session_; |
379 | 369 |
380 // Used to prevent the notification that this Profile is destroyed from | 370 // Used to prevent the notification that this Profile is destroyed from |
381 // being sent twice. | 371 // being sent twice. |
382 bool sent_destroyed_notification_; | 372 bool sent_destroyed_notification_; |
383 | 373 |
384 // Accessibility events will only be propagated when the pause | 374 // Accessibility events will only be propagated when the pause |
385 // level is zero. PauseAccessibilityEvents and ResumeAccessibilityEvents | 375 // level is zero. PauseAccessibilityEvents and ResumeAccessibilityEvents |
386 // increment and decrement the level, respectively, rather than set it to | 376 // increment and decrement the level, respectively, rather than set it to |
387 // true or false, so that calls can be nested. | 377 // true or false, so that calls can be nested. |
388 int accessibility_pause_level_; | 378 int accessibility_pause_level_; |
389 }; | 379 }; |
390 | 380 |
391 #if defined(COMPILER_GCC) | 381 #if defined(COMPILER_GCC) |
392 namespace BASE_HASH_NAMESPACE { | 382 namespace BASE_HASH_NAMESPACE { |
393 | 383 |
394 template<> | 384 template<> |
395 struct hash<Profile*> { | 385 struct hash<Profile*> { |
396 std::size_t operator()(Profile* const& p) const { | 386 std::size_t operator()(Profile* const& p) const { |
397 return reinterpret_cast<std::size_t>(p); | 387 return reinterpret_cast<std::size_t>(p); |
398 } | 388 } |
399 }; | 389 }; |
400 | 390 |
401 } // namespace BASE_HASH_NAMESPACE | 391 } // namespace BASE_HASH_NAMESPACE |
402 #endif | 392 #endif |
403 | 393 |
404 #endif // CHROME_BROWSER_PROFILES_PROFILE_H_ | 394 #endif // CHROME_BROWSER_PROFILES_PROFILE_H_ |
OLD | NEW |