OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
5 * 2000 Dirk Mueller <mueller@kde.org> | 5 * 2000 Dirk Mueller <mueller@kde.org> |
6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 7 * (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 8 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
9 * Copyright (C) 2009 Google Inc. All rights reserved. | 9 * Copyright (C) 2009 Google Inc. All rights reserved. |
10 * | 10 * |
(...skipping 1538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1549 layoutView()->clearHitTestCache(); | 1549 layoutView()->clearHitTestCache(); |
1550 frame().loader().saveScrollState(); | 1550 frame().loader().saveScrollState(); |
1551 } | 1551 } |
1552 | 1552 |
1553 void FrameView::didScrollTimerFired(Timer<FrameView>*) | 1553 void FrameView::didScrollTimerFired(Timer<FrameView>*) |
1554 { | 1554 { |
1555 if (m_frame->document() && m_frame->document()->layoutView()) | 1555 if (m_frame->document() && m_frame->document()->layoutView()) |
1556 m_frame->document()->fetcher()->updateAllImageResourcePriorities(); | 1556 m_frame->document()->fetcher()->updateAllImageResourcePriorities(); |
1557 } | 1557 } |
1558 | 1558 |
1559 void FrameView::updateLayersAndCompositingAfterScrollIfNeeded() | 1559 void FrameView::updateLayersAndCompositingAfterScrollIfNeeded(const DoubleSize& scrollDelta) |
1560 { | 1560 { |
1561 // Nothing to do after scrolling if there are no fixed position elements. | 1561 // Nothing to do after scrolling if there are no fixed position elements. |
1562 if (!hasViewportConstrainedObjects()) | 1562 if (!hasViewportConstrainedObjects()) |
1563 return; | 1563 return; |
1564 | 1564 |
1565 RefPtrWillBeRawPtr<FrameView> protect(this); | 1565 RefPtrWillBeRawPtr<FrameView> protect(this); |
1566 | 1566 |
1567 // Update sticky position objects which are stuck to the viewport. | |
1568 for (const auto& viewportConstrainedObject : *m_viewportConstrainedObjects) { | |
chrishtr
2015/11/04 01:55:18
Shouldn't this go in PaintLayerScrollableArea? Thi
flackr
2015/11/25 20:47:52
The root frame doesn't use PaintLayerScrollableAre
chrishtr
2015/12/09 00:37:38
What about iframes?
| |
1569 LayoutObject* layoutObject = viewportConstrainedObject; | |
1570 PaintLayer* layer = toLayoutBoxModelObject(layoutObject)->layer(); | |
1571 if (layoutObject->style()->position() == StickyPosition) | |
1572 layer->updateLayerPositionAfterFrameScroll(scrollDelta); | |
1573 } | |
1574 | |
1567 // If there fixed position elements, scrolling may cause compositing layers to change. | 1575 // If there fixed position elements, scrolling may cause compositing layers to change. |
1568 // Update widget and layer positions after scrolling, but only if we're not inside of | 1576 // Update widget and layer positions after scrolling, but only if we're not inside of |
1569 // layout. | 1577 // layout. |
1570 if (!m_nestedLayoutCount) { | 1578 if (!m_nestedLayoutCount) { |
1571 updateWidgetPositions(); | 1579 updateWidgetPositions(); |
1572 if (LayoutView* layoutView = this->layoutView()) | 1580 if (LayoutView* layoutView = this->layoutView()) |
1573 layoutView->layer()->setNeedsCompositingInputsUpdate(); | 1581 layoutView->layer()->setNeedsCompositingInputsUpdate(); |
1574 } | 1582 } |
1575 } | 1583 } |
1576 | 1584 |
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2107 // Don't scroll the FrameView! | 2115 // Don't scroll the FrameView! |
2108 ASSERT_NOT_REACHED(); | 2116 ASSERT_NOT_REACHED(); |
2109 } | 2117 } |
2110 | 2118 |
2111 m_scrollPosition = newPosition; | 2119 m_scrollPosition = newPosition; |
2112 | 2120 |
2113 if (!scrollbarsSuppressed()) | 2121 if (!scrollbarsSuppressed()) |
2114 m_pendingScrollDelta += scrollDelta; | 2122 m_pendingScrollDelta += scrollDelta; |
2115 | 2123 |
2116 clearScrollAnchor(); | 2124 clearScrollAnchor(); |
2117 updateLayersAndCompositingAfterScrollIfNeeded(); | 2125 updateLayersAndCompositingAfterScrollIfNeeded(scrollDelta); |
2118 scrollPositionChanged(); | 2126 scrollPositionChanged(); |
2119 frame().loader().client()->didChangeScrollOffset(); | 2127 frame().loader().client()->didChangeScrollOffset(); |
2120 } | 2128 } |
2121 | 2129 |
2122 void FrameView::invalidatePaintForTickmarks() const | 2130 void FrameView::invalidatePaintForTickmarks() const |
2123 { | 2131 { |
2124 if (Scrollbar* scrollbar = verticalScrollbar()) | 2132 if (Scrollbar* scrollbar = verticalScrollbar()) |
2125 scrollbar->invalidate(); | 2133 scrollbar->invalidate(); |
2126 } | 2134 } |
2127 | 2135 |
(...skipping 1950 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
4078 } | 4086 } |
4079 | 4087 |
4080 bool FrameView::canThrottleRendering() const | 4088 bool FrameView::canThrottleRendering() const |
4081 { | 4089 { |
4082 if (!RuntimeEnabledFeatures::renderingPipelineThrottlingEnabled()) | 4090 if (!RuntimeEnabledFeatures::renderingPipelineThrottlingEnabled()) |
4083 return false; | 4091 return false; |
4084 return m_hiddenForThrottling && m_crossOriginForThrottling; | 4092 return m_hiddenForThrottling && m_crossOriginForThrottling; |
4085 } | 4093 } |
4086 | 4094 |
4087 } // namespace blink | 4095 } // namespace blink |
OLD | NEW |