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();
}
Beispiel #4
0
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();
}