// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_H_ #define CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_H_ #include <memory> #include <optional> #include "base/functional/callback_forward.h" #include "base/time/time.h" #include "build/build_config.h" namespace storage { class SpecialStoragePolicy; } namespace url { class Origin; } namespace content { class BrowsingDataFilterBuilder; class BrowsingDataRemoverDelegate; class StoragePartitionConfig; //////////////////////////////////////////////////////////////////////////////// // BrowsingDataRemover is responsible for removing data related to browsing: // visits in url database, downloads, cookies ... // // USAGE: // // 0. Instantiation. // // content::BrowsingDataRemover* remover = // browser_context->GetBrowsingDataRemover(); // // 1. No observer. // // remover->Remove(base::Time(), base::Time::Max(), REMOVE_COOKIES, ALL); // // 2. Using an observer to report when one's own removal task is finished. // // class CookiesDeleter : public content::BrowsingDataRemover::Observer { // CookiesDeleter() { remover->AddObserver(this); } // ~CookiesDeleter() { remover->RemoveObserver(this); } // // void DeleteCookies() { // remover->RemoveAndReply(base::Time(), base::Time::Max(), // REMOVE_COOKIES, ALL, this); // } // // void OnBrowsingDataRemoverDone() { // LOG(INFO) << "Cookies were deleted."; // } // } // //////////////////////////////////////////////////////////////////////////////// // // TODO(crbug.com/40495069): BrowsingDataRemover does not currently support // plugin data deletion. Use PluginDataRemover instead. class BrowsingDataRemover { … }; } // namespace content #endif // CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_H_