Index: chrome/browser/device_orientation/message_filter.cc |
=================================================================== |
--- chrome/browser/device_orientation/message_filter.cc (revision 68877) |
+++ chrome/browser/device_orientation/message_filter.cc (working copy) |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/device_orientation/dispatcher_host.h" |
+#include "chrome/browser/device_orientation/message_filter.h" |
#include "base/scoped_ptr.h" |
#include "chrome/browser/browser_thread.h" |
@@ -16,24 +16,21 @@ |
namespace device_orientation { |
-DispatcherHost::DispatcherHost(int process_id) |
- : process_id_(process_id), |
- observers_map_(), |
- provider_(NULL) { |
+MessageFilter::MessageFilter() : provider_(NULL) { |
} |
-DispatcherHost::~DispatcherHost() { |
+MessageFilter::~MessageFilter() { |
} |
-class DispatcherHost::ObserverDelegate |
+class MessageFilter::ObserverDelegate |
: public base::RefCounted<ObserverDelegate>, public Provider::Observer { |
public: |
// Create ObserverDelegate that observes provider and forwards updates to |
// render_view_id in process_id. |
// Will stop observing provider when destructed. |
ObserverDelegate(Provider* provider, |
- int process_id, |
- int render_view_id); |
+ int render_view_id, |
+ IPC::Message::Sender* sender); |
// From Provider::Observer. |
virtual void OnOrientationUpdate(const Orientation& orientation); |
@@ -43,26 +40,26 @@ |
virtual ~ObserverDelegate(); |
scoped_refptr<Provider> provider_; |
- int process_id_; |
int render_view_id_; |
+ IPC::Message::Sender* sender_; // Weak pointer. |
DISALLOW_COPY_AND_ASSIGN(ObserverDelegate); |
}; |
-DispatcherHost::ObserverDelegate::ObserverDelegate(Provider* provider, |
- int process_id, |
- int render_view_id) |
+MessageFilter::ObserverDelegate::ObserverDelegate(Provider* provider, |
+ int render_view_id, |
+ IPC::Message::Sender* sender) |
: provider_(provider), |
- process_id_(process_id), |
- render_view_id_(render_view_id) { |
+ render_view_id_(render_view_id), |
+ sender_(sender) { |
provider_->AddObserver(this); |
} |
-DispatcherHost::ObserverDelegate::~ObserverDelegate() { |
+MessageFilter::ObserverDelegate::~ObserverDelegate() { |
provider_->RemoveObserver(this); |
} |
-void DispatcherHost::ObserverDelegate::OnOrientationUpdate( |
+void MessageFilter::ObserverDelegate::OnOrientationUpdate( |
const Orientation& orientation) { |
ViewMsg_DeviceOrientationUpdated_Params params; |
params.can_provide_alpha = orientation.can_provide_alpha_; |
@@ -72,17 +69,14 @@ |
params.can_provide_gamma = orientation.can_provide_gamma_; |
params.gamma = orientation.gamma_; |
- IPC::Message* message = new ViewMsg_DeviceOrientationUpdated(render_view_id_, |
- params); |
- CallRenderViewHost(process_id_, render_view_id_, &RenderViewHost::Send, |
- message); |
+ sender_->Send(new ViewMsg_DeviceOrientationUpdated(render_view_id_, params)); |
} |
-bool DispatcherHost::OnMessageReceived(const IPC::Message& msg, |
- bool* msg_was_ok) { |
+bool MessageFilter::OnMessageReceived(const IPC::Message& message, |
+ bool* message_was_ok) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
bool handled = true; |
- IPC_BEGIN_MESSAGE_MAP_EX(DispatcherHost, msg, *msg_was_ok) |
+ IPC_BEGIN_MESSAGE_MAP_EX(MessageFilter, message, *message_was_ok) |
IPC_MESSAGE_HANDLER(ViewHostMsg_DeviceOrientation_StartUpdating, |
OnStartUpdating) |
IPC_MESSAGE_HANDLER(ViewHostMsg_DeviceOrientation_StopUpdating, |
@@ -92,18 +86,18 @@ |
return handled; |
} |
-void DispatcherHost::OnStartUpdating(int render_view_id) { |
+void MessageFilter::OnStartUpdating(int render_view_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
if (!provider_) |
provider_ = Provider::GetInstance(); |
observers_map_[render_view_id] = new ObserverDelegate(provider_, |
- process_id_, |
- render_view_id); |
+ render_view_id, |
+ this); |
} |
-void DispatcherHost::OnStopUpdating(int render_view_id) { |
+void MessageFilter::OnStopUpdating(int render_view_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
observers_map_.erase(render_view_id); |