Index: Source/modules/vibration/NavigatorVibration.cpp |
diff --git a/Source/modules/vibration/NavigatorVibration.cpp b/Source/modules/vibration/NavigatorVibration.cpp |
index b8fd026b8522b4fe913424749140cd41d38e458a..b9d7f05c0b716ced46054a9f9ce9419b7eca0627 100644 |
--- a/Source/modules/vibration/NavigatorVibration.cpp |
+++ b/Source/modules/vibration/NavigatorVibration.cpp |
@@ -20,6 +20,7 @@ |
#include "config.h" |
#include "modules/vibration/NavigatorVibration.h" |
+#include "bindings/modules/v8/UnionTypesModules.h" |
#include "core/frame/LocalFrame.h" |
#include "core/frame/Navigator.h" |
#include "core/page/PageVisibilityState.h" |
@@ -31,23 +32,9 @@ namespace blink { |
// Maximum number of entries in a vibration pattern. |
const unsigned kVibrationPatternLengthMax = 99; |
timvolodine
2015/04/16 12:38:01
btw this can probably also go into the anonymous n
Peter Beverloo
2015/04/16 12:46:41
(Constants are file-local by default, no need for
Sanghyun Park
2015/04/16 13:17:30
This constants is used in sanitizedVibrationPatter
|
-NavigatorVibration::NavigatorVibration(Page& page) |
- : PageLifecycleObserver(&page) |
- , m_timerStart(this, &NavigatorVibration::timerStartFired) |
- , m_timerStop(this, &NavigatorVibration::timerStopFired) |
- , m_isVibrating(false) |
+static NavigatorVibration::VibrationPattern sanitizeVibrationPatternInternal(const NavigatorVibration::VibrationPattern& pattern) |
timvolodine
2015/04/16 12:38:01
no need for 'static' here, and why not put this me
Peter Beverloo
2015/04/16 12:46:41
+1, please use an anonymous namespace for the func
Sanghyun Park
2015/04/16 13:17:30
I just want to avoid using same blink namespace in
timvolodine
2015/04/16 13:17:51
yes, and just to clarify: I meant you can drop sta
|
{ |
-} |
- |
-NavigatorVibration::~NavigatorVibration() |
-{ |
- if (m_isVibrating) |
- cancelVibration(); |
-} |
- |
-bool NavigatorVibration::vibrate(const VibrationPattern& pattern) |
-{ |
- VibrationPattern sanitized = pattern; |
+ NavigatorVibration::VibrationPattern sanitized = pattern; |
size_t length = sanitized.size(); |
// If the pattern is too long then truncate it. |
@@ -66,11 +53,42 @@ bool NavigatorVibration::vibrate(const VibrationPattern& pattern) |
if (length && !(length % 2)) |
sanitized.removeLast(); |
+ return sanitized; |
+} |
+ |
+NavigatorVibration::VibrationPattern NavigatorVibration::sanitizeVibrationPattern(const UnsignedLongOrUnsignedLongSequence& pattern) |
+{ |
+ VibrationPattern sanitized; |
+ |
+ if (pattern.isUnsignedLong()) |
+ sanitized.append(pattern.getAsUnsignedLong()); |
+ else if (pattern.isUnsignedLongSequence()) |
+ sanitized = pattern.getAsUnsignedLongSequence(); |
+ |
+ return sanitizeVibrationPatternInternal(sanitized); |
+} |
+ |
+NavigatorVibration::NavigatorVibration(Page& page) |
+ : PageLifecycleObserver(&page) |
+ , m_timerStart(this, &NavigatorVibration::timerStartFired) |
+ , m_timerStop(this, &NavigatorVibration::timerStopFired) |
+ , m_isVibrating(false) |
+{ |
+} |
+ |
+NavigatorVibration::~NavigatorVibration() |
+{ |
+ if (m_isVibrating) |
+ cancelVibration(); |
+} |
+ |
+bool NavigatorVibration::vibrate(const VibrationPattern& pattern) |
+{ |
// Cancelling clears the stored pattern so do it before setting the new one. |
if (m_isVibrating) |
cancelVibration(); |
- m_pattern = sanitized; |
+ m_pattern = sanitizeVibrationPatternInternal(pattern); |
if (m_timerStart.isActive()) |
m_timerStart.stop(); |