|  | // Copyright (c) 2012 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 CONTENT_BROWSER_PLUGIN_DATA_REMOVER_IMPL_H_ | 
|  | #define CONTENT_BROWSER_PLUGIN_DATA_REMOVER_IMPL_H_ | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | #include "base/compiler_specific.h" | 
|  | #include "base/memory/ref_counted.h" | 
|  | #include "base/time/time.h" | 
|  | #include "content/public/browser/plugin_data_remover.h" | 
|  |  | 
|  | namespace content { | 
|  |  | 
|  | class CONTENT_EXPORT PluginDataRemoverImpl : public PluginDataRemover { | 
|  | public: | 
|  | explicit PluginDataRemoverImpl(BrowserContext* browser_context); | 
|  | ~PluginDataRemoverImpl() override; | 
|  |  | 
|  | // PluginDataRemover implementation: | 
|  | base::WaitableEvent* StartRemoving(base::Time begin_time) override; | 
|  |  | 
|  | // The plugin whose data should be removed (usually Flash) is specified via | 
|  | // its MIME type. This method sets a different MIME type in order to call a | 
|  | // different plugin (for example in tests). | 
|  | void set_mime_type(const std::string& mime_type) { mime_type_ = mime_type; } | 
|  |  | 
|  | private: | 
|  | class Context; | 
|  |  | 
|  | std::string mime_type_; | 
|  |  | 
|  | // The browser context for the profile. | 
|  | BrowserContext* browser_context_; | 
|  |  | 
|  | // This allows this object to be deleted on the UI thread while it's still | 
|  | // being used on the IO thread. | 
|  | scoped_refptr<Context> context_; | 
|  |  | 
|  | DISALLOW_COPY_AND_ASSIGN(PluginDataRemoverImpl); | 
|  | }; | 
|  |  | 
|  | }  // namespace content | 
|  |  | 
|  | #endif  // CONTENT_BROWSER_PLUGIN_DATA_REMOVER_IMPL_H_ |