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;
}
Example #2
0
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();
}