Chromium Code Reviews| Index: third_party/WebKit/Source/platform/UserGestureIndicator.h |
| diff --git a/third_party/WebKit/Source/platform/UserGestureIndicator.h b/third_party/WebKit/Source/platform/UserGestureIndicator.h |
| index 503bf1171ec583c6cd93d726c2b6b03c6d3ca9fe..ab28053edb5ca63aecbc0e89e20b4200aabbec28 100644 |
| --- a/third_party/WebKit/Source/platform/UserGestureIndicator.h |
| +++ b/third_party/WebKit/Source/platform/UserGestureIndicator.h |
| @@ -33,25 +33,6 @@ |
| namespace blink { |
| -enum ProcessingUserGestureState { |
| - DefinitelyProcessingNewUserGesture, |
| - DefinitelyProcessingUserGesture, |
| - PossiblyProcessingUserGesture, |
| - DefinitelyNotProcessingUserGesture |
| -}; |
| - |
| -class PLATFORM_EXPORT UserGestureToken : public RefCounted<UserGestureToken> { |
| - WTF_MAKE_NONCOPYABLE(UserGestureToken); |
| - |
| - public: |
| - UserGestureToken() {} |
| - virtual ~UserGestureToken() {} |
| - virtual bool hasGestures() const = 0; |
| - virtual void setOutOfProcess() = 0; |
| - virtual void setJavascriptPrompt() = 0; |
| - virtual void setPauseInDebugger() = 0; |
| -}; |
| - |
| // Callback to be invoked when the state of a UserGestureIndicator is |
| // used (only during the scope of a UserGestureIndicator, does |
| // not flow with the UserGestureToken). It's the responsibility of the |
| @@ -68,6 +49,37 @@ class PLATFORM_EXPORT UserGestureUtilizedCallback { |
| virtual void userGestureUtilized() = 0; |
| }; |
| +class PLATFORM_EXPORT UserGestureToken : public RefCounted<UserGestureToken> { |
|
Rick Byers
2016/10/11 18:00:19
nit: since you're overhauling this, can you please
Nate Chapin
2016/10/11 19:17:55
Done.
|
| + WTF_MAKE_NONCOPYABLE(UserGestureToken); |
| + |
| + public: |
| + enum Status { NewGesture, PossiblyExistingGesture }; |
| + enum TimeoutPolicy { Default, OutOfProcess, HasPaused }; |
| + |
| + static PassRefPtr<UserGestureToken> create( |
| + Status status = PossiblyExistingGesture) { |
| + return adoptRef(new UserGestureToken(status)); |
| + } |
| + |
| + ~UserGestureToken() {} |
| + bool hasGestures(); |
| + void transferGestureTo(UserGestureToken*); |
| + bool consumeGesture(); |
| + void setTimeoutPolicy(TimeoutPolicy); |
| + void setUserGestureUtilizedCallback(UserGestureUtilizedCallback*); |
|
Rick Byers
2016/10/11 18:00:19
Add a comment describing the lifetime semantics fo
Nate Chapin
2016/10/11 19:17:55
Done.
|
| + void userGestureUtilized(); |
| + |
| + private: |
| + UserGestureToken(Status); |
| + |
| + bool hasTimedOut() const; |
| + |
| + size_t m_consumableGestures; |
| + double m_timestamp; |
| + TimeoutPolicy m_timeoutPolicy; |
| + UserGestureUtilizedCallback* m_usageCallback; |
| +}; |
| + |
| class PLATFORM_EXPORT UserGestureIndicator final { |
| USING_FAST_MALLOC(UserGestureIndicator); |
| WTF_MAKE_NONCOPYABLE(UserGestureIndicator); |
| @@ -99,19 +111,14 @@ class PLATFORM_EXPORT UserGestureIndicator final { |
| // Returns whether a user gesture has occurred since page load. |
| static bool processedUserGestureSinceLoad(); |
| - explicit UserGestureIndicator(ProcessingUserGestureState, |
| - UserGestureUtilizedCallback* = 0); |
| - explicit UserGestureIndicator(PassRefPtr<UserGestureToken>, |
| - UserGestureUtilizedCallback* = 0); |
| + explicit UserGestureIndicator(PassRefPtr<UserGestureToken>); |
| ~UserGestureIndicator(); |
| private: |
| - static ProcessingUserGestureState s_state; |
| - static UserGestureIndicator* s_topmostIndicator; |
| static bool s_processedUserGestureSinceLoad; |
| - ProcessingUserGestureState m_previousState; |
| + static UserGestureToken* s_rootToken; |
| + |
| RefPtr<UserGestureToken> m_token; |
| - UserGestureUtilizedCallback* m_usageCallback; |
| }; |
| } // namespace blink |