diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-12 19:04:04 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-12 19:04:04 +0000 |
commit | 661f8c4e2a4def96d0c1964a92c9a73e8f4b60bc (patch) | |
tree | b51465ef928b9d0644bcde5eb4cabd40721778ca /chrome/browser/plugin_data_remover.h | |
parent | e3c580aaf78abbf990e49a60389f50477c98348e (diff) | |
download | chromium_src-661f8c4e2a4def96d0c1964a92c9a73e8f4b60bc.zip chromium_src-661f8c4e2a4def96d0c1964a92c9a73e8f4b60bc.tar.gz chromium_src-661f8c4e2a4def96d0c1964a92c9a73e8f4b60bc.tar.bz2 |
Cancel plugin channel requests when the renderer goes away.
Logic:
- Profile shutdown kills all renderer processes
- When the RMF detects the channel closing, it kills off any plugin channel requests from:
* PluginService (which needs to check the PluginServiceFilter on the FILE thread)
* PluginProcessHost (which may need to wait for the channel to get established)
- RMF uses the new OnPluginProcessHostFound() to cancel at the PluginService or PluginProcessHost
BUG=94704
TEST=New PluginService test, no known manual test
Review URL: http://codereview.chromium.org/7867031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100733 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/plugin_data_remover.h')
-rw-r--r-- | chrome/browser/plugin_data_remover.h | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/chrome/browser/plugin_data_remover.h b/chrome/browser/plugin_data_remover.h index 9ff4235..c97a191 100644 --- a/chrome/browser/plugin_data_remover.h +++ b/chrome/browser/plugin_data_remover.h @@ -47,16 +47,17 @@ class PluginDataRemover : public base::RefCountedThreadSafe<PluginDataRemover>, void Wait(); // PluginProcessHost::Client methods. - virtual int ID(); - virtual bool OffTheRecord(); - virtual const content::ResourceContext& GetResourceContext(); - virtual void SetPluginInfo(const webkit::WebPluginInfo& info); - virtual void OnChannelOpened(const IPC::ChannelHandle& handle); - virtual void OnError(); + 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 OnChannelOpened(const IPC::ChannelHandle& handle) OVERRIDE; + virtual void OnError() OVERRIDE; // IPC::Channel::Listener methods. - virtual bool OnMessageReceived(const IPC::Message& message); - virtual void OnChannelError(); + virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; + virtual void OnChannelError() OVERRIDE; private: friend class base::RefCountedThreadSafe<PluginDataRemover>; |