| 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);
|
|
|