UserGestureIndicator::UserGestureIndicator(PassRefPtr<UserGestureToken> token) : m_token(token) { // Silently ignore UserGestureIndicators on non-main threads. if (!isMainThread() || !m_token) return; if (!s_rootToken) { s_rootToken = m_token.get(); } else { RecordUserGestureMerge(*s_rootToken, *m_token); m_token->transferGestureTo(s_rootToken); } s_processedUserGestureSinceLoad = true; }
UserGestureIndicator::UserGestureIndicator(PassRefPtr<UserGestureToken> token) { // Silently ignore UserGestureIndicators on non-main threads and tokens that // are already active. if (!isMainThread() || !token || token == s_rootToken) return; m_token = token; if (!s_rootToken) { s_rootToken = m_token.get(); } else { RecordUserGestureMerge(*s_rootToken, *m_token); m_token->transferGestureTo(s_rootToken); } m_token->resetTimestamp(); }