| 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 #ifndef COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_ | 5 #ifndef COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_ |
| 6 #define COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_ | 6 #define COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 #include "base/supports_user_data.h" | 25 #include "base/supports_user_data.h" |
| 26 #include "base/task/cancelable_task_tracker.h" | 26 #include "base/task/cancelable_task_tracker.h" |
| 27 #include "build/build_config.h" | 27 #include "build/build_config.h" |
| 28 #include "components/favicon_base/favicon_usage_data.h" | 28 #include "components/favicon_base/favicon_usage_data.h" |
| 29 #include "components/history/core/browser/expire_history_backend.h" | 29 #include "components/history/core/browser/expire_history_backend.h" |
| 30 #include "components/history/core/browser/history_backend_notifier.h" | 30 #include "components/history/core/browser/history_backend_notifier.h" |
| 31 #include "components/history/core/browser/history_types.h" | 31 #include "components/history/core/browser/history_types.h" |
| 32 #include "components/history/core/browser/keyword_id.h" | 32 #include "components/history/core/browser/keyword_id.h" |
| 33 #include "components/history/core/browser/thumbnail_database.h" | 33 #include "components/history/core/browser/thumbnail_database.h" |
| 34 #include "components/history/core/browser/visit_tracker.h" | 34 #include "components/history/core/browser/visit_tracker.h" |
| 35 #include "components/memory_coordinator/common/memory_coordinator_client.h" |
| 35 #include "sql/init_status.h" | 36 #include "sql/init_status.h" |
| 36 | 37 |
| 37 class HistoryURLProvider; | 38 class HistoryURLProvider; |
| 38 struct HistoryURLProviderParams; | 39 struct HistoryURLProviderParams; |
| 39 class SkBitmap; | 40 class SkBitmap; |
| 40 class TestingProfile; | 41 class TestingProfile; |
| 41 struct ThumbnailScore; | 42 struct ThumbnailScore; |
| 42 | 43 |
| 43 namespace base { | 44 namespace base { |
| 44 class MessageLoop; | 45 class MessageLoop; |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 // Internal history implementation which does most of the work of the history | 96 // Internal history implementation which does most of the work of the history |
| 96 // system. This runs on a background thread (to not block the browser when we | 97 // system. This runs on a background thread (to not block the browser when we |
| 97 // do expensive operations) and is NOT threadsafe, so it must only be called | 98 // do expensive operations) and is NOT threadsafe, so it must only be called |
| 98 // from message handlers on the background thread. Invoking on another thread | 99 // from message handlers on the background thread. Invoking on another thread |
| 99 // requires threadsafe refcounting. | 100 // requires threadsafe refcounting. |
| 100 // | 101 // |
| 101 // Most functions here are just the implementations of the corresponding | 102 // Most functions here are just the implementations of the corresponding |
| 102 // functions in the history service. These functions are not documented | 103 // functions in the history service. These functions are not documented |
| 103 // here, see the history service for behavior. | 104 // here, see the history service for behavior. |
| 104 class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, | 105 class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, |
| 105 public HistoryBackendNotifier { | 106 public HistoryBackendNotifier, |
| 107 public memory_coordinator::MemoryCoordinatorClient { |
| 106 public: | 108 public: |
| 107 // Interface implemented by the owner of the HistoryBackend object. Normally, | 109 // Interface implemented by the owner of the HistoryBackend object. Normally, |
| 108 // the history service implements this to send stuff back to the main thread. | 110 // the history service implements this to send stuff back to the main thread. |
| 109 // The unit tests can provide a different implementation if they don't have | 111 // The unit tests can provide a different implementation if they don't have |
| 110 // a history service object. | 112 // a history service object. |
| 111 class Delegate { | 113 class Delegate { |
| 112 public: | 114 public: |
| 113 virtual ~Delegate() {} | 115 virtual ~Delegate() {} |
| 114 | 116 |
| 115 // Called when the database cannot be read correctly for some reason. | 117 // Called when the database cannot be read correctly for some reason. |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 | 473 |
| 472 ExpireHistoryBackend* expire_backend() { return &expirer_; } | 474 ExpireHistoryBackend* expire_backend() { return &expirer_; } |
| 473 #endif | 475 #endif |
| 474 | 476 |
| 475 // Returns true if the passed visit time is already expired (used by the sync | 477 // Returns true if the passed visit time is already expired (used by the sync |
| 476 // code to avoid syncing visits that would immediately be expired). | 478 // code to avoid syncing visits that would immediately be expired). |
| 477 virtual bool IsExpiredVisitTime(const base::Time& time); | 479 virtual bool IsExpiredVisitTime(const base::Time& time); |
| 478 | 480 |
| 479 base::Time GetFirstRecordedTimeForTest() { return first_recorded_time_; } | 481 base::Time GetFirstRecordedTimeForTest() { return first_recorded_time_; } |
| 480 | 482 |
| 483 // memory_coordinator::MemoryCoordinatorClient implementation: |
| 484 void OnMemoryStateChange(memory_coordinator::MemoryState state) override; |
| 485 |
| 481 protected: | 486 protected: |
| 482 ~HistoryBackend() override; | 487 ~HistoryBackend() override; |
| 483 | 488 |
| 484 private: | 489 private: |
| 485 friend class base::RefCountedThreadSafe<HistoryBackend>; | 490 friend class base::RefCountedThreadSafe<HistoryBackend>; |
| 486 friend class CommitLaterTask; // The commit task needs to call Commit(). | 491 friend class CommitLaterTask; // The commit task needs to call Commit(). |
| 487 friend class HistoryBackendTest; | 492 friend class HistoryBackendTest; |
| 488 friend class HistoryBackendDBBaseTest; // So the unit tests can poke our | 493 friend class HistoryBackendDBBaseTest; // So the unit tests can poke our |
| 489 // innards. | 494 // innards. |
| 490 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteAll); | 495 FRIEND_TEST_ALL_PREFIXES(HistoryBackendTest, DeleteAll); |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 572 // Returns the name of the Favicons database. This is the new name | 577 // Returns the name of the Favicons database. This is the new name |
| 573 // of the Thumbnails database. | 578 // of the Thumbnails database. |
| 574 base::FilePath GetFaviconsFileName() const; | 579 base::FilePath GetFaviconsFileName() const; |
| 575 | 580 |
| 576 class URLQuerier; | 581 class URLQuerier; |
| 577 friend class URLQuerier; | 582 friend class URLQuerier; |
| 578 | 583 |
| 579 // Does the work of Init. | 584 // Does the work of Init. |
| 580 void InitImpl(const HistoryDatabaseParams& history_database_params); | 585 void InitImpl(const HistoryDatabaseParams& history_database_params); |
| 581 | 586 |
| 587 // Asks database to trim memory. |
| 588 void TrimMemory(bool trim_aggressively); |
| 589 |
| 582 // Called when the system is under memory pressure. | 590 // Called when the system is under memory pressure. |
| 583 void OnMemoryPressure( | 591 void OnMemoryPressure( |
| 584 base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level); | 592 base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level); |
| 585 | 593 |
| 586 // Closes all databases managed by HistoryBackend. Commits any pending | 594 // Closes all databases managed by HistoryBackend. Commits any pending |
| 587 // transactions. | 595 // transactions. |
| 588 void CloseAllDatabases(); | 596 void CloseAllDatabases(); |
| 589 | 597 |
| 590 // Adds a single visit to the database, updating the URL information such | 598 // Adds a single visit to the database, updating the URL information such |
| 591 // as visit and typed count. The visit ID of the added visit and the URL ID | 599 // as visit and typed count. The visit ID of the added visit and the URL ID |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 892 | 900 |
| 893 // List of observers | 901 // List of observers |
| 894 base::ObserverList<HistoryBackendObserver> observers_; | 902 base::ObserverList<HistoryBackendObserver> observers_; |
| 895 | 903 |
| 896 DISALLOW_COPY_AND_ASSIGN(HistoryBackend); | 904 DISALLOW_COPY_AND_ASSIGN(HistoryBackend); |
| 897 }; | 905 }; |
| 898 | 906 |
| 899 } // namespace history | 907 } // namespace history |
| 900 | 908 |
| 901 #endif // COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_ | 909 #endif // COMPONENTS_HISTORY_CORE_BROWSER_HISTORY_BACKEND_H_ |
| OLD | NEW |