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

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

Issue 2554413002: Extract embedder-specific data types from BrowsingDataRemover (Closed)
Patch Set: Addressed nit. 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/chrome_browsing_data_remover_delegate.h
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
new file mode 100644
index 0000000000000000000000000000000000000000..523c4fc8b1fa403508fb325f84da60cdf8de5ccd
--- /dev/null
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h
@@ -0,0 +1,149 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_BROWSING_DATA_CHROME_BROWSING_DATA_REMOVER_DELEGATE_H_
+#define CHROME_BROWSER_BROWSING_DATA_CHROME_BROWSING_DATA_REMOVER_DELEGATE_H_
+
+#include "base/memory/ref_counted.h"
+#include "base/memory/weak_ptr.h"
+#include "base/synchronization/waitable_event_watcher.h"
+#include "base/task/cancelable_task_tracker.h"
+#include "chrome/browser/browsing_data/browsing_data_remover.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/offline_pages/core/offline_page_model.h"
+#include "components/search_engines/template_url_service.h"
+#include "media/media_features.h"
+#include "ppapi/features/features.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 WebappRegistry;
+
+// A delegate used by BrowsingDataRemover to delete data specific to Chrome
+// as the embedder.
+class ChromeBrowsingDataRemoverDelegate : public BrowsingDataRemoverDelegate
+#if BUILDFLAG(ENABLE_PLUGINS)
+ , public PepperFlashSettingsManager::Client
+#endif
+{
+ public:
+ ChromeBrowsingDataRemoverDelegate(content::BrowserContext* browser_context);
+ ~ChromeBrowsingDataRemoverDelegate() override;
+
+ // Removes Chrome-specific data.
+ void RemoveEmbedderData(
+ const base::Time& delete_begin,
+ const base::Time& delete_end,
+ int remove_mask,
+ const BrowsingDataFilterBuilder& filter_builder,
+ int origin_type_mask,
+ const base::Closure& callback) override;
+
+#if BUILDFLAG(ANDROID_JAVA_UI)
+ void OverrideWebappRegistryForTesting(
+ std::unique_ptr<WebappRegistry> webapp_registry);
+#endif
+
+ private:
+ // If AllDone(), calls the callback provided in RemoveEmbedderData().
+ void NotifyIfDone();
+
+ // Whether there are no running deletion tasks.
+ bool AllDone();
+
+ // 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 defined (OS_CHROMEOS)
+ void OnClearPlatformKeys(chromeos::DBusMethodCallStatus call_status,
+ bool result);
+#endif
+
+ // Callback for when cookies have been deleted. Invokes NotifyIfDone.
+ void OnClearedCookies();
+
+#if BUILDFLAG(ENABLE_PLUGINS)
+ // PepperFlashSettingsManager::Client implementation.
+ void OnDeauthorizeFlashContentLicensesCompleted(uint32_t request_id,
+ bool success) override;
+#endif
+
+ // The profile for which the data will be deleted.
+ Profile* profile_;
+
+ // Start time to delete from.
+ base::Time delete_begin_;
+
+ // End time to delete to.
+ base::Time delete_end_;
+
+ // Completion callback to call when all data are deleted.
+ base::Closure callback_;
+
+ // A callback to NotifyIfDone() used by SubTasks instances.
+ const base::Closure sub_task_forward_callback_;
+
+ // Keeping track of various subtasks to be completed.
+ // Non-zero if waiting for SafeBrowsing cookies to be cleared.
+ int clear_cookies_count_ = 0;
+ BrowsingDataRemover::SubTask synchronous_clear_operations_;
+ BrowsingDataRemover::SubTask clear_autofill_origin_urls_;
+ BrowsingDataRemover::SubTask clear_flash_content_licenses_;
+ BrowsingDataRemover::SubTask clear_domain_reliability_monitor_;
+ BrowsingDataRemover::SubTask clear_form_;
+ BrowsingDataRemover::SubTask clear_history_;
+ BrowsingDataRemover::SubTask clear_keyword_data_;
+#if !defined(DISABLE_NACL)
+ BrowsingDataRemover::SubTask clear_nacl_cache_;
+ BrowsingDataRemover::SubTask clear_pnacl_cache_;
+#endif
+ BrowsingDataRemover::SubTask clear_hostname_resolution_cache_;
+ BrowsingDataRemover::SubTask clear_network_predictor_;
+ BrowsingDataRemover::SubTask clear_networking_history_;
+ BrowsingDataRemover::SubTask clear_passwords_;
+ BrowsingDataRemover::SubTask clear_passwords_stats_;
+ BrowsingDataRemover::SubTask clear_platform_keys_;
+#if BUILDFLAG(ANDROID_JAVA_UI)
+ BrowsingDataRemover::SubTask clear_precache_history_;
+ BrowsingDataRemover::SubTask clear_offline_page_data_;
+#endif
+
+#if BUILDFLAG(ENABLE_WEBRTC)
+ BrowsingDataRemover::SubTask clear_webrtc_logs_;
+#endif
+ BrowsingDataRemover::SubTask clear_auto_sign_in_;
+
+#if BUILDFLAG(ENABLE_PLUGINS)
+ uint32_t deauthorize_flash_content_licenses_request_id_ = 0;
+
+ // Used to deauthorize content licenses for Pepper Flash.
+ std::unique_ptr<PepperFlashSettingsManager> pepper_flash_settings_manager_;
+#endif
+
+ // Used if we need to clear history.
+ base::CancelableTaskTracker history_task_tracker_;
+
+ std::unique_ptr<TemplateURLService::Subscription> template_url_sub_;
+
+#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<ChromeBrowsingDataRemoverDelegate> weak_ptr_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(ChromeBrowsingDataRemoverDelegate);
+};
+
+#endif // CHROME_BROWSER_BROWSING_DATA_CHROME_BROWSING_DATA_REMOVER_DELEGATE_H_

Powered by Google App Engine
This is Rietveld 408576698