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

Side by Side Diff: third_party/WebKit/Source/platform/UserGestureIndicator.cpp

Issue 2408333004: Move persistent gesture state to Document, add DocumentUserGestureToken (Closed)
Patch Set: a Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2010 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
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 } 85 }
86 86
87 void UserGestureToken::userGestureUtilized() { 87 void UserGestureToken::userGestureUtilized() {
88 if (m_usageCallback) { 88 if (m_usageCallback) {
89 m_usageCallback->userGestureUtilized(); 89 m_usageCallback->userGestureUtilized();
90 m_usageCallback = nullptr; 90 m_usageCallback = nullptr;
91 } 91 }
92 } 92 }
93 93
94 UserGestureToken* UserGestureIndicator::s_rootToken = nullptr; 94 UserGestureToken* UserGestureIndicator::s_rootToken = nullptr;
95 bool UserGestureIndicator::s_processedUserGestureSinceLoad = false;
96 95
97 UserGestureIndicator::UserGestureIndicator(PassRefPtr<UserGestureToken> token) 96 UserGestureIndicator::UserGestureIndicator(PassRefPtr<UserGestureToken> token)
98 : m_token(token) { 97 : m_token(token) {
99 // Silently ignore UserGestureIndicators on non-main threads. 98 // Silently ignore UserGestureIndicators on non-main threads.
100 if (!isMainThread() || !m_token) 99 if (!isMainThread() || !m_token)
101 return; 100 return;
102 101
103 if (!s_rootToken) 102 if (!s_rootToken)
104 s_rootToken = m_token.get(); 103 s_rootToken = m_token.get();
105 else 104 else
106 m_token->transferGestureTo(s_rootToken); 105 m_token->transferGestureTo(s_rootToken);
107 s_processedUserGestureSinceLoad = true;
108 } 106 }
109 107
110 UserGestureIndicator::~UserGestureIndicator() { 108 UserGestureIndicator::~UserGestureIndicator() {
111 if (isMainThread() && m_token && m_token == s_rootToken) { 109 if (isMainThread() && m_token && m_token == s_rootToken) {
112 s_rootToken->setUserGestureUtilizedCallback(nullptr); 110 s_rootToken->setUserGestureUtilizedCallback(nullptr);
113 s_rootToken = nullptr; 111 s_rootToken = nullptr;
114 } 112 }
115 } 113 }
116 114
117 // static 115 // static
(...skipping 26 matching lines...) Expand all
144 return false; 142 return false;
145 } 143 }
146 144
147 // static 145 // static
148 UserGestureToken* UserGestureIndicator::currentToken() { 146 UserGestureToken* UserGestureIndicator::currentToken() {
149 if (!isMainThread() || !s_rootToken) 147 if (!isMainThread() || !s_rootToken)
150 return nullptr; 148 return nullptr;
151 return s_rootToken; 149 return s_rootToken;
152 } 150 }
153 151
154 // static
155 void UserGestureIndicator::clearProcessedUserGestureSinceLoad() {
156 if (isMainThread())
157 s_processedUserGestureSinceLoad = false;
158 }
159
160 // static
161 bool UserGestureIndicator::processedUserGestureSinceLoad() {
162 if (!isMainThread())
163 return false;
164 return s_processedUserGestureSinceLoad;
165 }
166
167 } // namespace blink 152 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698