Skip to content
  • kihong.kwon@samsung.com's avatar
    Vibration cannot be canceled during pattern vibration. · 50b329f6
    kihong.kwon@samsung.com authored
    https://bugs.webkit.org/show_bug.cgi?id=117822
    
    Reviewed by Gyuyoung Kim.
    
    Source/WebCore:
    
    Vibration can not cancel during pattern vibration is working. If resting time which are
    even numbers of pattern m_isVibraing will be false and cancel will thus return early.
    In addition, m_timerStart needs to be stopped in the cancelVibration().
    If cancelVibration() is called right after m_timerStart is fired, timerStartFired
    function can be called even if vibration is already canceled because of timing issue of timer.
    
    Test: vibration/cancelVibration-during-pattern-vibrating.html
    
    * Modules/vibration/Vibration.cpp:
    (WebCore::Vibration::vibrate):
    (WebCore::Vibration::cancelVibration):
    (WebCore::Vibration::suspendVibration):
    (WebCore::Vibration::resumeVibration):
    (WebCore::Vibration::stopVibration):
    (WebCore::Vibration::timerStartFired):
    (WebCore::Vibration::timerStopFired):
    * Modules/vibration/Vibration.h:
    
    LayoutTests:
    
    Add a test case for vibration cancelation during pattern vibration.
    In addition, restore visibilityState before executing cancelVibration-after-pagevisibility-changed-to-hidden.html.
    
    * vibration/cancelVibration-after-pagevisibility-changed-to-hidden.html:
    * vibration/cancelVibration-during-pattern-vibrating-expected.txt: Added.
    * vibration/cancelVibration-during-pattern-vibrating.html: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152070 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    50b329f6