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

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

Issue 15724023: Vibration API: use runtime flag, change from client to platform. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Make supplementName() private and delete isActive(). Created 7 years, 6 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/Vibration.cpp
diff --git a/Source/modules/vibration/Vibration.cpp b/Source/modules/vibration/Vibration.cpp
index ca1a6595aa2b6ac3e7d290495ccf2c20306baf29..57ddb0fc69da11448eea347a2608422ef3f5fc1b 100644
--- a/Source/modules/vibration/Vibration.cpp
+++ b/Source/modules/vibration/Vibration.cpp
@@ -20,15 +20,12 @@
#include "config.h"
#include "modules/vibration/Vibration.h"
-#if ENABLE(VIBRATION)
-
-#include "modules/vibration/VibrationClient.h"
+#include "public/platform/Platform.h"
namespace WebCore {
-Vibration::Vibration(VibrationClient* client)
- : m_vibrationClient(client)
- , m_timerStart(this, &Vibration::timerStartFired)
+Vibration::Vibration()
+ : m_timerStart(this, &Vibration::timerStartFired)
, m_timerStop(this, &Vibration::timerStopFired)
, m_isVibrating(false)
{
@@ -36,12 +33,8 @@ Vibration::Vibration(VibrationClient* client)
Vibration::~Vibration()
{
- m_vibrationClient->vibrationDestroyed();
-}
-
-PassOwnPtr<Vibration> Vibration::create(VibrationClient* client)
-{
- return adoptPtr(new Vibration(client));
+ if (m_isVibrating)
+ cancelVibration();
}
void Vibration::vibrate(const unsigned& time)
@@ -78,7 +71,7 @@ void Vibration::cancelVibration()
{
m_pattern.clear();
if (m_isVibrating) {
- m_vibrationClient->cancelVibration();
+ WebKit::Platform::current()->cancelVibration();
m_isVibrating = false;
m_timerStop.stop();
}
@@ -107,7 +100,7 @@ void Vibration::timerStartFired(Timer<Vibration>* timer)
if (m_pattern.size()) {
m_isVibrating = true;
- m_vibrationClient->vibrate(m_pattern[0]);
+ WebKit::Platform::current()->vibrate(m_pattern[0]);
m_timerStop.startOneShot(m_pattern[0] / 1000.0);
m_pattern.remove(0);
}
@@ -131,17 +124,11 @@ const char* Vibration::supplementName()
return "Vibration";
}
-bool Vibration::isActive(Page* page)
+Vibration* Vibration::from(Page* page)
{
- return static_cast<bool>(Vibration::from(page));
-}
-
-void provideVibrationTo(Page* page, VibrationClient* client)
-{
- Vibration::provideTo(page, Vibration::supplementName(), Vibration::create(client));
+ if (!Supplement<Page>::from(page, supplementName()))
+ Supplement<Page>::provideTo(page, supplementName(), adoptPtr(new Vibration()));
+ return static_cast<Vibration*>(Supplement<Page>::from(page, supplementName()));
}
} // namespace WebCore
-
-#endif // ENABLE(VIBRATION)
-

Powered by Google App Engine
This is Rietveld 408576698