Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1634)

Unified Diff: Source/modules/vibration/NavigatorVibration.cpp

Issue 1042513002: Add the vibrate attribute to the Notification object (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
« no previous file with comments | « Source/modules/vibration/NavigatorVibration.h ('k') | public/platform/modules/notifications/WebNotificationData.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698