Changeset 134456 in webkit
- Timestamp:
- Nov 13, 2012 11:40:31 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r134454 r134456 1 2012-11-13 Sami Kyostila <skyostil@chromium.org> 2 3 Allow painting outside overflow clip in accelerated scrolling layers 4 https://bugs.webkit.org/show_bug.cgi?id=100524 5 6 Reviewed by Simon Fraser. 7 8 Added a test to check painting outside the overflow clip. Note that this will 9 not pass unless ENABLE_ACCELERATED_OVERFLOW_SCROLLING is enabled. 10 11 * compositing/overflow/updating-scrolling-content-expected.txt: Added. 12 * compositing/overflow/updating-scrolling-content.html: Added. 13 * platform/chromium/TestExpectations: Mark test as expected to fail 14 by default. 15 * platform/mac/TestExpectations: Skip the test. 16 1 17 2012-11-13 Dimitri Glazkov <dglazkov@chromium.org> 2 18 -
trunk/LayoutTests/platform/chromium/TestExpectations
r134454 r134456 3729 3729 webkit.org/b/94353 compositing/overflow/scrolling-content-clip-to-viewport.html [ Failure ] 3730 3730 webkit.org/b/94353 platform/chromium/virtual/softwarecompositing/overflow/scrolling-content-clip-to-viewport.html [ Failure ] 3731 webkit.org/b/94353 compositing/overflow/updating-scrolling-content.html [ Failure ] 3732 webkit.org/b/94353 platform/chromium/virtual/softwarecompositing/overflow/updating-scrolling-content.html [ Failure ] 3731 3733 webkit.org/b/94353 compositing/overflow/textarea-scroll-touch.html [ Failure ] 3732 3734 webkit.org/b/94353 platform/chromium/virtual/softwarecompositing/overflow/textarea-scroll-touch.html [ Failure ] -
trunk/LayoutTests/platform/mac/TestExpectations
r134198 r134456 853 853 compositing/overflow/scrolling-content-clip-to-viewport.html 854 854 compositing/overflow/textarea-scroll-touch.html 855 compositing/overflow/updating-scrolling-content.html 855 856 856 857 # https://bugs.webkit.org/show_bug.cgi?id=95027 -
trunk/Source/WebCore/ChangeLog
r134453 r134456 1 2012-11-13 Sami Kyostila <skyostil@chromium.org> 2 3 Allow painting outside overflow clip in accelerated scrolling layers 4 https://bugs.webkit.org/show_bug.cgi?id=100524 5 6 Reviewed by Simon Fraser. 7 8 In preparation for avoiding repaints when scrolling child layers, make it 9 possible to paint outside the overflow clip. 10 11 Test: compositing/overflow/updating-scrolling-content.html 12 13 * rendering/LayoutState.h: 14 (LayoutState): 15 * rendering/RenderBlock.cpp: 16 (WebCore::RenderBlock::paint): 17 * rendering/RenderBox.cpp: 18 (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint): 19 * rendering/RenderLayer.cpp: 20 (WebCore::RenderLayer::repaintBlockSelectionGaps): 21 1 22 2012-11-13 Patrick Gansterer <paroga@webkit.org> 2 23 -
trunk/Source/WebCore/rendering/LayoutState.h
r133779 r134456 130 130 #endif 131 131 132 // FIXME: Distinguish between the layout clip rect and the paint clip rect which may be larger, 133 // e.g., because of composited scrolling. 132 134 LayoutRect m_clipRect; 133 135 -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r133845 r134456 2759 2759 // paints the root's background. 2760 2760 if (!isRoot()) { 2761 LayoutRect overflowBox = visualOverflowRect();2761 LayoutRect overflowBox = overflowRectForPaintRejection(); 2762 2762 flipForWritingMode(overflowBox); 2763 2763 overflowBox.inflate(maximalOutlineSize(paintInfo.phase)); -
trunk/Source/WebCore/rendering/RenderBox.cpp
r133845 r134456 618 618 } 619 619 620 bool RenderBox::usesCompositedScrolling() const 621 { 622 return hasOverflowClip() && hasLayer() && layer()->usesCompositedScrolling(); 623 } 624 620 625 void RenderBox::autoscroll() 621 626 { … … 652 657 { 653 658 paintRect.move(-scrolledContentOffset()); // For overflow:auto/scroll/hidden. 659 660 // Do not clip scroll layer contents to reduce the number of repaints while scrolling. 661 if (usesCompositedScrolling()) 662 return; 654 663 655 664 // height() is inaccurate if we're in the middle of a layout of this RenderBox, so use the … … 3929 3938 } 3930 3939 3940 LayoutRect RenderBox::overflowRectForPaintRejection() const 3941 { 3942 LayoutRect overflowRect = visualOverflowRect(); 3943 if (!m_overflow || !usesCompositedScrolling()) 3944 return overflowRect; 3945 3946 overflowRect.unite(layoutOverflowRect()); 3947 overflowRect.move(-scrolledContentOffset()); 3948 return overflowRect; 3949 } 3950 3931 3951 LayoutUnit RenderBox::offsetLeft() const 3932 3952 { -
trunk/Source/WebCore/rendering/RenderBox.h
r133845 r134456 176 176 LayoutUnit logicalLeftVisualOverflow() const { return style()->isHorizontalWritingMode() ? visualOverflowRect().x() : visualOverflowRect().y(); } 177 177 LayoutUnit logicalRightVisualOverflow() const { return style()->isHorizontalWritingMode() ? visualOverflowRect().maxX() : visualOverflowRect().maxY(); } 178 179 LayoutRect overflowRectForPaintRejection() const; 178 180 179 181 void addLayoutOverflow(const LayoutRect&); … … 434 436 bool scrollsOverflowX() const { return hasOverflowClip() && (style()->overflowX() == OSCROLL || hasAutoHorizontalScrollbar()); } 435 437 bool scrollsOverflowY() const { return hasOverflowClip() && (style()->overflowY() == OSCROLL || hasAutoVerticalScrollbar()); } 438 bool usesCompositedScrolling() const; 436 439 437 440 bool hasUnsplittableScrollingOverflow() const; -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r134356 r134456 4327 4327 LayoutRect rect = m_blockSelectionGapsBounds; 4328 4328 rect.move(-scrolledContentOffset()); 4329 if (renderer()->hasOverflowClip() )4329 if (renderer()->hasOverflowClip() && !usesCompositedScrolling()) 4330 4330 rect.intersect(toRenderBox(renderer())->overflowClipRect(LayoutPoint(), 0)); // FIXME: Regions not accounted for. 4331 4331 if (renderer()->hasClip())
Note: See TracChangeset
for help on using the changeset viewer.