Changeset 121824 in webkit


Ignore:
Timestamp:
Jul 3, 2012 7:59:30 PM (12 years ago)
Author:
leo.yang@torchmobile.com.cn
Message:

[BlackBerry] Checkerboard shown when clicking on error page buttons
https://bugs.webkit.org/show_bug.cgi?id=90152
RIM PR #161867

Reviewed by George Staikos.

r121514 just made the race occur in lower possibility but can't avoid it.
This path is using another approach to fix the problem. When we are resetting
backingstore while committing a page we need to suspend backingstore and
screen update to make sure no other threads can update backingstore and screen.

  • Api/BackingStore.cpp:

(BlackBerry::WebKit::BackingStorePrivate::resetTiles):

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::setLoadState):

Location:
trunk/Source/WebKit/blackberry
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/blackberry/Api/BackingStore.cpp

    r121576 r121824  
    18911891void BackingStorePrivate::resetTiles(bool resetBackground)
    18921892{
    1893     // We need to reset m_hasBlitJobs to prevent ui thread from
    1894     // drawing checkerboard unintentionally. See RIM PR #161867.
    1895     m_hasBlitJobs = false;
    1896 
    18971893    BackingStoreGeometry* currentState = frontState();
    18981894    TileMap currentMap = currentState->tileMap();
  • trunk/Source/WebKit/blackberry/Api/WebPage.cpp

    r121725 r121824  
    968968            }
    969969#endif
     970            // Suspend screen update to avoid ui thread blitting while resetting backingstore.
     971            m_backingStore->d->suspendScreenAndBackingStoreUpdates();
     972
    970973            m_previousContentsSize = IntSize();
    971974            m_backingStore->d->resetRenderQueue();
     
    10381041            setScrollPosition(IntPoint::zero());
    10391042            notifyTransformedScrollChanged();
     1043
     1044            m_backingStore->d->resumeScreenAndBackingStoreUpdates(BackingStore::None);
    10401045
    10411046            // Paints the visible backingstore as white. Note it is important we do
  • trunk/Source/WebKit/blackberry/ChangeLog

    r121774 r121824  
     12012-07-03  Leo Yang  <leo.yang@torchmobile.com.cn>
     2
     3        [BlackBerry] Checkerboard shown when clicking on error page buttons
     4        https://bugs.webkit.org/show_bug.cgi?id=90152
     5        RIM PR #161867
     6
     7        Reviewed by George Staikos.
     8
     9        r121514 just made the race occur in lower possibility but can't avoid it.
     10        This path is using another approach to fix the problem. When we are resetting
     11        backingstore while committing a page we need to suspend backingstore and
     12        screen update to make sure no other threads can update backingstore and screen.
     13
     14        * Api/BackingStore.cpp:
     15        (BlackBerry::WebKit::BackingStorePrivate::resetTiles):
     16        * Api/WebPage.cpp:
     17        (BlackBerry::WebKit::WebPagePrivate::setLoadState):
     18
    1192012-07-03  George Staikos  <staikos@webkit.org>
    220
Note: See TracChangeset for help on using the changeset viewer.