| Index: chrome/browser/plugin_data_remover.h
|
| diff --git a/chrome/browser/plugin_data_remover.h b/chrome/browser/plugin_data_remover.h
|
| index cbc255678aeac711efbf95dc7f7251ec00185cc2..fe31848a2e7206fd98424868e62dbfc58fa03ec6 100644
|
| --- a/chrome/browser/plugin_data_remover.h
|
| +++ b/chrome/browser/plugin_data_remover.h
|
| @@ -7,10 +7,10 @@
|
| #pragma once
|
|
|
| #include "base/ref_counted.h"
|
| +#include "base/scoped_ptr.h"
|
| +#include "base/task.h"
|
| #include "base/time.h"
|
| -#include "chrome/browser/plugin_process_host.h"
|
| -#include "ipc/ipc_channel_proxy.h"
|
| -#include "ipc/ipc_message.h"
|
| +#include "ipc/ipc_channel.h"
|
|
|
| class Task;
|
|
|
| @@ -18,40 +18,52 @@ namespace base {
|
| class MessageLoopProxy;
|
| }
|
|
|
| -class PluginDataRemover : public PluginProcessHost::Client,
|
| - public IPC::Channel::Listener {
|
| +namespace IPC {
|
| +class ChannelHandle;
|
| +}
|
| +
|
| +class PluginDataRemover : IPC::Channel::Listener {
|
| public:
|
| PluginDataRemover();
|
| ~PluginDataRemover();
|
|
|
| - // Starts removing plug-in data stored since |begin_time| and calls
|
| - // |done_task| on the current thread when finished.
|
| + // Starts removing plug-in data stored since |begin_time|. If |done_task| is
|
| + // not NULL, it is run on the current thread when removing has finished.
|
| void StartRemoving(base::Time begin_time, Task* done_task);
|
|
|
| - // PluginProcessHost::Client methods
|
| - virtual int ID();
|
| - virtual bool OffTheRecord();
|
| - virtual void SetPluginInfo(const WebPluginInfo& info);
|
| - virtual void OnChannelOpened(const IPC::ChannelHandle& handle);
|
| - virtual void OnError();
|
| + // Returns whether there is a plug-in installed that supports removing
|
| + // LSO data. Because this method possibly has to load the plug-in list, it
|
| + // should only be called on the FILE thread.
|
| + static bool IsSupported();
|
|
|
| - // IPC::ChannelProxy::MessageFilter methods
|
| - virtual void OnMessageReceived(const IPC::Message& message);
|
| - virtual void OnChannelError();
|
| + bool is_removing() { return is_removing_; }
|
| +
|
| + // Sets the task to run when removing has finished. Takes ownership of
|
| + // the passed task.
|
| + void set_done_task(Task* task) { done_task_.reset(task); }
|
|
|
| private:
|
| - void SignalDone();
|
| - void SignalError();
|
| + class Internal;
|
| +
|
| + void OnChannelOpened(const IPC::ChannelHandle& handle);
|
| void OnClearSiteDataResult(bool success);
|
| - void OnTimeout();
|
| + void SignalDone();
|
| +
|
| + // IPC::ChannelProxy::MessageFilter methods
|
| + virtual void OnMessageReceived(const IPC::Message& message);
|
| + virtual void OnChannelError();
|
|
|
| scoped_refptr<base::MessageLoopProxy> message_loop_;
|
| + bool is_removing_;
|
| scoped_ptr<Task> done_task_;
|
| + // 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_;
|
| + scoped_refptr<Internal> internal_;
|
| // We own the channel, but it's used on the IO thread, so it needs to be
|
| // deleted there as well.
|
| IPC::Channel* channel_;
|
| - ScopedRunnableMethodFactory<PluginDataRemover> method_factory_;
|
| };
|
|
|
| #endif // CHROME_BROWSER_PLUGIN_DATA_REMOVER_H_
|
|
|