OLD | NEW |
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 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h" | 5 #include "chrome/browser/browsing_data/browsing_data_remover_impl.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
(...skipping 12 matching lines...) Expand all Loading... |
23 #include "chrome/common/pref_names.h" | 23 #include "chrome/common/pref_names.h" |
24 #include "components/browsing_data/content/storage_partition_http_cache_data_rem
over.h" | 24 #include "components/browsing_data/content/storage_partition_http_cache_data_rem
over.h" |
25 #include "components/prefs/pref_service.h" | 25 #include "components/prefs/pref_service.h" |
26 #include "components/web_cache/browser/web_cache_manager.h" | 26 #include "components/web_cache/browser/web_cache_manager.h" |
27 #include "content/public/browser/browser_context.h" | 27 #include "content/public/browser/browser_context.h" |
28 #include "content/public/browser/browser_thread.h" | 28 #include "content/public/browser/browser_thread.h" |
29 #include "content/public/browser/content_browser_client.h" | 29 #include "content/public/browser/content_browser_client.h" |
30 #include "content/public/browser/download_manager.h" | 30 #include "content/public/browser/download_manager.h" |
31 #include "content/public/browser/notification_service.h" | 31 #include "content/public/browser/notification_service.h" |
32 #include "content/public/browser/plugin_data_remover.h" | 32 #include "content/public/browser/plugin_data_remover.h" |
33 #include "content/public/browser/ssl_host_state_delegate.h" | |
34 #include "content/public/browser/storage_partition.h" | 33 #include "content/public/browser/storage_partition.h" |
35 #include "content/public/browser/user_metrics.h" | 34 #include "content/public/browser/user_metrics.h" |
36 #include "extensions/features/features.h" | 35 #include "extensions/features/features.h" |
37 #include "media/media_features.h" | 36 #include "media/media_features.h" |
38 #include "net/base/net_errors.h" | 37 #include "net/base/net_errors.h" |
39 #include "net/cookies/cookie_store.h" | 38 #include "net/cookies/cookie_store.h" |
40 #include "net/http/http_network_session.h" | 39 #include "net/http/http_network_session.h" |
41 #include "net/http/http_transaction_factory.h" | 40 #include "net/http/http_transaction_factory.h" |
42 #include "net/http/transport_security_state.h" | 41 #include "net/http/transport_security_state.h" |
43 #include "net/ssl/channel_id_service.h" | 42 #include "net/ssl/channel_id_service.h" |
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 | 369 |
371 // Managed devices and supervised users can have restrictions on history | 370 // Managed devices and supervised users can have restrictions on history |
372 // deletion. | 371 // deletion. |
373 // TODO(crbug.com/668114): This should be provided via ContentBrowserClient | 372 // TODO(crbug.com/668114): This should be provided via ContentBrowserClient |
374 // once BrowsingDataRemoverImpl moves to content. | 373 // once BrowsingDataRemoverImpl moves to content. |
375 PrefService* prefs = | 374 PrefService* prefs = |
376 Profile::FromBrowserContext(browser_context_)->GetPrefs(); | 375 Profile::FromBrowserContext(browser_context_)->GetPrefs(); |
377 bool may_delete_history = | 376 bool may_delete_history = |
378 prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory); | 377 prefs->GetBoolean(prefs::kAllowDeletingBrowserHistory); |
379 | 378 |
380 // All the UI entry points into the BrowsingDataRemoverImpl should be | |
381 // disabled, but this will fire if something was missed or added. | |
382 DCHECK(may_delete_history || (remove_mask & REMOVE_NOCHECKS) || | |
383 (!(remove_mask & REMOVE_HISTORY) && !(remove_mask & REMOVE_DOWNLOADS))); | |
384 | |
385 ////////////////////////////////////////////////////////////////////////////// | 379 ////////////////////////////////////////////////////////////////////////////// |
386 // INITIALIZATION | 380 // INITIALIZATION |
387 base::Callback<bool(const GURL& url)> filter = | 381 base::Callback<bool(const GURL& url)> filter = |
388 filter_builder.BuildGeneralFilter(); | 382 filter_builder.BuildGeneralFilter(); |
389 | 383 |
390 if ((remove_mask & REMOVE_HISTORY) && may_delete_history) { | |
391 // The SSL Host State that tracks SSL interstitial "proceed" decisions may | |
392 // include origins that the user has visited, so it must be cleared. | |
393 // TODO(msramek): We can reuse the plugin filter here, since both plugins | |
394 // and SSL host state are scoped to hosts and represent them as std::string. | |
395 // Rename the method to indicate its more general usage. | |
396 if (browser_context_->GetSSLHostStateDelegate()) { | |
397 browser_context_->GetSSLHostStateDelegate()->Clear( | |
398 filter_builder.IsEmptyBlacklist() | |
399 ? base::Callback<bool(const std::string&)>() | |
400 : filter_builder.BuildPluginFilter()); | |
401 } | |
402 } | |
403 | |
404 ////////////////////////////////////////////////////////////////////////////// | 384 ////////////////////////////////////////////////////////////////////////////// |
405 // REMOVE_DOWNLOADS | 385 // REMOVE_DOWNLOADS |
406 if ((remove_mask & REMOVE_DOWNLOADS) && may_delete_history) { | 386 if ((remove_mask & REMOVE_DOWNLOADS) && may_delete_history) { |
407 content::RecordAction(UserMetricsAction("ClearBrowsingData_Downloads")); | 387 content::RecordAction(UserMetricsAction("ClearBrowsingData_Downloads")); |
408 content::DownloadManager* download_manager = | 388 content::DownloadManager* download_manager = |
409 BrowserContext::GetDownloadManager(browser_context_); | 389 BrowserContext::GetDownloadManager(browser_context_); |
410 download_manager->RemoveDownloadsByURLAndTime(filter, | 390 download_manager->RemoveDownloadsByURLAndTime(filter, |
411 delete_begin_, delete_end_); | 391 delete_begin_, delete_end_); |
412 } | 392 } |
413 | 393 |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 } | 558 } |
579 | 559 |
580 // Tell the shader disk cache to clear. | 560 // Tell the shader disk cache to clear. |
581 content::RecordAction(UserMetricsAction("ClearBrowsingData_ShaderCache")); | 561 content::RecordAction(UserMetricsAction("ClearBrowsingData_ShaderCache")); |
582 storage_partition_remove_mask |= | 562 storage_partition_remove_mask |= |
583 content::StoragePartition::REMOVE_DATA_MASK_SHADER_CACHE; | 563 content::StoragePartition::REMOVE_DATA_MASK_SHADER_CACHE; |
584 } | 564 } |
585 | 565 |
586 ////////////////////////////////////////////////////////////////////////////// | 566 ////////////////////////////////////////////////////////////////////////////// |
587 // Auth cache. | 567 // Auth cache. |
588 if (remove_mask & REMOVE_COOKIES || remove_mask & REMOVE_PASSWORDS) { | 568 if (remove_mask & REMOVE_COOKIES) { |
589 scoped_refptr<net::URLRequestContextGetter> request_context = | 569 scoped_refptr<net::URLRequestContextGetter> request_context = |
590 BrowserContext::GetDefaultStoragePartition(browser_context_) | 570 BrowserContext::GetDefaultStoragePartition(browser_context_) |
591 ->GetURLRequestContext(); | 571 ->GetURLRequestContext(); |
592 clear_http_auth_cache_.Start(); | 572 clear_http_auth_cache_.Start(); |
593 BrowserThread::PostTaskAndReply( | 573 BrowserThread::PostTaskAndReply( |
594 BrowserThread::IO, FROM_HERE, | 574 BrowserThread::IO, FROM_HERE, |
595 base::Bind(&ClearHttpAuthCacheOnIOThread, std::move(request_context), | 575 base::Bind(&ClearHttpAuthCacheOnIOThread, std::move(request_context), |
596 delete_begin_), | 576 delete_begin_), |
597 clear_http_auth_cache_.GetCompletionCallback()); | 577 clear_http_auth_cache_.GetCompletionCallback()); |
598 } | 578 } |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
766 } | 746 } |
767 | 747 |
768 NotifyIfDone(); | 748 NotifyIfDone(); |
769 } | 749 } |
770 | 750 |
771 void BrowsingDataRemoverImpl::OnFlashDataDeleted() { | 751 void BrowsingDataRemoverImpl::OnFlashDataDeleted() { |
772 clear_plugin_data_count_--; | 752 clear_plugin_data_count_--; |
773 NotifyIfDone(); | 753 NotifyIfDone(); |
774 } | 754 } |
775 #endif | 755 #endif |
OLD | NEW |