summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/modules/device_orientation/device_rotation_rate.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/device_orientation/device_rotation_rate.cc')
-rw-r--r--chromium/third_party/blink/renderer/modules/device_orientation/device_rotation_rate.cc46
1 files changed, 25 insertions, 21 deletions
diff --git a/chromium/third_party/blink/renderer/modules/device_orientation/device_rotation_rate.cc b/chromium/third_party/blink/renderer/modules/device_orientation/device_rotation_rate.cc
index dfe199841c1..4c2d754291d 100644
--- a/chromium/third_party/blink/renderer/modules/device_orientation/device_rotation_rate.cc
+++ b/chromium/third_party/blink/renderer/modules/device_orientation/device_rotation_rate.cc
@@ -24,40 +24,44 @@
*/
#include "third_party/blink/renderer/modules/device_orientation/device_rotation_rate.h"
+#include "third_party/blink/renderer/modules/device_orientation/device_rotation_rate_init.h"
namespace blink {
-DeviceRotationRate::DeviceRotationRate(
- DeviceMotionData::RotationRate* rotation_rate)
- : rotation_rate_(rotation_rate) {}
+DeviceRotationRate* DeviceRotationRate::Create(double alpha,
+ double beta,
+ double gamma) {
+ return MakeGarbageCollected<DeviceRotationRate>(alpha, beta, gamma);
+}
-void DeviceRotationRate::Trace(blink::Visitor* visitor) {
- visitor->Trace(rotation_rate_);
- ScriptWrappable::Trace(visitor);
+DeviceRotationRate* DeviceRotationRate::Create(
+ const DeviceRotationRateInit* init) {
+ double alpha = init->hasAlpha() ? init->alpha() : NAN;
+ double beta = init->hasBeta() ? init->beta() : NAN;
+ double gamma = init->hasGamma() ? init->gamma() : NAN;
+ return DeviceRotationRate::Create(alpha, beta, gamma);
}
-double DeviceRotationRate::alpha(bool& is_null) const {
- if (rotation_rate_->CanProvideAlpha())
- return rotation_rate_->Alpha();
+DeviceRotationRate::DeviceRotationRate(double alpha, double beta, double gamma)
+ : alpha_(alpha), beta_(beta), gamma_(gamma) {}
- is_null = true;
- return 0;
+bool DeviceRotationRate::HasRotationData() const {
+ return !std::isnan(alpha_) || !std::isnan(beta_) || !std::isnan(gamma_);
}
-double DeviceRotationRate::beta(bool& is_null) const {
- if (rotation_rate_->CanProvideBeta())
- return rotation_rate_->Beta();
+double DeviceRotationRate::alpha(bool& is_null) const {
+ is_null = std::isnan(alpha_);
+ return alpha_;
+}
- is_null = true;
- return 0;
+double DeviceRotationRate::beta(bool& is_null) const {
+ is_null = std::isnan(beta_);
+ return beta_;
}
double DeviceRotationRate::gamma(bool& is_null) const {
- if (rotation_rate_->CanProvideGamma())
- return rotation_rate_->Gamma();
-
- is_null = true;
- return 0;
+ is_null = std::isnan(gamma_);
+ return gamma_;
}
} // namespace blink