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

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

Issue 2248403002: Implement origin-based deletion of plugin data (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Plugins done. Created 4 years, 4 months 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 5564dcc10be7619ecc07f2f75f736b306a239562..af28639ccac075083fee036411481bf14fd854b3 100644
--- a/chrome/browser/browsing_data/browsing_data_remover.h
+++ b/chrome/browser/browsing_data/browsing_data_remover.h
@@ -32,12 +32,14 @@
#include "storage/common/quota/quota_types.h"
#include "url/gurl.h"
+#if defined(OS_CHROMEOS)
+#include "chromeos/dbus/dbus_method_call_status.h"
+#endif
+
#if defined(ENABLE_PLUGINS)
#include "chrome/browser/pepper_flash_settings_manager.h"
-#endif
-#if defined(OS_CHROMEOS)
-#include "chromeos/dbus/dbus_method_call_status.h"
+class BrowsingDataFlashLSOHelper;
Bernhard Bauer 2016/08/18 18:35:59 This looks kinda odd… You could probably forward-d
msramek 2016/08/19 11:16:46 Done. OK, then I'll just forward-declare it withou
#endif
class BrowsingDataRemoverFactory;
@@ -297,6 +299,11 @@ class BrowsingDataRemover : public KeyedService
std::unique_ptr<WebappRegistry> webapp_registry);
#endif
+#if defined(ENABLE_PLUGINS)
+ void OverrideFlashLSOHelperForTesting(
+ scoped_refptr<BrowsingDataFlashLSOHelper> flash_lso_helper);
+#endif
+
// Parameters of the last call are exposed to be used by tests. Removal and
// origin type masks equal to -1 mean that no removal has ever been executed.
// TODO(msramek): If other consumers than tests are interested in this,
@@ -381,6 +388,14 @@ class BrowsingDataRemover : public KeyedService
// Called when plugin data has been cleared. Invokes NotifyIfDone.
void OnWaitableEventSignaled(base::WaitableEvent* waitable_event);
+ // Called when the list of |sites| storing Flash LSO cookies is fetched.
+ void OnSitesWithFlashDataFetched(
+ base::Callback<bool(const std::string&)> plugin_filter,
+ const std::vector<std::string>& sites);
+
+ // Indicates that LSO cookies for one website have been deleted.
+ void OnFlashDataDeleted();
+
// PepperFlashSettingsManager::Client implementation.
void OnDeauthorizeFlashContentLicensesCompleted(uint32_t request_id,
bool success) override;
@@ -505,6 +520,12 @@ class BrowsingDataRemover : public KeyedService
// End time to delete to.
base::Time delete_end_;
+ // The removal mask for the current removal operation.
+ int remove_mask_ = 0;
+
+ // From which types of origins should we remove data?
+ int origin_type_mask_ = 0;
+
// True if Remove has been invoked.
bool is_removing_;
@@ -521,6 +542,9 @@ class BrowsingDataRemover : public KeyedService
std::unique_ptr<content::PluginDataRemover> plugin_data_remover_;
base::WaitableEventWatcher watcher_;
+ // 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
@@ -535,6 +559,9 @@ class BrowsingDataRemover : public KeyedService
bool waiting_for_clear_flash_content_licenses_ = false;
// Non-zero if waiting for cookies to be cleared.
int waiting_for_clear_cookies_count_ = 0;
+ // 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;
@@ -546,7 +573,6 @@ class BrowsingDataRemover : public KeyedService
bool waiting_for_clear_passwords_ = false;
bool waiting_for_clear_passwords_stats_ = false;
bool waiting_for_clear_platform_keys_ = false;
- bool waiting_for_clear_plugin_data_ = false;
bool waiting_for_clear_pnacl_cache_ = false;
#if BUILDFLAG(ANDROID_JAVA_UI)
bool waiting_for_clear_precache_history_ = false;
@@ -560,12 +586,6 @@ class BrowsingDataRemover : public KeyedService
#endif
bool waiting_for_clear_auto_sign_in_ = false;
- // The removal mask for the current removal operation.
- int remove_mask_ = 0;
-
- // From which types of origins should we remove data?
- int origin_type_mask_ = 0;
-
// Observers of the global state and individual tasks.
base::ObserverList<Observer, true> observer_list_;

Powered by Google App Engine
This is Rietveld 408576698