| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  * Copyright (C) 2008 Apple Inc. All Rights Reserved. |   2  * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 
|   3  * |   3  * | 
|   4  * Redistribution and use in source and binary forms, with or without |   4  * Redistribution and use in source and binary forms, with or without | 
|   5  * modification, are permitted provided that the following conditions |   5  * modification, are permitted provided that the following conditions | 
|   6  * are met: |   6  * are met: | 
|   7  * 1. Redistributions of source code must retain the above copyright |   7  * 1. Redistributions of source code must retain the above copyright | 
|   8  *    notice, this list of conditions and the following disclaimer. |   8  *    notice, this list of conditions and the following disclaimer. | 
|   9  * 2. Redistributions in binary form must reproduce the above copyright |   9  * 2. Redistributions in binary form must reproduce the above copyright | 
|  10  *    notice, this list of conditions and the following disclaimer in the |  10  *    notice, this list of conditions and the following disclaimer in the | 
|  11  *    documentation and/or other materials provided with the distribution. |  11  *    documentation and/or other materials provided with the distribution. | 
|  12  * |  12  * | 
|  13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY |  13  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY | 
|  14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |  14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
|  15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |  15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | 
|  16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR |  16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR | 
|  17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |  17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | 
|  18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |  18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 
|  19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |  19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | 
|  20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY |  20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY | 
|  21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |  21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
|  22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |  22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
|  23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |  23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
|  24  * |  24  * | 
|  25  */ |  25  */ | 
|  26  |  26  | 
|  27 #ifndef DOMTimer_h |  27 #ifndef DOMTimer_h | 
|  28 #define DOMTimer_h |  28 #define DOMTimer_h | 
|  29  |  29  | 
|  30 #include "bindings/core/v8/ScheduledAction.h" |  30 #include "bindings/core/v8/ScheduledActionBase.h" | 
|  31 #include "core/frame/SuspendableTimer.h" |  31 #include "core/frame/SuspendableTimer.h" | 
|  32 #include "platform/UserGestureIndicator.h" |  32 #include "platform/UserGestureIndicator.h" | 
|  33 #include "wtf/Compiler.h" |  33 #include "wtf/Compiler.h" | 
|  34 #include "wtf/OwnPtr.h" |  34 #include "wtf/OwnPtr.h" | 
|  35 #include "wtf/PassOwnPtr.h" |  35 #include "wtf/PassOwnPtr.h" | 
|  36  |  36  | 
|  37 namespace blink { |  37 namespace blink { | 
|  38  |  38  | 
|  39 class ExecutionContext; |  39 class ExecutionContext; | 
|  40  |  40  | 
|  41 class DOMTimer final : public SuspendableTimer { |  41 class DOMTimer final : public SuspendableTimer { | 
|  42 public: |  42 public: | 
|  43     // Creates a new timer owned by the ExecutionContext, starts it and returns 
    its ID. |  43     // Creates a new timer owned by the ExecutionContext, starts it and returns 
    its ID. | 
|  44     static int install(ExecutionContext*, PassOwnPtr<ScheduledAction>, int timeo
    ut, bool singleShot); |  44     static int install(ExecutionContext*, PassOwnPtr<ScheduledActionBase>, int t
    imeout, bool singleShot); | 
|  45     static void removeByID(ExecutionContext*, int timeoutID); |  45     static void removeByID(ExecutionContext*, int timeoutID); | 
|  46  |  46  | 
|  47     virtual ~DOMTimer(); |  47     virtual ~DOMTimer(); | 
|  48  |  48  | 
|  49     int timeoutID() const; |  49     int timeoutID() const; | 
|  50  |  50  | 
|  51     // ActiveDOMObject |  51     // ActiveDOMObject | 
|  52     virtual void contextDestroyed() override; |  52     virtual void contextDestroyed() override; | 
|  53     virtual void stop() override; |  53     virtual void stop() override; | 
|  54  |  54  | 
|  55     // The following are essentially constants. All intervals are in seconds. |  55     // The following are essentially constants. All intervals are in seconds. | 
|  56     static double hiddenPageAlignmentInterval(); |  56     static double hiddenPageAlignmentInterval(); | 
|  57     static double visiblePageAlignmentInterval(); |  57     static double visiblePageAlignmentInterval(); | 
|  58  |  58  | 
|  59 private: |  59 private: | 
|  60     friend class ExecutionContext; // For create(). |  60     friend class ExecutionContext; // For create(). | 
|  61  |  61  | 
|  62     // Should only be used by ExecutionContext. |  62     // Should only be used by ExecutionContext. | 
|  63     static PassOwnPtr<DOMTimer> create(ExecutionContext* context, PassOwnPtr<Sch
    eduledAction> action, int timeout, bool singleShot, int timeoutID) |  63     static PassOwnPtr<DOMTimer> create(ExecutionContext* context, PassOwnPtr<Sch
    eduledActionBase> action, int timeout, bool singleShot, int timeoutID) | 
|  64     { |  64     { | 
|  65         return adoptPtr(new DOMTimer(context, action, timeout, singleShot, timeo
    utID)); |  65         return adoptPtr(new DOMTimer(context, action, timeout, singleShot, timeo
    utID)); | 
|  66     } |  66     } | 
|  67  |  67  | 
|  68     DOMTimer(ExecutionContext*, PassOwnPtr<ScheduledAction>, int interval, bool 
    singleShot, int timeoutID); |  68     DOMTimer(ExecutionContext*, PassOwnPtr<ScheduledActionBase>, int interval, b
    ool singleShot, int timeoutID); | 
|  69     virtual void fired() override; |  69     virtual void fired() override; | 
|  70  |  70  | 
|  71     // Retuns timer fire time rounded to the next multiple of timer alignment in
    terval. |  71     // Retuns timer fire time rounded to the next multiple of timer alignment in
    terval. | 
|  72     virtual double alignedFireTime(double) const override; |  72     virtual double alignedFireTime(double) const override; | 
|  73  |  73  | 
|  74     int m_timeoutID; |  74     int m_timeoutID; | 
|  75     int m_nestingLevel; |  75     int m_nestingLevel; | 
|  76     OwnPtr<ScheduledAction> m_action; |  76     OwnPtr<ScheduledActionBase> m_action; | 
|  77     RefPtr<UserGestureToken> m_userGestureToken; |  77     RefPtr<UserGestureToken> m_userGestureToken; | 
|  78 }; |  78 }; | 
|  79  |  79  | 
|  80 } // namespace blink |  80 } // namespace blink | 
|  81  |  81  | 
|  82 #endif // DOMTimer_h |  82 #endif // DOMTimer_h | 
| OLD | NEW |