Index: content/browser/plugin_service_impl.cc |
=================================================================== |
--- content/browser/plugin_service_impl.cc (revision 138610) |
+++ content/browser/plugin_service_impl.cc (working copy) |
@@ -242,12 +242,14 @@ |
} |
PpapiPluginProcessHost* PluginServiceImpl::FindPpapiPluginProcess( |
- const FilePath& plugin_path) { |
+ const FilePath& plugin_path, |
+ const FilePath& profile_data_directory_path) { |
for (PpapiPluginProcessHostIterator iter; !iter.Done(); ++iter) { |
- if (iter->plugin_path() == plugin_path) |
+ if (iter->plugin_path() == plugin_path && |
+ iter->profile_data_directory() == profile_data_directory_path) { |
return *iter; |
+ } |
} |
- |
return NULL; |
} |
@@ -285,10 +287,12 @@ |
PpapiPluginProcessHost* PluginServiceImpl::FindOrStartPpapiPluginProcess( |
const FilePath& plugin_path, |
+ const FilePath& data_directory_path, |
PpapiPluginProcessHost::PluginClient* client) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- PpapiPluginProcessHost* plugin_host = FindPpapiPluginProcess(plugin_path); |
+ PpapiPluginProcessHost* plugin_host = |
+ FindPpapiPluginProcess(plugin_path, data_directory_path); |
if (plugin_host) |
return plugin_host; |
@@ -299,7 +303,7 @@ |
// This plugin isn't loaded by any plugin process, so create a new process. |
return PpapiPluginProcessHost::CreatePluginHost( |
- *info, |
+ *info, data_directory_path, |
client->GetResourceContext()->GetHostResolver()); |
} |
@@ -347,10 +351,11 @@ |
} |
void PluginServiceImpl::OpenChannelToPpapiPlugin( |
- const FilePath& path, |
+ const FilePath& plugin_path, |
+ const FilePath& data_directory_path, |
PpapiPluginProcessHost::PluginClient* client) { |
- PpapiPluginProcessHost* plugin_host = FindOrStartPpapiPluginProcess( |
- path, client); |
+ PpapiPluginProcessHost* plugin_host = |
+ FindOrStartPpapiPluginProcess(plugin_path, data_directory_path, client); |
if (plugin_host) { |
plugin_host->OpenChannelToPlugin(client); |
} else { |