Add PluginDataRemover.

BUG=58235
TEST=none

Review URL: http://codereview.chromium.org/4832002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66615 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/plugin_service.cc b/chrome/browser/plugin_service.cc
index bd37a6f..e3e23fde 100644
--- a/chrome/browser/plugin_service.cc
+++ b/chrome/browser/plugin_service.cc
@@ -199,11 +199,6 @@
     const FilePath& plugin_path) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
 
-  if (plugin_path.value().empty()) {
-    NOTREACHED() << "should only be called if we have a plugin to load";
-    return NULL;
-  }
-
   for (BrowserChildProcessHost::Iterator iter(ChildProcessInfo::PLUGIN_PROCESS);
        !iter.Done(); ++iter) {
     PluginProcessHost* plugin = static_cast<PluginProcessHost*>(*iter);
@@ -218,26 +213,25 @@
     const FilePath& plugin_path) {
   DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
 
-  PluginProcessHost *plugin_host = FindPluginProcess(plugin_path);
+  PluginProcessHost* plugin_host = FindPluginProcess(plugin_path);
   if (plugin_host)
     return plugin_host;
 
   WebPluginInfo info;
   if (!NPAPI::PluginList::Singleton()->GetPluginInfoByPath(
-          plugin_path, &info)) {
-    DCHECK(false);
+      plugin_path, &info)) {
+    NOTREACHED();
     return NULL;
   }
 
   // This plugin isn't loaded by any plugin process, so create a new process.
-  plugin_host = new PluginProcessHost();
-  if (!plugin_host->Init(info, ui_locale_)) {
-    DCHECK(false);  // Init is not expected to fail
-    delete plugin_host;
+  scoped_ptr<PluginProcessHost> new_host(new PluginProcessHost());
+  if (!new_host->Init(info, ui_locale_)) {
+    NOTREACHED();  // Init is not expected to fail
     return NULL;
   }
 
-  return plugin_host;
+  return new_host.release();
 }
 
 void PluginService::OpenChannelToPlugin(