Index: chrome/browser/device_orientation/dispatcher_host.h |
diff --git a/chrome/browser/device_orientation/dispatcher_host.h b/chrome/browser/device_orientation/dispatcher_host.h |
index f43a68bcd5dae84cb996f563b8d0f007bc4cb705..d30e8201aed65ad055fa8d47fb1365a4c2222f8c 100644 |
--- a/chrome/browser/device_orientation/dispatcher_host.h |
+++ b/chrome/browser/device_orientation/dispatcher_host.h |
@@ -5,7 +5,7 @@ |
#ifndef CHROME_BROWSER_DEVICE_ORIENTATION_DISPATCHER_HOST_H_ |
#define CHROME_BROWSER_DEVICE_ORIENTATION_DISPATCHER_HOST_H_ |
-#include <set> |
+#include <map> |
#include "base/ref_counted.h" |
#include "chrome/browser/device_orientation/provider.h" |
@@ -16,24 +16,26 @@ namespace device_orientation { |
class Orientation; |
-class DispatcherHost : public base::RefCountedThreadSafe<DispatcherHost>, |
- public Provider::Observer { |
+class DispatcherHost : public base::RefCounted<DispatcherHost> { |
public: |
explicit DispatcherHost(int process_id); |
bool OnMessageReceived(const IPC::Message& msg, bool* msg_was_ok); |
- // From Provider::Observer. |
- virtual void OnOrientationUpdate(const Orientation& orientation); |
- |
private: |
virtual ~DispatcherHost(); |
- friend class base::RefCountedThreadSafe<DispatcherHost>; |
+ friend class base::RefCounted<DispatcherHost>; |
void OnStartUpdating(int render_view_id); |
void OnStopUpdating(int render_view_id); |
+ // Helper class that observes a Provider and forwards updates to a RenderView. |
+ class ObserverDelegate; |
+ |
int process_id_; |
- std::set<int> render_view_ids_; |
+ |
+ // map from render_view_id to ObserverDelegate. |
+ std::map<int, scoped_refptr<ObserverDelegate> > observers_map_; |
+ |
scoped_refptr<Provider> provider_; |
DISALLOW_COPY_AND_ASSIGN(DispatcherHost); |