// 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); virtual ~PluginDataRemoverImpl(); // PluginDataRemover implementation: virtual base::WaitableEvent* StartRemoving(base::Time begin_time) OVERRIDE; // The plug-in 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 plug-in (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_