⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 110627 in webkit


Ignore:
Timestamp:
Mar 13, 2012, 3:50:18 PM (15 years ago)
Author:
nduca@chromium.org
Message:

[chromium] vsync ticks are needed in invisible tabs when we are still updating resources
​https://bugs.webkit.org/show_bug.cgi?id=80910

Reviewed by James Robinson.

Source/WebCore:

  • platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:

(WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):

Source/WebKit/chromium:

  • tests/CCSchedulerStateMachineTest.cpp:

(WebCore::TEST):
(WebCore):

Location:
trunk/Source
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r110626 r110627  
     12012-03-13  Nat Duca  <nduca@chromium.org>
     2
     3        [chromium] vsync ticks are needed in invisible tabs when we are still updating resources
     4        https://bugs.webkit.org/show_bug.cgi?id=80910
     5
     6        Reviewed by James Robinson.
     7
     8        * platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
     9        (WebCore::CCSchedulerStateMachine::vsyncCallbackNeeded):
     10
    1112012-03-13  Dave Tharp  <dtharp@codeaurora.org>
    212
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp

    r110464 r110627  
    165165{
    166166    if (!m_visible || m_contextState != CONTEXT_ACTIVE) {
    167         if (m_needsForcedRedraw)
     167        if (m_needsForcedRedraw || m_commitState == COMMIT_STATE_UPDATING_RESOURCES)
    168168            return true;
    169169
    … …  
    171171    }
    172172
    173     return m_needsRedraw || m_needsForcedRedraw || m_updateMoreResourcesPending;
     173    return m_needsRedraw || m_needsForcedRedraw || m_commitState == COMMIT_STATE_UPDATING_RESOURCES;
    174174}
    175175
  • trunk/Source/WebKit/chromium/ChangeLog

    r110624 r110627  
     12012-03-13  Nat Duca  <nduca@chromium.org>
     2
     3        [chromium] vsync ticks are needed in invisible tabs when we are still updating resources
     4        https://bugs.webkit.org/show_bug.cgi?id=80910
     5
     6        Reviewed by James Robinson.
     7
     8        * tests/CCSchedulerStateMachineTest.cpp:
     9        (WebCore::TEST):
     10        (WebCore):
     11
    1122012-03-13  Dana Jansens  <danakj@chromium.org>
    213
  • trunk/Source/WebKit/chromium/tests/CCSchedulerStateMachineTest.cpp

    r110464 r110627  
    160160                state.setVisible(true);
    161161
    162             // Case 1: needsCommit=false updateMoreResourcesPending=false.
     162            // Case 1: needsCommit=false
    163163            state.setNeedsCommit(false);
    164             state.setUpdateMoreResourcesPending(false);
    165             EXPECT_FALSE(state.vsyncCallbackNeeded());
    166164            EXPECT_NE(CCSchedulerStateMachine::ACTION_DRAW, state.nextAction());
    167165
    168             // Case 2: needsCommit=false updateMoreResourcesPending=true.
    169             state.setNeedsCommit(false);
    170             state.setUpdateMoreResourcesPending(true);
    171             if (visible)
    172                 EXPECT_TRUE(state.vsyncCallbackNeeded());
    173             EXPECT_NE(CCSchedulerStateMachine::ACTION_DRAW, state.nextAction());
    174 
    175             // Case 3: needsCommit=true updateMoreResourcesPending=false.
     166            // Case 2: needsCommit=true
    176167            state.setNeedsCommit(true);
    177             state.setUpdateMoreResourcesPending(false);
    178             EXPECT_FALSE(state.vsyncCallbackNeeded());
    179             EXPECT_NE(CCSchedulerStateMachine::ACTION_DRAW, state.nextAction());
    180 
    181             // Case 4: needsCommit=true updateMoreResourcesPending=true.
    182             state.setNeedsCommit(true);
    183             state.setUpdateMoreResourcesPending(true);
    184             if (visible)
    185                 EXPECT_TRUE(state.vsyncCallbackNeeded());
    186168            EXPECT_NE(CCSchedulerStateMachine::ACTION_DRAW, state.nextAction());
    187169        }
    … …  
    372354}
    373355
     356
     357TEST(CCSchedulerStateMachineTest, TestVSyncNeededWhenUpdatesPendingButInvisible)
     358{
     359    StateMachine state;
     360    state.setCommitState(CCSchedulerStateMachine::COMMIT_STATE_UPDATING_RESOURCES);
     361    state.setNeedsRedraw(false);
     362    state.setVisible(false);
     363    state.setUpdateMoreResourcesPending(true);
     364    EXPECT_TRUE(state.vsyncCallbackNeeded());
     365
     366    state.setUpdateMoreResourcesPending(false);
     367    EXPECT_TRUE(state.vsyncCallbackNeeded());
     368}
     369
    374370TEST(CCSchedulerStateMachineTest, TestUpdates_WithRedraw_OneRoundOfUpdates)
    375371{
Note: See TracChangeset for help on using the changeset viewer.