| Index: content/browser/plugin_data_remover_impl.h
 | 
| ===================================================================
 | 
| --- content/browser/plugin_data_remover_impl.h	(revision 110950)
 | 
| +++ content/browser/plugin_data_remover_impl.h	(working copy)
 | 
| @@ -9,14 +9,10 @@
 | 
|  #include <string>
 | 
|  
 | 
|  #include "base/compiler_specific.h"
 | 
| -#include "base/memory/weak_ptr.h"
 | 
| -#include "content/browser/plugin_process_host.h"
 | 
| +#include "base/memory/ref_counted.h"
 | 
|  #include "content/public/browser/plugin_data_remover.h"
 | 
|  
 | 
| -class CONTENT_EXPORT PluginDataRemoverImpl
 | 
| -    : public content::PluginDataRemover,
 | 
| -      public NON_EXPORTED_BASE(PluginProcessHost::Client),
 | 
| -      public IPC::Channel::Listener {
 | 
| +class CONTENT_EXPORT PluginDataRemoverImpl : public content::PluginDataRemover {
 | 
|   public:
 | 
|    explicit PluginDataRemoverImpl(
 | 
|        const content::ResourceContext& resource_context);
 | 
| @@ -30,48 +26,16 @@
 | 
|    // different plug-in (for example in tests).
 | 
|    void set_mime_type(const std::string& mime_type) { mime_type_ = mime_type; }
 | 
|  
 | 
| -  // PluginProcessHost::Client methods.
 | 
| -  virtual int ID() OVERRIDE;
 | 
| -  virtual bool OffTheRecord() OVERRIDE;
 | 
| -  virtual const content::ResourceContext& GetResourceContext() OVERRIDE;
 | 
| -  virtual void SetPluginInfo(const webkit::WebPluginInfo& info) OVERRIDE;
 | 
| -  virtual void OnFoundPluginProcessHost(PluginProcessHost* host) OVERRIDE;
 | 
| -  virtual void OnSentPluginChannelRequest() OVERRIDE;
 | 
| -  virtual void OnChannelOpened(const IPC::ChannelHandle& handle) OVERRIDE;
 | 
| -  virtual void OnError() OVERRIDE;
 | 
| -
 | 
| -  // IPC::Channel::Listener methods.
 | 
| -  virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
 | 
| -  virtual void OnChannelError() OVERRIDE;
 | 
| -
 | 
|   private:
 | 
| -  // Signals that we are finished with removing data (successful or not). This
 | 
| -  // method is safe to call multiple times.
 | 
| -  void SignalDone();
 | 
| -  // Connects the client side of a newly opened plug-in channel.
 | 
| -  void ConnectToChannel(const IPC::ChannelHandle& handle);
 | 
| -  // Handles the PluginHostMsg_ClearSiteDataResult message.
 | 
| -  void OnClearSiteDataResult(bool success);
 | 
| -  // Called when a timeout happens in order not to block the client
 | 
| -  // indefinitely.
 | 
| -  void OnTimeout();
 | 
| +  class Context;
 | 
|  
 | 
|    std::string mime_type_;
 | 
| -  bool is_starting_process_;
 | 
| -  bool is_removing_;
 | 
| -  // The point in time when we start removing data.
 | 
| -  base::Time remove_start_time_;
 | 
| -  // The point in time from which on we remove data.
 | 
| -  base::Time begin_time_;
 | 
|    // The resource context for the profile.
 | 
| -  const content::ResourceContext& context_;
 | 
| -  scoped_ptr<base::WaitableEvent> event_;
 | 
| -  // We own the channel, but it's used on the IO thread, so it needs to be
 | 
| -  // deleted there. It's NULL until we have opened a connection to the plug-in
 | 
| -  // process.
 | 
| -  IPC::Channel* channel_;
 | 
| +  const content::ResourceContext& resource_context_;
 | 
|  
 | 
| -  base::WeakPtrFactory<PluginDataRemoverImpl> weak_factory_;
 | 
| +  // 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);
 | 
|  };
 | 
| 
 |