Chromium Code Reviews| Index: content/public/browser/browsing_data_remover.h |
| diff --git a/chrome/browser/browsing_data/browsing_data_remover.h b/content/public/browser/browsing_data_remover.h |
| similarity index 82% |
| rename from chrome/browser/browsing_data/browsing_data_remover.h |
| rename to content/public/browser/browsing_data_remover.h |
| index 757d8a8af6ade18ddbea5640c63103905df90a25..6d924527efcf72e934a770ca9599f8c967d97cbb 100644 |
| --- a/chrome/browser/browsing_data/browsing_data_remover.h |
| +++ b/content/public/browser/browsing_data_remover.h |
| @@ -2,20 +2,21 @@ |
| // 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_BROWSING_DATA_REMOVER_H_ |
| -#define CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_H_ |
| +#ifndef CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_H_ |
| +#define CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_H_ |
| #include <memory> |
| + |
| #include "base/callback_forward.h" |
| #include "base/memory/weak_ptr.h" |
| #include "base/time/time.h" |
| #include "build/build_config.h" |
| -#include "chrome/browser/browsing_data/browsing_data_remover_delegate.h" |
| -#include "components/keyed_service/core/keyed_service.h" |
| +#include "content/common/content_export.h" |
| +#include "content/public/browser/browsing_data_remover_delegate.h" |
|
jam
2017/04/20 00:39:48
nit: just forward declare
msramek
2017/04/21 15:22:12
Done. Also added a few more forward declarations t
|
| namespace content { |
| + |
| class BrowsingDataFilterBuilder; |
| -} |
| //////////////////////////////////////////////////////////////////////////////// |
| // BrowsingDataRemover is responsible for removing data related to browsing: |
| @@ -25,8 +26,8 @@ class BrowsingDataFilterBuilder; |
| // |
| // 0. Instantiation. |
| // |
| -// BrowsingDataRemover* remover = |
| -// BrowsingDataRemoverFactory::GetForBrowserContext(browser_context); |
| +// content::BrowsingDataRemover* remover = |
| +// content::BrowserContext::GetBrowsingDataRemover(browser_context); |
| // |
| // 1. No observer. |
| // |
| @@ -34,7 +35,7 @@ class BrowsingDataFilterBuilder; |
| // |
| // 2. Using an observer to report when one's own removal task is finished. |
| // |
| -// class CookiesDeleter : public BrowsingDataRemover::Observer { |
| +// class CookiesDeleter : public content::BrowsingDataRemover::Observer { |
| // CookiesDeleter() { remover->AddObserver(this); } |
| // ~CookiesDeleter() { remover->RemoveObserver(this); } |
| // |
| @@ -52,7 +53,7 @@ class BrowsingDataFilterBuilder; |
| // |
| // TODO(crbug.com/668114): BrowsingDataRemover does not currently support plugin |
| // data deletion. Use PluginDataRemover instead. |
| -class BrowsingDataRemover : public KeyedService { |
| +class CONTENT_EXPORT BrowsingDataRemover { |
|
jam
2017/04/20 00:39:48
nit: not needed on interfaces, so remove along wit
msramek
2017/04/21 15:22:12
Done.
|
| public: |
| // Mask used for Remove. |
| enum DataType { |
| @@ -128,10 +129,25 @@ class BrowsingDataRemover : public KeyedService { |
| virtual ~Observer() {} |
| }; |
| - // Called by the embedder to provide the delegate that will take care of |
| - // deleting embedder-specific data. |
| + // The completion inhibitor can artificially delay completion of the browsing |
| + // data removal process. It is used during testing to simulate scenarios in |
| + // which the deletion stalls or takes a very long time. |
| + class CompletionInhibitor { |
| + public: |
| + // Invoked when a |remover| is just about to complete clearing browser data, |
| + // and will be prevented from completing until after the callback |
| + // |continue_to_completion| is run. |
| + virtual void OnBrowsingDataRemoverWouldComplete( |
| + BrowsingDataRemover* remover, |
| + const base::Closure& continue_to_completion) = 0; |
| + |
| + protected: |
| + virtual ~CompletionInhibitor() {} |
| + }; |
| + |
| + // A delegate that will take care of deleting embedder-specific data. |
| virtual void SetEmbedderDelegate( |
| - std::unique_ptr<BrowsingDataRemoverDelegate> embedder_delegate) = 0; |
| + BrowsingDataRemoverDelegate* embedder_delegate) = 0; |
| virtual BrowsingDataRemoverDelegate* GetEmbedderDelegate() const = 0; |
|
jam
2017/04/20 00:39:48
it's a bit odd that the embedder sets the delegate
msramek
2017/04/21 15:22:12
We don't, and removing it really made the code a b
|
| // Determines whether |origin| matches the |origin_type_mask| according to |
| @@ -164,7 +180,7 @@ class BrowsingDataRemover : public KeyedService { |
| const base::Time& delete_end, |
| int remove_mask, |
| int origin_type_mask, |
| - std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder) = 0; |
| + std::unique_ptr<BrowsingDataFilterBuilder> filter_builder) = 0; |
| // A version of the above that in addition informs the |observer| when the |
| // removal task is finished. |
| @@ -173,7 +189,7 @@ class BrowsingDataRemover : public KeyedService { |
| const base::Time& delete_end, |
| int remove_mask, |
| int origin_type_mask, |
| - std::unique_ptr<content::BrowsingDataFilterBuilder> filter_builder, |
| + std::unique_ptr<BrowsingDataFilterBuilder> filter_builder, |
| Observer* observer) = 0; |
| // Observers. |
| @@ -200,4 +216,6 @@ class BrowsingDataRemover : public KeyedService { |
| virtual int GetLastUsedOriginTypeMask() = 0; |
| }; |
| -#endif // CHROME_BROWSER_BROWSING_DATA_BROWSING_DATA_REMOVER_H_ |
| +} // namespace content |
| + |
| +#endif // CONTENT_PUBLIC_BROWSER_BROWSING_DATA_REMOVER_H_ |