Index: content/browser/device_sensors/sensor_manager_chromeos.cc |
diff --git a/content/browser/device_sensors/sensor_manager_chromeos.cc b/content/browser/device_sensors/sensor_manager_chromeos.cc |
index 36bdadd81fea719fc52bd3b76484a1709ef4ca8a..12878cc561e23b301ab201dd0db355fa4a45476e 100644 |
--- a/content/browser/device_sensors/sensor_manager_chromeos.cc |
+++ b/content/browser/device_sensors/sensor_manager_chromeos.cc |
@@ -140,11 +140,7 @@ void SensorManagerChromeOS::GenerateOrientationEvent(double x, |
return; |
// Create a unit vector for trigonometry |
- // TODO(jonross): Stop reversing signs for vector components once |
- // accelerometer values have been fixed. crbug.com/431391 |
- // Ternaries are to remove -0.0f which gives incorrect trigonometrical |
- // results. |
- gfx::Vector3dF data(x, y ? -y : 0.0f, z ? -z : 0.0f); |
+ gfx::Vector3dF data(x, y, z); |
data.Scale(1.0f / data.Length()); |
// Transform accelerometer to W3C angles, using the Z-X-Y Eulerangles matrix. |
@@ -153,7 +149,7 @@ void SensorManagerChromeOS::GenerateOrientationEvent(double x, |
// z = cos(beta) * cos(gamma) |
// With only accelerometer alpha cannot be provided. |
double beta = kRad2deg * atan2(data.y(), data.z()); |
- double gamma = kRad2deg * asin(data.x()); |
+ double gamma = kRad2deg * asin(-data.x()); |
// Convert beta and gamma to fit the intervals in the specification. Beta is |
// [-180, 180) and gamma is [-90, 90). |