Changeset 142670 in webkit
- Timestamp:
- Feb 12, 2013 1:59:18 PM (11 years ago)
- Location:
- trunk/Source/WebKit/blackberry
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/blackberry/Api/BackingStore.cpp
r142227 r142670 206 206 : m_suspendScreenUpdateCounterWebKitThread(0) 207 207 , m_suspendBackingStoreUpdates(0) 208 , m_suspendGeometryUpdates(0) 208 209 , m_resumeOperation(BackingStore::None) 209 210 , m_suspendScreenUpdatesWebKitThread(true) … … 302 303 } 303 304 305 void BackingStorePrivate::suspendGeometryUpdates() 306 { 307 ASSERT(BlackBerry::Platform::webKitThreadMessageClient()->isCurrentThread()); 308 309 if (m_suspendGeometryUpdates) { 310 BBLOG(Platform::LogLevelInfo, 311 "Backingstore geometry already suspended, increasing suspend counter."); 312 } 313 314 ++m_suspendGeometryUpdates; 315 } 316 304 317 void BackingStorePrivate::suspendScreenUpdates() 305 318 { … … 337 350 338 351 atomic_sub(&m_suspendBackingStoreUpdates, 1); 352 353 dispatchRenderJob(); 354 } 355 356 357 void BackingStorePrivate::resumeGeometryUpdates() 358 { 359 ASSERT(BlackBerry::Platform::webKitThreadMessageClient()->isCurrentThread()); 360 361 ASSERT(m_suspendGeometryUpdates >= 1); 362 if (m_suspendGeometryUpdates < 1) { 363 Platform::logAlways(Platform::LogLevelCritical, 364 "Call mismatch: Backingstore geometry hasn't been suspended, therefore won't resume!"); 365 return; 366 } 367 368 // Set a flag indicating that we're about to resume geometry updates and 369 // the tile matrix should be updated as a consequence by the first render 370 // job that happens after this resumption of geometry updates. 371 if (m_suspendGeometryUpdates == 1) 372 setTileMatrixNeedsUpdate(); 373 374 --m_suspendGeometryUpdates; 339 375 340 376 dispatchRenderJob(); … … 768 804 } 769 805 770 if (m_suspendBackingStoreUpdates )806 if (m_suspendBackingStoreUpdates || m_suspendGeometryUpdates) 771 807 return; 772 808 … … 2423 2459 } 2424 2460 2461 void BackingStore::suspendGeometryUpdates() 2462 { 2463 d->suspendGeometryUpdates(); 2464 } 2465 2466 void BackingStore::resumeGeometryUpdates() 2467 { 2468 d->resumeGeometryUpdates(); 2469 } 2470 2425 2471 void BackingStore::suspendScreenUpdates() 2426 2472 { -
trunk/Source/WebKit/blackberry/Api/BackingStore.h
r142037 r142670 62 62 void resumeBackingStoreUpdates(); 63 63 64 void suspendGeometryUpdates(); 65 void resumeGeometryUpdates(); 66 64 67 void suspendScreenUpdates(); 65 68 void resumeScreenUpdates(BackingStore::ResumeUpdateOperation); -
trunk/Source/WebKit/blackberry/Api/BackingStore_p.h
r142137 r142670 136 136 void resumeBackingStoreUpdates(); 137 137 138 // Suspends all backingstore geometry updates. 139 void suspendGeometryUpdates(); 140 141 // Resumes all backingstore geometry updates. 142 void resumeGeometryUpdates(); 143 138 144 // Suspends all screen updates so that 'blitVisibleContents' is disabled. 139 145 void suspendScreenUpdates(); … … 346 352 unsigned m_suspendScreenUpdateCounterWebKitThread; 347 353 unsigned m_suspendBackingStoreUpdates; 354 unsigned m_suspendGeometryUpdates; 348 355 BackingStore::ResumeUpdateOperation m_resumeOperation; 349 356 -
trunk/Source/WebKit/blackberry/ChangeLog
r142664 r142670 1 2013-02-12 Andrew Lo <anlo@rim.com> 2 3 [BlackBerry] CSS animations stop running during zoom 4 https://bugs.webkit.org/show_bug.cgi?id=109606 5 6 Reviewed by Rob Buis. 7 Internally reviewed by Jakob Petsovits. 8 9 Internal PR 286160. 10 New BackingStore API for suspending/resuming geometry updates. 11 12 This is needed because we want to allow render jobs to continue during 13 zoom, but we don't want to allow geometry updates during zoom. 14 15 Prevent scroll/zoom render jobs from being added to the queue if 16 the tile is outside the expanded content rect. 17 18 * Api/BackingStore.cpp: 19 (BlackBerry::WebKit::BackingStorePrivate::BackingStorePrivate): 20 (BlackBerry::WebKit::BackingStorePrivate::suspendGeometryUpdates): 21 (WebKit): 22 (BlackBerry::WebKit::BackingStorePrivate::resumeGeometryUpdates): 23 (BlackBerry::WebKit::BackingStorePrivate::setBackingStoreRect): 24 (BlackBerry::WebKit::BackingStore::suspendGeometryUpdates): 25 (BlackBerry::WebKit::BackingStore::resumeGeometryUpdates): 26 * Api/BackingStore.h: 27 * Api/BackingStore_p.h: 28 (BackingStorePrivate): 29 * WebKitSupport/RenderQueue.cpp: 30 (BlackBerry::WebKit::RenderQueue::addToScrollZoomQueue): 31 1 32 2013-02-12 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 33 -
trunk/Source/WebKit/blackberry/WebKitSupport/RenderQueue.cpp
r138441 r142670 345 345 void RenderQueue::addToScrollZoomQueue(const TileIndexList& addedTiles, TileIndexList* alreadyQueuedTiles) 346 346 { 347 Platform::IntRect contentsRect = m_parent->expandedContentsRect(); 347 348 for (size_t i = 0; i < addedTiles.size(); ++i) { 348 349 if (alreadyQueuedTiles->contains(addedTiles[i])) 349 350 continue; 351 352 Platform::IntRect tileRect(m_parent->frontState()->originOfTile(addedTiles[i]), m_parent->tileSize()); 353 if (!contentsRect.intersects(tileRect)) { 354 #if DEBUG_RENDER_QUEUE 355 Platform::logAlways(Platform::LogLevelCritical, 356 "RenderQueue::addToScrollZoomQueue tile at %s outside of expanded contents rect %s, ignoring.", 357 tileRect.toString().c_str(), 358 contentsRect.toString().c_str()); 359 #endif 360 continue; 361 } 350 362 351 363 #if DEBUG_RENDER_QUEUE
Note: See TracChangeset
for help on using the changeset viewer.