Refactor: Simplify WaitableEventWatcher.

This change uses a callback instead of a delegate for specifying what
should be called when a WaitableEvent occurs.

This simplifies the class and gets rid of a workaround internal to the
class to prevent name collision on "Delegate" inner classes.

Tested (linux and windows):
  out/Debug/base_unittests --gtest_filter=*WaitableEventWatcherTest*
  out/Release/ipc_tests with valgrind and leak-check=yes

Previously reverted at:
  https://codereview.chromium.org/12087120/


BUG=


Review URL: https://chromiumcodereview.appspot.com/12094106

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180450 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/content/browser/plugin_service_impl.h b/content/browser/plugin_service_impl.h
index 5ad03edf..8003b65 100644
--- a/content/browser/plugin_service_impl.h
+++ b/content/browser/plugin_service_impl.h
@@ -64,8 +64,7 @@
 };
 
 class CONTENT_EXPORT PluginServiceImpl
-    : NON_EXPORTED_BASE(public PluginService),
-      public base::WaitableEventWatcher::Delegate {
+    : NON_EXPORTED_BASE(public PluginService) {
  public:
   // Returns the PluginServiceImpl singleton.
   static PluginServiceImpl* GetInstance();
@@ -160,9 +159,7 @@
   PluginServiceImpl();
   virtual ~PluginServiceImpl();
 
-  // base::WaitableEventWatcher::Delegate implementation.
-  virtual void OnWaitableEventSignaled(
-      base::WaitableEvent* waitable_event) OVERRIDE;
+  void OnWaitableEventSignaled(base::WaitableEvent* waitable_event);
 
   // Returns the plugin process host corresponding to the plugin process that
   // has been started by this service. Returns NULL if no process has been