Changeset 196666 in webkit
- Timestamp:
- Feb 16, 2016 3:24:14 PM (8 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r196664 r196666 1 2016-02-16 Simon Fraser <simon.fraser@apple.com> 2 3 Every RenderLayer should not have to remove itself from the scrollableArea set 4 https://bugs.webkit.org/show_bug.cgi?id=154311 5 6 Reviewed by Zalan Bujtas. 7 8 A subset of RenderLayers are are scrollable, and get registered on the FrameView, 9 but we pay the cost of a hash lookup for removal on every RenderLayer, which is a waste. 10 11 Store a bit that tells RenderLayer that it's in the set and needs to be removed. 12 13 * rendering/RenderLayer.cpp: 14 (WebCore::RenderLayer::RenderLayer): 15 (WebCore::RenderLayer::~RenderLayer): 16 (WebCore::RenderLayer::calculateClipRects): 17 * rendering/RenderLayer.h: 18 1 19 2016-02-16 Daniel Bates <dabates@apple.com> 2 20 -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r196244 r196666 281 281 , m_visibleDescendantStatusDirty(false) 282 282 , m_hasVisibleDescendant(false) 283 , m_registeredScrollableArea(false) 283 284 , m_3DTransformedDescendantStatusDirty(true) 284 285 , m_has3DTransformedDescendant(false) … … 346 347 renderer().frame().eventHandler().resizeLayerDestroyed(); 347 348 348 renderer().view().frameView().removeScrollableArea(this); 349 ASSERT(m_registeredScrollableArea == renderer().view().frameView().containsScrollableArea(this)); 350 351 if (m_registeredScrollableArea) 352 renderer().view().frameView().removeScrollableArea(this); 349 353 350 354 if (!renderer().documentBeingDestroyed()) { … … 6731 6735 bool isScrollable = hasOverflow && isVisibleToHitTest; 6732 6736 bool addedOrRemoved = false; 6733 if (isScrollable) 6734 addedOrRemoved = frameView.addScrollableArea(this); 6735 else 6737 6738 ASSERT(m_registeredScrollableArea == frameView.containsScrollableArea(this)); 6739 6740 if (isScrollable) { 6741 if (!m_registeredScrollableArea) { 6742 addedOrRemoved = frameView.addScrollableArea(this); 6743 m_registeredScrollableArea = true; 6744 } 6745 } else if (m_registeredScrollableArea) { 6736 6746 addedOrRemoved = frameView.removeScrollableArea(this); 6747 m_registeredScrollableArea = false; 6748 } 6737 6749 6738 6750 if (addedOrRemoved) -
trunk/Source/WebCore/rendering/RenderLayer.h
r196244 r196666 1039 1039 bool m_visibleDescendantStatusDirty : 1; 1040 1040 bool m_hasVisibleDescendant : 1; 1041 bool m_registeredScrollableArea : 1; 1041 1042 1042 1043 bool m_3DTransformedDescendantStatusDirty : 1;
Note: See TracChangeset
for help on using the changeset viewer.