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 | |
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')
-rw-r--r-- | chrome/browser/plugin_data_remover.cc | 8 | ||||
-rw-r--r-- | chrome/browser/plugin_data_remover.h | 17 |
2 files changed, 15 insertions, 10 deletions
diff --git a/chrome/browser/plugin_data_remover.cc b/chrome/browser/plugin_data_remover.cc index 5b06586..e33a00c 100644 --- a/chrome/browser/plugin_data_remover.cc +++ b/chrome/browser/plugin_data_remover.cc @@ -24,9 +24,9 @@ namespace { -const char* kFlashMimeType = "application/x-shockwave-flash"; +const char kFlashMimeType[] = "application/x-shockwave-flash"; // The minimum Flash Player version that implements NPP_ClearSiteData. -const char* kMinFlashVersion = "10.3"; +const char kMinFlashVersion[] = "10.3"; const int64 kRemovalTimeoutMs = 10000; const uint64 kClearAllData = 0; @@ -97,6 +97,10 @@ void PluginDataRemover::SetPluginInfo( const webkit::WebPluginInfo& info) { } +void PluginDataRemover::OnFoundPluginProcessHost( + PluginProcessHost* host) { +} + void PluginDataRemover::OnChannelOpened(const IPC::ChannelHandle& handle) { ConnectToChannel(handle); // Balancing the AddRef call in StartRemoving. 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>; |