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

Side by Side Diff: ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.mm

Issue 2270063005: Add support for time based deletion of browsing data on iOS (Closed)
Patch Set: Updated comment in AccountConsistencyService Created 4 years, 3 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #include "ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.h" 5 #include "ios/chrome/browser/browsing_data/ios_chrome_browsing_data_remover.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 IOSChromeBrowsingDataRemover::NotificationDetails::NotificationDetails( 83 IOSChromeBrowsingDataRemover::NotificationDetails::NotificationDetails(
84 base::Time removal_begin, 84 base::Time removal_begin,
85 int removal_mask) 85 int removal_mask)
86 : removal_begin(removal_begin), removal_mask(removal_mask) {} 86 : removal_begin(removal_begin), removal_mask(removal_mask) {}
87 87
88 IOSChromeBrowsingDataRemover::NotificationDetails::~NotificationDetails() {} 88 IOSChromeBrowsingDataRemover::NotificationDetails::~NotificationDetails() {}
89 89
90 // Static. 90 // Static.
91 IOSChromeBrowsingDataRemover* IOSChromeBrowsingDataRemover::CreateForPeriod( 91 IOSChromeBrowsingDataRemover* IOSChromeBrowsingDataRemover::CreateForPeriod(
92 ios::ChromeBrowserState* browser_state, 92 ios::ChromeBrowserState* browser_state,
93 TimePeriod period) { 93 browsing_data::TimePeriod period) {
94 switch (period) { 94 switch (period) {
95 case EVERYTHING: 95 case browsing_data::LAST_HOUR:
96 base::RecordAction(UserMetricsAction("ClearBrowsingData_LastHour"));
97 break;
98 case browsing_data::LAST_DAY:
99 base::RecordAction(UserMetricsAction("ClearBrowsingData_LastDay"));
100 break;
101 case browsing_data::LAST_WEEK:
102 base::RecordAction(UserMetricsAction("ClearBrowsingData_LastWeek"));
103 break;
104 case browsing_data::FOUR_WEEKS:
105 base::RecordAction(UserMetricsAction("ClearBrowsingData_LastMonth"));
106 break;
107 case browsing_data::ALL_TIME:
96 base::RecordAction(UserMetricsAction("ClearBrowsingData_Everything")); 108 base::RecordAction(UserMetricsAction("ClearBrowsingData_Everything"));
97 break; 109 break;
98 } 110 }
99 return new IOSChromeBrowsingDataRemover( 111 return new IOSChromeBrowsingDataRemover(
100 browser_state, 112 browser_state, browsing_data::CalculateBeginDeleteTime(period),
101 IOSChromeBrowsingDataRemover::CalculateBeginDeleteTime(period),
102 base::Time::Max()); 113 base::Time::Max());
103 } 114 }
104 115
105 IOSChromeBrowsingDataRemover::IOSChromeBrowsingDataRemover( 116 IOSChromeBrowsingDataRemover::IOSChromeBrowsingDataRemover(
106 ios::ChromeBrowserState* browser_state, 117 ios::ChromeBrowserState* browser_state,
107 base::Time delete_begin, 118 base::Time delete_begin,
108 base::Time delete_end) 119 base::Time delete_end)
109 : browser_state_(browser_state), 120 : browser_state_(browser_state),
110 delete_begin_(delete_begin), 121 delete_begin_(delete_begin),
111 delete_end_(delete_end), 122 delete_end_(delete_end),
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 browser_state_); 307 browser_state_);
297 if (data_manager) 308 if (data_manager)
298 data_manager->Refresh(); 309 data_manager->Refresh();
299 } 310 }
300 } 311 }
301 312
302 if (remove_mask & REMOVE_CACHE) { 313 if (remove_mask & REMOVE_CACHE) {
303 base::RecordAction(UserMetricsAction("ClearBrowsingData_Cache")); 314 base::RecordAction(UserMetricsAction("ClearBrowsingData_Cache"));
304 315
305 waiting_for_clear_cache_ = true; 316 waiting_for_clear_cache_ = true;
306 DCHECK(delete_begin_.is_null()) << "Partial clearing not supported";
307 ClearHttpCache(browser_state_->GetRequestContext(), 317 ClearHttpCache(browser_state_->GetRequestContext(),
308 WebThread::GetTaskRunnerForThread(WebThread::IO), 318 WebThread::GetTaskRunnerForThread(WebThread::IO),
319 delete_begin_, delete_end_,
309 base::Bind(&IOSChromeBrowsingDataRemover::OnClearedCache, 320 base::Bind(&IOSChromeBrowsingDataRemover::OnClearedCache,
310 base::Unretained(this))); 321 base::Unretained(this)));
311 } 322 }
312 323
313 // Remove omnibox zero-suggest cache results. 324 // Remove omnibox zero-suggest cache results.
314 if ((remove_mask & (REMOVE_CACHE | REMOVE_COOKIES))) { 325 if ((remove_mask & (REMOVE_CACHE | REMOVE_COOKIES))) {
315 browser_state_->GetPrefs()->SetString(omnibox::kZeroSuggestCachedResults, 326 browser_state_->GetPrefs()->SetString(omnibox::kZeroSuggestCachedResults,
316 std::string()); 327 std::string());
317 } 328 }
318 329
(...skipping 24 matching lines...) Expand all
343 354
344 void IOSChromeBrowsingDataRemover::RemoveObserver(Observer* observer) { 355 void IOSChromeBrowsingDataRemover::RemoveObserver(Observer* observer) {
345 observer_list_.RemoveObserver(observer); 356 observer_list_.RemoveObserver(observer);
346 } 357 }
347 358
348 void IOSChromeBrowsingDataRemover::OnHistoryDeletionDone() { 359 void IOSChromeBrowsingDataRemover::OnHistoryDeletionDone() {
349 waiting_for_clear_history_ = false; 360 waiting_for_clear_history_ = false;
350 NotifyAndDeleteIfDone(); 361 NotifyAndDeleteIfDone();
351 } 362 }
352 363
353 base::Time IOSChromeBrowsingDataRemover::CalculateBeginDeleteTime(
354 TimePeriod time_period) {
355 base::TimeDelta diff;
356 base::Time delete_begin_time = base::Time::Now();
357 switch (time_period) {
358 case EVERYTHING:
359 delete_begin_time = base::Time();
360 break;
361 default:
362 NOTREACHED() << L"Missing item";
363 break;
364 }
365 return delete_begin_time - diff;
366 }
367
368 bool IOSChromeBrowsingDataRemover::AllDone() { 364 bool IOSChromeBrowsingDataRemover::AllDone() {
369 return !waiting_for_clear_autofill_origin_urls_ && 365 return !waiting_for_clear_autofill_origin_urls_ &&
370 !waiting_for_clear_cache_ && !waiting_for_clear_channel_ids_ && 366 !waiting_for_clear_cache_ && !waiting_for_clear_channel_ids_ &&
371 !waiting_for_clear_cookies_count_ && !waiting_for_clear_form_ && 367 !waiting_for_clear_cookies_count_ && !waiting_for_clear_form_ &&
372 !waiting_for_clear_history_ && 368 !waiting_for_clear_history_ &&
373 !waiting_for_clear_hostname_resolution_cache_ && 369 !waiting_for_clear_hostname_resolution_cache_ &&
374 !waiting_for_clear_keyword_data_ && 370 !waiting_for_clear_keyword_data_ &&
375 !waiting_for_clear_networking_history_ && 371 !waiting_for_clear_networking_history_ &&
376 !waiting_for_clear_passwords_; 372 !waiting_for_clear_passwords_;
377 } 373 }
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 waiting_for_clear_autofill_origin_urls_ = false; 503 waiting_for_clear_autofill_origin_urls_ = false;
508 NotifyAndDeleteIfDone(); 504 NotifyAndDeleteIfDone();
509 } 505 }
510 506
511 // static 507 // static
512 IOSChromeBrowsingDataRemover::CallbackSubscription 508 IOSChromeBrowsingDataRemover::CallbackSubscription
513 IOSChromeBrowsingDataRemover::RegisterOnBrowsingDataRemovedCallback( 509 IOSChromeBrowsingDataRemover::RegisterOnBrowsingDataRemovedCallback(
514 const IOSChromeBrowsingDataRemover::Callback& callback) { 510 const IOSChromeBrowsingDataRemover::Callback& callback) {
515 return GetOnBrowsingDataRemovedCallbacks()->Add(callback); 511 return GetOnBrowsingDataRemovedCallbacks()->Add(callback);
516 } 512 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698