void PageThrottler::reportInterestingEvent() { if (m_throttleState == PageNotThrottledState) return; if (m_throttleState == PageThrottledState) unthrottlePage(); m_throttleState = PageWaitingToThrottleState; startThrottleHysteresisTimer(); }
void PageThrottler::setThrottled(bool isThrottled) { if (isThrottled) { m_throttleState = PageWaitingToThrottleState; startThrottleHysteresisTimer(); } else { unthrottlePage(); stopThrottleHysteresisTimer(); } }
void PageThrottler::allowThrottling() { ASSERT(m_activeThrottleBlockers > 0); m_activeThrottleBlockers--; if (m_activeThrottleBlockers) return; if (m_throttleState == PageNotThrottledState) return; ASSERT(m_throttleState == PageWaitingToThrottleState); startThrottleHysteresisTimer(); }
void PageThrottler::removeActivityToken(PageActivityAssertionToken* token) { ASSERT(token && m_activityTokens.contains(token)); m_activityTokens.remove(token); if (m_activityTokens.size()) return; if (m_throttleState == PageNotThrottledState) return; ASSERT(m_throttleState == PageWaitingToThrottleState); startThrottleHysteresisTimer(); }