Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_COUNTING_POLICY_H_ | 5 #ifndef CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_COUNTING_POLICY_H_ |
| 6 #define CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_COUNTING_POLICY_H_ | 6 #define CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_COUNTING_POLICY_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 29 <void(scoped_ptr<Action::ActionVector>)>& callback) OVERRIDE; | 29 <void(scoped_ptr<Action::ActionVector>)>& callback) OVERRIDE; |
| 30 | 30 |
| 31 virtual void Close() OVERRIDE; | 31 virtual void Close() OVERRIDE; |
| 32 | 32 |
| 33 // Gets or sets the amount of time that old records are kept in the database. | 33 // Gets or sets the amount of time that old records are kept in the database. |
| 34 const base::TimeDelta& retention_time() const { return retention_time_; } | 34 const base::TimeDelta& retention_time() const { return retention_time_; } |
| 35 void set_retention_time(const base::TimeDelta& delta) { | 35 void set_retention_time(const base::TimeDelta& delta) { |
| 36 retention_time_ = delta; | 36 retention_time_ = delta; |
| 37 } | 37 } |
| 38 | 38 |
| 39 // Clean the URL data stored for this policy. | |
| 40 virtual void RemoveURLs(const std::vector<GURL>&); | |
|
mvrable
2013/08/26 20:38:50
virtual void RemoveURLs(const std::vector<GURL>&)
karenlees
2013/08/26 22:58:36
Done.
| |
| 41 | |
| 39 // The main database table, and the name for a read-only view that | 42 // The main database table, and the name for a read-only view that |
| 40 // decompresses string values for easier parsing. | 43 // decompresses string values for easier parsing. |
| 41 static const char* kTableName; | 44 static const char* kTableName; |
| 42 static const char* kReadViewName; | 45 static const char* kReadViewName; |
| 43 | 46 |
| 44 protected: | 47 protected: |
| 45 // The ActivityDatabase::Delegate interface. These are always called from | 48 // The ActivityDatabase::Delegate interface. These are always called from |
| 46 // the database thread. | 49 // the database thread. |
| 47 virtual bool InitDatabase(sql::Connection* db) OVERRIDE; | 50 virtual bool InitDatabase(sql::Connection* db) OVERRIDE; |
| 48 virtual bool FlushDatabase(sql::Connection* db) OVERRIDE; | 51 virtual bool FlushDatabase(sql::Connection* db) OVERRIDE; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 59 // Adds an Action to those to be written out; this is an internal method used | 62 // Adds an Action to those to be written out; this is an internal method used |
| 60 // by ProcessAction and is called on the database thread. | 63 // by ProcessAction and is called on the database thread. |
| 61 void QueueAction(scoped_refptr<Action> action); | 64 void QueueAction(scoped_refptr<Action> action); |
| 62 | 65 |
| 63 // Internal method to read data from the database; called on the database | 66 // Internal method to read data from the database; called on the database |
| 64 // thread. | 67 // thread. |
| 65 scoped_ptr<Action::ActionVector> DoReadData( | 68 scoped_ptr<Action::ActionVector> DoReadData( |
| 66 const std::string& extension_id, | 69 const std::string& extension_id, |
| 67 const int days_ago); | 70 const int days_ago); |
| 68 | 71 |
| 72 // The implementation of RemoveURLs; this must only run on the database | |
| 73 // thread. | |
| 74 virtual void DoRemoveURLs(const std::vector<GURL>& restrict_urls); | |
|
mvrable
2013/08/26 20:38:50
Doesn't need to be virtual since the method is pri
karenlees
2013/08/26 22:58:36
Done - but should I make it protected instead, inc
mvrable
2013/08/27 17:17:37
Personal opinion: it doesn't need to be as we can
| |
| 75 | |
| 69 // Cleans old records from the activity log database. | 76 // Cleans old records from the activity log database. |
| 70 bool CleanOlderThan(sql::Connection* db, const base::Time& cutoff); | 77 bool CleanOlderThan(sql::Connection* db, const base::Time& cutoff); |
| 71 | 78 |
| 72 // Cleans unused interned strings from the database. This should be run | 79 // Cleans unused interned strings from the database. This should be run |
| 73 // after deleting rows from the main log table to clean out stale values. | 80 // after deleting rows from the main log table to clean out stale values. |
| 74 bool CleanStringTables(sql::Connection* db); | 81 bool CleanStringTables(sql::Connection* db); |
| 75 | 82 |
| 76 // API calls for which complete arguments should be logged. | 83 // API calls for which complete arguments should be logged. |
| 77 std::set<std::string> api_arg_whitelist_; | 84 std::set<std::string> api_arg_whitelist_; |
| 78 | 85 |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 104 base::Time last_database_cleaning_time_; | 111 base::Time last_database_cleaning_time_; |
| 105 | 112 |
| 106 friend class CountingPolicyTest; | 113 friend class CountingPolicyTest; |
| 107 FRIEND_TEST_ALL_PREFIXES(CountingPolicyTest, MergingAndExpiring); | 114 FRIEND_TEST_ALL_PREFIXES(CountingPolicyTest, MergingAndExpiring); |
| 108 FRIEND_TEST_ALL_PREFIXES(CountingPolicyTest, StringTableCleaning); | 115 FRIEND_TEST_ALL_PREFIXES(CountingPolicyTest, StringTableCleaning); |
| 109 }; | 116 }; |
| 110 | 117 |
| 111 } // namespace extensions | 118 } // namespace extensions |
| 112 | 119 |
| 113 #endif // CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_COUNTING_POLICY_H_ | 120 #endif // CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_COUNTING_POLICY_H_ |
| OLD | NEW |