Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(985)

Side by Side Diff: chrome/browser/extensions/activity_log/activity_log_policy.h

Issue 18878009: Add functions to clean URLs from the activity log (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added counting policy Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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_ACTIVITY_LOG_POLICY_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_
6 #define CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_ 6 #define CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 20 matching lines...) Expand all
31 31
32 // An abstract class for processing and summarizing activity log data. 32 // An abstract class for processing and summarizing activity log data.
33 // Subclasses will generally store data in an SQLite database (the 33 // Subclasses will generally store data in an SQLite database (the
34 // ActivityLogDatabasePolicy subclass includes some helper methods to assist 34 // ActivityLogDatabasePolicy subclass includes some helper methods to assist
35 // with this case), but this is not absolutely required. 35 // with this case), but this is not absolutely required.
36 // 36 //
37 // Implementations should support: 37 // Implementations should support:
38 // (1) Receiving Actions to process, and summarizing, compression, and storing 38 // (1) Receiving Actions to process, and summarizing, compression, and storing
39 // these as appropriate. 39 // these as appropriate.
40 // (2) Reading Actions back from storage. 40 // (2) Reading Actions back from storage.
41 // (3) Cleaning of URLs
41 // 42 //
42 // Implementations based on a database should likely implement 43 // Implementations based on a database should likely implement
43 // ActivityDatabase::Delegate, which provides hooks on database events and 44 // ActivityDatabase::Delegate, which provides hooks on database events and
44 // allows the database to periodically request that actions (which the policy 45 // allows the database to periodically request that actions (which the policy
45 // is responsible for queueing) be flushed to storage. 46 // is responsible for queueing) be flushed to storage.
46 // 47 //
47 // Since every policy implementation might summarize data differently, the 48 // Since every policy implementation might summarize data differently, the
48 // database implementation is policy-specific and therefore completely 49 // database implementation is policy-specific and therefore completely
49 // encapsulated in the policy class. All the member functions can be called 50 // encapsulated in the policy class. All the member functions can be called
50 // on the UI thread. 51 // on the UI thread.
(...skipping 29 matching lines...) Expand all
80 // TODO(felt,dbabic) This is overly specific to the current implementation of 81 // TODO(felt,dbabic) This is overly specific to the current implementation of
81 // the FullStreamUIPolicy. We should refactor it to use a more generic read 82 // the FullStreamUIPolicy. We should refactor it to use a more generic read
82 // function, for example one that takes a dictionary of query parameters 83 // function, for example one that takes a dictionary of query parameters
83 // (extension_id, time range, etc.). 84 // (extension_id, time range, etc.).
84 virtual void ReadData( 85 virtual void ReadData(
85 const std::string& extension_id, 86 const std::string& extension_id,
86 const int day, 87 const int day,
87 const base::Callback 88 const base::Callback
88 <void(scoped_ptr<Action::ActionVector>)>& callback) = 0; 89 <void(scoped_ptr<Action::ActionVector>)>& callback) = 0;
89 90
91 // Clean the relevant URL data. The cleaning may need to be different for
92 // different policies. If restrict_urls is empty then all URLs are removed.
93 virtual void RemoveURLs(const std::vector<GURL>& restrict_urls) = 0;
94
90 // For unit testing only. 95 // For unit testing only.
91 void SetClockForTesting(scoped_ptr<base::Clock> clock); 96 void SetClockForTesting(scoped_ptr<base::Clock> clock);
92 97
93 // A collection of methods that are useful for implementing policies. These 98 // A collection of methods that are useful for implementing policies. These
94 // are all static methods; the ActivityLogPolicy::Util class cannot be 99 // are all static methods; the ActivityLogPolicy::Util class cannot be
95 // instantiated. This is nested within ActivityLogPolicy to make calling 100 // instantiated. This is nested within ActivityLogPolicy to make calling
96 // these methods more convenient from within a policy, but they are public. 101 // these methods more convenient from within a policy, but they are public.
97 class Util { 102 class Util {
98 public: 103 public:
99 // Serialize a Value as a JSON string. Returns an empty string if value is 104 // Serialize a Value as a JSON string. Returns an empty string if value is
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 209
205 private: 210 private:
206 // See the comments for the ActivityDatabase class for a discussion of how 211 // See the comments for the ActivityDatabase class for a discussion of how
207 // database cleanup runs. 212 // database cleanup runs.
208 ActivityDatabase* db_; 213 ActivityDatabase* db_;
209 }; 214 };
210 215
211 } // namespace extensions 216 } // namespace extensions
212 217
213 #endif // CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_ 218 #endif // CHROME_BROWSER_EXTENSIONS_ACTIVITY_LOG_ACTIVITY_LOG_POLICY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698