1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_BROWSER_PLUGIN_DATA_REMOVER_IMPL_H_ 6 #define CONTENT_BROWSER_PLUGIN_DATA_REMOVER_IMPL_H_ 7 8 #include <string> 9 10 #include "base/compiler_specific.h" 11 #include "base/memory/ref_counted.h" 12 #include "base/time/time.h" 13 #include "content/public/browser/plugin_data_remover.h" 14 15 namespace content { 16 17 class CONTENT_EXPORT PluginDataRemoverImpl : public PluginDataRemover { 18 public: 19 explicit PluginDataRemoverImpl(BrowserContext* browser_context); 20 virtual ~PluginDataRemoverImpl(); 21 22 // PluginDataRemover implementation: 23 virtual base::WaitableEvent* StartRemoving(base::Time begin_time) OVERRIDE; 24 25 // The plug-in whose data should be removed (usually Flash) is specified via 26 // its MIME type. This method sets a different MIME type in order to call a 27 // different plug-in (for example in tests). 28 void set_mime_type(const std::string& mime_type) { mime_type_ = mime_type; } 29 30 private: 31 class Context; 32 33 std::string mime_type_; 34 35 // The browser context for the profile. 36 BrowserContext* browser_context_; 37 38 // This allows this object to be deleted on the UI thread while it's still 39 // being used on the IO thread. 40 scoped_refptr<Context> context_; 41 42 DISALLOW_COPY_AND_ASSIGN(PluginDataRemoverImpl); 43 }; 44 45 } // namespace content 46 47 #endif // CONTENT_BROWSER_PLUGIN_DATA_REMOVER_IMPL_H_ 48