Chromium Code Reviews| 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(); |