OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |