Index: content/browser/device_orientation/orientation_message_filter.cc |
diff --git a/content/browser/device_orientation/orientation_message_filter.cc b/content/browser/device_orientation/orientation_message_filter.cc |
index 11b1e06aea610bd7cceac3f21df397d3866beeac..630fa47a14e11d258a7e03c536b5bb817b8a745e 100644 |
--- a/content/browser/device_orientation/orientation_message_filter.cc |
+++ b/content/browser/device_orientation/orientation_message_filter.cc |
@@ -29,10 +29,11 @@ class OrientationMessageFilter::ObserverDelegate |
// Will stop observing provider when destructed. |
ObserverDelegate(Provider* provider, |
int render_view_id, |
- IPC::Sender* sender); |
+ IPC::Sender* sender, |
+ DeviceData::DeviceDataType device_data_type); |
// From Provider::Observer. |
- virtual void OnOrientationUpdate(const Orientation& orientation); |
+ virtual void OnDeviceDataUpdate(const DeviceData* device_data); |
private: |
friend class base::RefCounted<ObserverDelegate>; |
@@ -46,29 +47,36 @@ class OrientationMessageFilter::ObserverDelegate |
}; |
OrientationMessageFilter::ObserverDelegate::ObserverDelegate(Provider* provider, |
- int render_view_id, |
- IPC::Sender* sender) |
- : provider_(provider), |
- render_view_id_(render_view_id), |
- sender_(sender) { |
+ int render_view_id, IPC::Sender* sender, |
+ DeviceData::DeviceDataType device_data_type) |
+ : provider_(provider), |
bulach
2012/07/12 10:43:27
nit: I think the initializer list needs to be inde
aousterh
2012/07/12 17:13:57
Done.
|
+ render_view_id_(render_view_id), |
+ sender_(sender) { |
provider_->AddObserver(this); |
+ device_data_type_ = device_data_type; |
} |
OrientationMessageFilter::ObserverDelegate::~ObserverDelegate() { |
provider_->RemoveObserver(this); |
} |
-void OrientationMessageFilter::ObserverDelegate::OnOrientationUpdate( |
- const Orientation& orientation) { |
+void OrientationMessageFilter::ObserverDelegate::OnDeviceDataUpdate( |
+ const DeviceData* device_data) { |
DeviceOrientationMsg_Updated_Params params; |
- params.can_provide_alpha = orientation.can_provide_alpha(); |
- params.alpha = orientation.alpha(); |
- params.can_provide_beta = orientation.can_provide_beta(); |
- params.beta = orientation.beta(); |
- params.can_provide_gamma = orientation.can_provide_gamma(); |
- params.gamma = orientation.gamma(); |
- params.can_provide_absolute = orientation.can_provide_absolute(); |
- params.absolute = orientation.absolute(); |
+ |
+ const Orientation* orientation = static_cast<const Orientation*>(device_data); |
bulach
2012/07/12 10:43:27
hmm... I'm not a 100% of this suggestion, but here
aousterh
2012/07/12 17:13:57
Done.
|
+ const Orientation empty_orientation; |
+ if (orientation == NULL) |
+ orientation = &empty_orientation; |
+ |
+ params.can_provide_alpha = orientation->can_provide_alpha(); |
+ params.alpha = orientation->alpha(); |
+ params.can_provide_beta = orientation->can_provide_beta(); |
+ params.beta = orientation->beta(); |
+ params.can_provide_gamma = orientation->can_provide_gamma(); |
+ params.gamma = orientation->gamma(); |
+ params.can_provide_absolute = orientation->can_provide_absolute(); |
+ params.absolute = orientation->absolute(); |
sender_->Send(new DeviceOrientationMsg_Updated(render_view_id_, params)); |
} |
@@ -92,8 +100,7 @@ void OrientationMessageFilter::OnStartUpdating(int render_view_id) { |
provider_ = Provider::GetInstance(); |
observers_map_[render_view_id] = new ObserverDelegate(provider_, |
- render_view_id, |
- this); |
+ render_view_id, this, DeviceData::kDeviceOrientationData); |
} |
void OrientationMessageFilter::OnStopUpdating(int render_view_id) { |