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

Unified Diff: chrome/browser/browsing_data/browsing_data_remover.h

Issue 2554413002: Extract embedder-specific data types from BrowsingDataRemover (Closed)
Patch Set: Android fix Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/browsing_data/browsing_data_remover.h
diff --git a/chrome/browser/browsing_data/browsing_data_remover.h b/chrome/browser/browsing_data/browsing_data_remover.h
index 07381b0d55ecb9b1bda00535342fd0cb1ad37a22..afc56ed84abe1b8c0dd1b25a60dd5389f5b4e106 100644
--- a/chrome/browser/browsing_data/browsing_data_remover.h
+++ b/chrome/browser/browsing_data/browsing_data_remover.h
@@ -13,44 +13,23 @@
#include "base/callback_forward.h"
#include "base/gtest_prod_util.h"
#include "base/macros.h"
-#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
-#include "base/sequenced_task_runner_helpers.h"
#include "base/synchronization/waitable_event_watcher.h"
-#include "base/task/cancelable_task_tracker.h"
#include "base/time/time.h"
#include "build/build_config.h"
+#include "chrome/browser/browsing_data/browsing_data_remover_delegate.h"
#include "chrome/common/features.h"
#include "components/browsing_data/core/browsing_data_utils.h"
-#include "components/content_settings/core/common/content_settings_pattern.h"
-#include "components/content_settings/core/common/content_settings_types.h"
#include "components/keyed_service/core/keyed_service.h"
-#include "components/offline_pages/core/offline_page_model.h"
-#include "components/prefs/pref_member.h"
-#include "components/search_engines/template_url_service.h"
-#include "media/media_features.h"
#include "ppapi/features/features.h"
#include "storage/common/quota/quota_types.h"
#include "url/gurl.h"
-#if BUILDFLAG(ENABLE_PLUGINS)
-#include "chrome/browser/pepper_flash_settings_manager.h"
-#endif
-
-#if defined(OS_CHROMEOS)
-#include "chromeos/dbus/dbus_method_call_status.h"
-#endif
-
class BrowsingDataFilterBuilder;
class BrowsingDataFlashLSOHelper;
class BrowsingDataRemoverFactory;
class Profile;
-class WebappRegistry;
-
-namespace chrome_browser_net {
-class Predictor;
-}
namespace content {
class BrowserContext;
@@ -90,11 +69,7 @@ class StoragePartition;
//
////////////////////////////////////////////////////////////////////////////////
-class BrowsingDataRemover : public KeyedService
-#if BUILDFLAG(ENABLE_PLUGINS)
- , public PepperFlashSettingsManager::Client
-#endif
-{
+class BrowsingDataRemover : public KeyedService {
public:
// Mask used for Remove.
enum RemoveDataMask {
@@ -239,6 +214,17 @@ class BrowsingDataRemover : public KeyedService
completion_inhibitor_ = inhibitor;
}
+ // Called by the embedder to provide the delegate that will take care of
+ // deleting embedder-specific data.
+ void set_embedder_delegate(
+ std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate) {
+ embedder_delegate_ = std::move(embedder_delegate);
+ }
+
+ BrowsingDataRemoverDelegate* get_embedder_delegate() const {
+ return embedder_delegate_.get();
+ }
+
// Removes browsing data within the given |time_range|, with datatypes being
// specified by |remove_mask| and origin types by |origin_type_mask|.
void Remove(const TimeRange& time_range,
@@ -277,11 +263,6 @@ class BrowsingDataRemover : public KeyedService
void OverrideStoragePartitionForTesting(
content::StoragePartition* storage_partition);
-#if BUILDFLAG(ANDROID_JAVA_UI)
- void OverrideWebappRegistryForTesting(
- std::unique_ptr<WebappRegistry> webapp_registry);
-#endif
-
#if BUILDFLAG(ENABLE_PLUGINS)
void OverrideFlashLSOHelperForTesting(
scoped_refptr<BrowsingDataFlashLSOHelper> flash_lso_helper);
@@ -347,10 +328,6 @@ class BrowsingDataRemover : public KeyedService
// not already removing, and vice-versa.
void SetRemoving(bool is_removing);
- // Callback for when TemplateURLService has finished loading. Clears the data,
- // clears the respective waiting flag, and invokes NotifyIfDone.
- void OnKeywordsLoaded(base::Callback<bool(const GURL&)> url_filter);
-
#if BUILDFLAG(ENABLE_PLUGINS)
// Called when plugin data has been cleared. Invokes NotifyIfDone.
void OnWaitableEventSignaled(base::WaitableEvent* waitable_event);
@@ -362,15 +339,6 @@ class BrowsingDataRemover : public KeyedService
// Indicates that LSO cookies for one website have been deleted.
void OnFlashDataDeleted();
-
- // PepperFlashSettingsManager::Client implementation.
- void OnDeauthorizeFlashContentLicensesCompleted(uint32_t request_id,
- bool success) override;
-#endif
-
-#if defined (OS_CHROMEOS)
- void OnClearPlatformKeys(chromeos::DBusMethodCallStatus call_status,
- bool result);
#endif
// Executes the next removal task. Called after the previous task was finished
@@ -396,49 +364,13 @@ class BrowsingDataRemover : public KeyedService
// Checks if we are all done, and if so, calls Notify().
void NotifyIfDone();
- // Called when history deletion is done.
- void OnHistoryDeletionDone();
-
- // Callback for when the hostname resolution cache has been cleared.
- // Clears the respective waiting flag and invokes NotifyIfDone.
- void OnClearedHostnameResolutionCache();
-
// Callback for when HTTP auth cache has been cleared.
// Clears the respective waiting flag and invokes NotifyIfDone.
void OnClearedHttpAuthCache();
- // Callback for when speculative data in the network Predictor has been
- // cleared. Clears the respective waiting flag and invokes
- // NotifyIfDone.
- void OnClearedNetworkPredictor();
-
- // Callback for when network related data in ProfileIOData has been cleared.
- // Clears the respective waiting flag and invokes NotifyIfDone.
- void OnClearedNetworkingHistory();
-
// Callback for when the cache has been deleted. Invokes
// NotifyIfDone.
void ClearedCache();
-#if !defined(DISABLE_NACL)
- // Callback for when the NaCl cache has been deleted. Invokes
- // NotifyIfDone.
- void ClearedNaClCache();
-
- // Callback for when the PNaCl translation cache has been deleted. Invokes
- // NotifyIfDone.
- void ClearedPnaclCache();
-
-#endif
-
- // Callback for when passwords for the requested time range have been cleared.
- void OnClearedPasswords();
-
- // Callback for when passwords stats for the requested time range have been
- // cleared.
- void OnClearedPasswordsStats();
-
- // Callback for when the autosignin state of passwords has been revoked.
- void OnClearedAutoSignIn();
// Callback for when cookies have been deleted. Invokes NotifyIfDone.
void OnClearedCookies();
@@ -447,31 +379,12 @@ class BrowsingDataRemover : public KeyedService
// NotifyIfDone.
void OnClearedChannelIDs();
- // Callback from the above method.
- void OnClearedFormData();
-
- // Callback for when the Autofill profile and credit card origin URLs have
- // been deleted.
- void OnClearedAutofillOriginURLs();
-
// Callback on UI thread when the storage partition related data are cleared.
void OnClearedStoragePartitionData();
-#if BUILDFLAG(ENABLE_WEBRTC)
- // Callback on UI thread when the WebRTC logs have been deleted.
- void OnClearedWebRtcLogs();
-#endif
-
-#if BUILDFLAG(ANDROID_JAVA_UI)
- // Callback on UI thread when the precache history has been cleared.
- void OnClearedPrecacheHistory();
-
- // Callback on UI thread when the offline page data has been cleared.
- void OnClearedOfflinePageData(
- offline_pages::OfflinePageModel::DeletePageResult result);
-#endif
-
- void OnClearedDomainReliabilityMonitor();
+ // Callback for when all embedder-specific data have been deleted.
+ // Invokes NotifyIfDone.
+ void OnClearedEmbedderData();
// Returns true if we're all done.
bool AllDone();
@@ -479,6 +392,9 @@ class BrowsingDataRemover : public KeyedService
// Profile we're to remove from.
Profile* profile_;
+ // A delegate to delete the embedder-specific data.
+ std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate_;
+
// Start time to delete from.
base::Time delete_begin_;
@@ -509,64 +425,26 @@ class BrowsingDataRemover : public KeyedService
// Used for per-site plugin data deletion.
scoped_refptr<BrowsingDataFlashLSOHelper> flash_lso_helper_;
-
- // Used to deauthorize content licenses for Pepper Flash.
- std::unique_ptr<PepperFlashSettingsManager> pepper_flash_settings_manager_;
#endif
- uint32_t deauthorize_flash_content_licenses_request_id_ = 0;
// True if we're waiting for various data to be deleted.
// These may only be accessed from UI thread in order to avoid races!
bool waiting_for_synchronous_clear_operations_ = false;
- bool waiting_for_clear_autofill_origin_urls_ = false;
+ bool waiting_for_clear_embedder_data_ = false;
bool waiting_for_clear_cache_ = false;
bool waiting_for_clear_channel_ids_ = false;
- bool waiting_for_clear_flash_content_licenses_ = false;
- // Non-zero if waiting for cookies to be cleared.
- int waiting_for_clear_cookies_count_ = 0;
+ bool waiting_for_clear_http_auth_cache_ = false;
+ bool waiting_for_clear_storage_partition_data_ = false;
// Counts the number of plugin data tasks. Should be the number of LSO cookies
// to be deleted, or 1 while we're fetching LSO cookies or deleting in bulk.
int waiting_for_clear_plugin_data_count_ = 0;
- bool waiting_for_clear_domain_reliability_monitor_ = false;
- bool waiting_for_clear_form_ = false;
- bool waiting_for_clear_history_ = false;
- bool waiting_for_clear_hostname_resolution_cache_ = false;
- bool waiting_for_clear_http_auth_cache_ = false;
- bool waiting_for_clear_keyword_data_ = false;
- bool waiting_for_clear_nacl_cache_ = false;
- bool waiting_for_clear_network_predictor_ = false;
- bool waiting_for_clear_networking_history_ = false;
- bool waiting_for_clear_passwords_ = false;
- bool waiting_for_clear_passwords_stats_ = false;
- bool waiting_for_clear_platform_keys_ = false;
- bool waiting_for_clear_pnacl_cache_ = false;
-#if BUILDFLAG(ANDROID_JAVA_UI)
- bool waiting_for_clear_precache_history_ = false;
- bool waiting_for_clear_offline_page_data_ = false;
-#endif
- bool waiting_for_clear_storage_partition_data_ = false;
-#if BUILDFLAG(ENABLE_WEBRTC)
- bool waiting_for_clear_webrtc_logs_ = false;
-#endif
- bool waiting_for_clear_auto_sign_in_ = false;
// Observers of the global state and individual tasks.
base::ObserverList<Observer, true> observer_list_;
- // Used if we need to clear history.
- base::CancelableTaskTracker history_task_tracker_;
-
- std::unique_ptr<TemplateURLService::Subscription> template_url_sub_;
-
// We do not own this.
content::StoragePartition* storage_partition_for_testing_ = nullptr;
-#if BUILDFLAG(ANDROID_JAVA_UI)
- // WebappRegistry makes calls across the JNI. In unit tests, the Java side is
- // not initialised, so the registry must be mocked out.
- std::unique_ptr<WebappRegistry> webapp_registry_;
-#endif
-
base::WeakPtrFactory<BrowsingDataRemover> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(BrowsingDataRemover);

Powered by Google App Engine
This is Rietveld 408576698