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

Side by Side Diff: chrome/browser/browsing_data/browsing_data_remover_impl.h

Issue 2697123004: Convert RemoveDataMask from enum to pointers and split it between content and embedder (Closed)
Patch Set: Android compilation Created 3 years, 10 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
OLDNEW
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 CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_IMPL_H_ 5 #ifndef CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_IMPL_H_
6 #define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_IMPL_H_ 6 #define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_IMPL_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <queue> 10 #include <queue>
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 completion_inhibitor_ = inhibitor; 90 completion_inhibitor_ = inhibitor;
91 } 91 }
92 92
93 // BrowsingDataRemover implementation: 93 // BrowsingDataRemover implementation:
94 void SetEmbedderDelegate( 94 void SetEmbedderDelegate(
95 std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate) override; 95 std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate) override;
96 BrowsingDataRemoverDelegate* GetEmbedderDelegate() const override; 96 BrowsingDataRemoverDelegate* GetEmbedderDelegate() const override;
97 97
98 void Remove(const base::Time& delete_begin, 98 void Remove(const base::Time& delete_begin,
99 const base::Time& delete_end, 99 const base::Time& delete_end,
100 int remove_mask, 100 const std::set<const content::BrowsingDataType*>& remove_mask,
101 int origin_type_mask) override; 101 int origin_type_mask) override;
102 void RemoveAndReply(const base::Time& delete_begin, 102 void RemoveAndReply(
103 const base::Time& delete_end, 103 const base::Time& delete_begin,
104 int remove_mask, 104 const base::Time& delete_end,
105 int origin_type_mask, 105 const std::set<const content::BrowsingDataType*>& remove_mask,
106 Observer* observer) override; 106 int origin_type_mask,
107 Observer* observer) override;
107 void RemoveWithFilter( 108 void RemoveWithFilter(
108 const base::Time& delete_begin, 109 const base::Time& delete_begin,
109 const base::Time& delete_end, 110 const base::Time& delete_end,
110 int remove_mask, 111 const std::set<const content::BrowsingDataType*>& remove_mask,
111 int origin_type_mask, 112 int origin_type_mask,
112 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder) 113 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder)
113 override; 114 override;
114 void RemoveWithFilterAndReply( 115 void RemoveWithFilterAndReply(
115 const base::Time& delete_begin, 116 const base::Time& delete_begin,
116 const base::Time& delete_end, 117 const base::Time& delete_end,
117 int remove_mask, 118 const std::set<const content::BrowsingDataType*>& remove_mask,
118 int origin_type_mask, 119 int origin_type_mask,
119 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder, 120 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder,
120 Observer* observer) override; 121 Observer* observer) override;
121 122
122 void AddObserver(Observer* observer) override; 123 void AddObserver(Observer* observer) override;
123 void RemoveObserver(Observer* observer) override; 124 void RemoveObserver(Observer* observer) override;
124 125
125 const base::Time& GetLastUsedBeginTime() override; 126 const base::Time& GetLastUsedBeginTime() override;
126 const base::Time& GetLastUsedEndTime() override; 127 const base::Time& GetLastUsedEndTime() override;
127 int GetLastUsedRemovalMask() override; 128 const std::set<const content::BrowsingDataType*>& GetLastUsedRemovalMask()
129 override;
128 int GetLastUsedOriginTypeMask() override; 130 int GetLastUsedOriginTypeMask() override;
129 131
130 // Used for testing. 132 // Used for testing.
131 void OverrideStoragePartitionForTesting( 133 void OverrideStoragePartitionForTesting(
132 content::StoragePartition* storage_partition); 134 content::StoragePartition* storage_partition);
133 135
134 protected: 136 protected:
135 // Use BrowsingDataRemoverFactory::GetForBrowserContext to get an instance of 137 // Use BrowsingDataRemoverFactory::GetForBrowserContext to get an instance of
136 // this class. The constructor is protected so that the class is mockable. 138 // this class. The constructor is protected so that the class is mockable.
137 explicit BrowsingDataRemoverImpl(content::BrowserContext* browser_context); 139 explicit BrowsingDataRemoverImpl(content::BrowserContext* browser_context);
138 ~BrowsingDataRemoverImpl() override; 140 ~BrowsingDataRemoverImpl() override;
139 141
140 // A common reduction of all public Remove[WithFilter][AndReply] methods. 142 // A common reduction of all public Remove[WithFilter][AndReply] methods.
141 virtual void RemoveInternal( 143 virtual void RemoveInternal(
142 const base::Time& delete_begin, 144 const base::Time& delete_begin,
143 const base::Time& delete_end, 145 const base::Time& delete_end,
144 int remove_mask, 146 const std::set<const content::BrowsingDataType*>& remove_mask,
145 int origin_type_mask, 147 int origin_type_mask,
146 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder, 148 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder,
147 Observer* observer); 149 Observer* observer);
148 150
149 private: 151 private:
150 // Testing the private RemovalTask. 152 // Testing the private RemovalTask.
151 FRIEND_TEST_ALL_PREFIXES(BrowsingDataRemoverImplTest, MultipleTasks); 153 FRIEND_TEST_ALL_PREFIXES(BrowsingDataRemoverImplTest, MultipleTasks);
152 154
153 friend class BrowsingDataRemoverFactory; 155 friend class BrowsingDataRemoverFactory;
154 156
155 // Represents a single removal task. Contains all parameters needed to execute 157 // Represents a single removal task. Contains all parameters needed to execute
156 // it and a pointer to the observer that added it. 158 // it and a pointer to the observer that added it.
157 struct RemovalTask { 159 struct RemovalTask {
158 RemovalTask( 160 RemovalTask(
159 const base::Time& delete_begin, 161 const base::Time& delete_begin,
160 const base::Time& delete_end, 162 const base::Time& delete_end,
161 int remove_mask, 163 const std::set<const content::BrowsingDataType*>& remove_mask,
162 int origin_type_mask, 164 int origin_type_mask,
163 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder, 165 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder,
164 Observer* observer); 166 Observer* observer);
165 ~RemovalTask(); 167 ~RemovalTask();
166 168
167 base::Time delete_begin; 169 base::Time delete_begin;
168 base::Time delete_end; 170 base::Time delete_end;
169 int remove_mask; 171 const std::set<const content::BrowsingDataType*> remove_mask;
170 int origin_type_mask; 172 int origin_type_mask;
171 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder; 173 std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder;
172 Observer* observer; 174 Observer* observer;
173 }; 175 };
174 176
175 void Shutdown() override; 177 void Shutdown() override;
176 178
177 // Setter for |is_removing_|; DCHECKs that we can only start removing if we're 179 // Setter for |is_removing_|; DCHECKs that we can only start removing if we're
178 // not already removing, and vice-versa. 180 // not already removing, and vice-versa.
179 void SetRemoving(bool is_removing); 181 void SetRemoving(bool is_removing);
180 182
181 // Executes the next removal task. Called after the previous task was finished 183 // Executes the next removal task. Called after the previous task was finished
182 // or directly from Remove() if the task queue was empty. 184 // or directly from Remove() if the task queue was empty.
183 void RunNextTask(); 185 void RunNextTask();
184 186
185 // Removes the specified items related to browsing for a specific host. If the 187 // Removes the specified items related to browsing for a specific host. If the
186 // provided |remove_url| is empty, data is removed for all origins; otherwise, 188 // provided |remove_url| is empty, data is removed for all origins; otherwise,
187 // it is restricted by the origin filter origin (where implemented yet). The 189 // it is restricted by the origin filter origin (where implemented yet). The
188 // |origin_type_mask| parameter defines the set of origins from which data 190 // |origin_type_mask| parameter defines the set of origins from which data
189 // should be removed (protected, unprotected, or both). 191 // should be removed (protected, unprotected, or both).
190 // TODO(ttr314): Remove "(where implemented yet)" constraint above once 192 // TODO(ttr314): Remove "(where implemented yet)" constraint above once
191 // crbug.com/113621 is done. 193 // crbug.com/113621 is done.
192 // TODO(crbug.com/589586): Support all backends w/ origin filter. 194 // TODO(crbug.com/589586): Support all backends w/ origin filter.
193 void RemoveImpl(const base::Time& delete_begin, 195 void RemoveImpl(const base::Time& delete_begin,
194 const base::Time& delete_end, 196 const base::Time& delete_end,
195 int remove_mask, 197 const std::set<const content::BrowsingDataType*>& remove_mask,
196 const content::BrowsingDataFilterBuilder& filter_builder, 198 const content::BrowsingDataFilterBuilder& filter_builder,
197 int origin_type_mask); 199 int origin_type_mask);
198 200
199 // Notifies observers and transitions to the idle state. 201 // Notifies observers and transitions to the idle state.
200 void Notify(); 202 void Notify();
201 203
202 // Checks if we are all done, and if so, calls Notify(). 204 // Checks if we are all done, and if so, calls Notify().
203 void NotifyIfDone(); 205 void NotifyIfDone();
204 206
205 // Returns true if we're all done. 207 // Returns true if we're all done.
206 bool AllDone(); 208 bool AllDone();
207 209
208 // The browser context we're to remove from. 210 // The browser context we're to remove from.
209 content::BrowserContext* browser_context_; 211 content::BrowserContext* browser_context_;
210 212
211 // A delegate to delete the embedder-specific data. 213 // A delegate to delete the embedder-specific data.
212 std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate_; 214 std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate_;
213 215
214 // Start time to delete from. 216 // Start time to delete from.
215 base::Time delete_begin_; 217 base::Time delete_begin_;
216 218
217 // End time to delete to. 219 // End time to delete to.
218 base::Time delete_end_; 220 base::Time delete_end_;
219 221
220 // The removal mask for the current removal operation. 222 // The removal mask for the current removal operation.
221 int remove_mask_ = 0; 223 std::set<const content::BrowsingDataType*> remove_mask_;
222 224
223 // From which types of origins should we remove data? 225 // From which types of origins should we remove data?
224 int origin_type_mask_ = 0; 226 int origin_type_mask_ = 0;
225 227
226 // True if Remove has been invoked. 228 // True if Remove has been invoked.
227 bool is_removing_; 229 bool is_removing_;
228 230
229 // Removal tasks to be processed. 231 // Removal tasks to be processed.
230 std::queue<RemovalTask> task_queue_; 232 std::queue<RemovalTask> task_queue_;
231 233
(...skipping 19 matching lines...) Expand all
251 253
252 // We do not own this. 254 // We do not own this.
253 content::StoragePartition* storage_partition_for_testing_ = nullptr; 255 content::StoragePartition* storage_partition_for_testing_ = nullptr;
254 256
255 base::WeakPtrFactory<BrowsingDataRemoverImpl> weak_ptr_factory_; 257 base::WeakPtrFactory<BrowsingDataRemoverImpl> weak_ptr_factory_;
256 258
257 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverImpl); 259 DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemoverImpl);
258 }; 260 };
259 261
260 #endif // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_IMPL_H_ 262 #endif // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698