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::preventThrottling()
{
    // If we've already got events that block throttling we can increment
    // and return early
    if (m_activeThrottleBlockers++)
        return;

    if (m_throttleState == PageNotThrottledState)
        return;

    if (m_throttleState == PageThrottledState)
        unthrottlePage();

    m_throttleState = PageWaitingToThrottleState;
    stopThrottleHysteresisTimer();
}
Esempio n. 4
0
void PageThrottler::addActivityToken(PageActivityAssertionToken* token)
{
    ASSERT(token && !m_activityTokens.contains(token));

    m_activityTokens.add(token);

    // If we've already got events that block throttling we can return early
    if (m_activityTokens.size() > 1)
        return;

    if (m_throttleState == PageNotThrottledState)
        return;

    if (m_throttleState == PageThrottledState)
        unthrottlePage();

    m_throttleState = PageWaitingToThrottleState;
    stopThrottleHysteresisTimer();
}