| 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 1461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1472 } | 1472 } |
| 1473 | 1473 |
| 1474 void FrameView::addBackgroundAttachmentFixedObject(LayoutObject* object) { | 1474 void FrameView::addBackgroundAttachmentFixedObject(LayoutObject* object) { |
| 1475 ASSERT(!m_backgroundAttachmentFixedObjects.contains(object)); | 1475 ASSERT(!m_backgroundAttachmentFixedObjects.contains(object)); |
| 1476 | 1476 |
| 1477 m_backgroundAttachmentFixedObjects.add(object); | 1477 m_backgroundAttachmentFixedObjects.add(object); |
| 1478 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator()) | 1478 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator()) |
| 1479 scrollingCoordinator->frameViewHasBackgroundAttachmentFixedObjectsDidChange( | 1479 scrollingCoordinator->frameViewHasBackgroundAttachmentFixedObjectsDidChange( |
| 1480 this); | 1480 this); |
| 1481 | 1481 |
| 1482 // TODO(pdr): When slimming paint v2 is enabled, invalidate the scroll paint | 1482 // Ensure main thread scrolling reasons are recomputed. |
| 1483 // property subtree for this so main thread scroll reasons are recomputed. | 1483 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { |
| 1484 setNeedsPaintPropertyUpdate(); |
| 1485 // The object's scroll properties are not affected by its own background. |
| 1486 object->setAllAncestorsNeedPaintPropertyUpdate(); |
| 1487 } |
| 1484 } | 1488 } |
| 1485 | 1489 |
| 1486 void FrameView::removeBackgroundAttachmentFixedObject(LayoutObject* object) { | 1490 void FrameView::removeBackgroundAttachmentFixedObject(LayoutObject* object) { |
| 1487 ASSERT(m_backgroundAttachmentFixedObjects.contains(object)); | 1491 ASSERT(m_backgroundAttachmentFixedObjects.contains(object)); |
| 1488 | 1492 |
| 1489 m_backgroundAttachmentFixedObjects.remove(object); | 1493 m_backgroundAttachmentFixedObjects.remove(object); |
| 1490 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator()) | 1494 if (ScrollingCoordinator* scrollingCoordinator = this->scrollingCoordinator()) |
| 1491 scrollingCoordinator->frameViewHasBackgroundAttachmentFixedObjectsDidChange( | 1495 scrollingCoordinator->frameViewHasBackgroundAttachmentFixedObjectsDidChange( |
| 1492 this); | 1496 this); |
| 1493 | 1497 |
| 1494 // TODO(pdr): When slimming paint v2 is enabled, invalidate the scroll paint | 1498 // Ensure main thread scrolling reasons are recomputed. |
| 1495 // property subtree for this so main thread scroll reasons are recomputed. | 1499 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { |
| 1500 setNeedsPaintPropertyUpdate(); |
| 1501 // The object's scroll properties are not affected by its own background. |
| 1502 object->setAllAncestorsNeedPaintPropertyUpdate(); |
| 1503 } |
| 1496 } | 1504 } |
| 1497 | 1505 |
| 1498 void FrameView::addViewportConstrainedObject(LayoutObject* object) { | 1506 void FrameView::addViewportConstrainedObject(LayoutObject* object) { |
| 1499 if (!m_viewportConstrainedObjects) | 1507 if (!m_viewportConstrainedObjects) |
| 1500 m_viewportConstrainedObjects = wrapUnique(new ViewportConstrainedObjectSet); | 1508 m_viewportConstrainedObjects = wrapUnique(new ViewportConstrainedObjectSet); |
| 1501 | 1509 |
| 1502 if (!m_viewportConstrainedObjects->contains(object)) { | 1510 if (!m_viewportConstrainedObjects->contains(object)) { |
| 1503 m_viewportConstrainedObjects->add(object); | 1511 m_viewportConstrainedObjects->add(object); |
| 1504 | 1512 |
| 1505 if (ScrollingCoordinator* scrollingCoordinator = | 1513 if (ScrollingCoordinator* scrollingCoordinator = |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1591 void FrameView::scrollContentsIfNeededRecursive() { | 1599 void FrameView::scrollContentsIfNeededRecursive() { |
| 1592 forAllNonThrottledFrameViews( | 1600 forAllNonThrottledFrameViews( |
| 1593 [](FrameView& frameView) { frameView.scrollContentsIfNeeded(); }); | 1601 [](FrameView& frameView) { frameView.scrollContentsIfNeeded(); }); |
| 1594 } | 1602 } |
| 1595 | 1603 |
| 1596 void FrameView::invalidateBackgroundAttachmentFixedObjects() { | 1604 void FrameView::invalidateBackgroundAttachmentFixedObjects() { |
| 1597 for (const auto& layoutObject : m_backgroundAttachmentFixedObjects) | 1605 for (const auto& layoutObject : m_backgroundAttachmentFixedObjects) |
| 1598 layoutObject->setShouldDoFullPaintInvalidation(); | 1606 layoutObject->setShouldDoFullPaintInvalidation(); |
| 1599 } | 1607 } |
| 1600 | 1608 |
| 1609 bool FrameView::hasBackgroundAttachmentFixedDescendants( |
| 1610 const LayoutObject& object) const { |
| 1611 for (const auto* potentialDescendant : m_backgroundAttachmentFixedObjects) { |
| 1612 if (potentialDescendant == &object) |
| 1613 continue; |
| 1614 if (potentialDescendant->isDescendantOf(&object)) |
| 1615 return true; |
| 1616 } |
| 1617 return false; |
| 1618 } |
| 1619 |
| 1601 bool FrameView::invalidateViewportConstrainedObjects() { | 1620 bool FrameView::invalidateViewportConstrainedObjects() { |
| 1602 bool fastPathAllowed = true; | 1621 bool fastPathAllowed = true; |
| 1603 for (const auto& viewportConstrainedObject : *m_viewportConstrainedObjects) { | 1622 for (const auto& viewportConstrainedObject : *m_viewportConstrainedObjects) { |
| 1604 LayoutObject* layoutObject = viewportConstrainedObject; | 1623 LayoutObject* layoutObject = viewportConstrainedObject; |
| 1605 LayoutItem layoutItem = LayoutItem(layoutObject); | 1624 LayoutItem layoutItem = LayoutItem(layoutObject); |
| 1606 ASSERT(layoutItem.style()->hasViewportConstrainedPosition()); | 1625 ASSERT(layoutItem.style()->hasViewportConstrainedPosition()); |
| 1607 ASSERT(layoutItem.hasLayer()); | 1626 ASSERT(layoutItem.hasLayer()); |
| 1608 PaintLayer* layer = LayoutBoxModel(layoutItem).layer(); | 1627 PaintLayer* layer = LayoutBoxModel(layoutItem).layer(); |
| 1609 | 1628 |
| 1610 if (layer->isPaintInvalidationContainer()) | 1629 if (layer->isPaintInvalidationContainer()) |
| (...skipping 2974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4585 DCHECK(m_frame->isMainFrame()); | 4604 DCHECK(m_frame->isMainFrame()); |
| 4586 return m_initialViewportSize.width(); | 4605 return m_initialViewportSize.width(); |
| 4587 } | 4606 } |
| 4588 | 4607 |
| 4589 int FrameView::initialViewportHeight() const { | 4608 int FrameView::initialViewportHeight() const { |
| 4590 DCHECK(m_frame->isMainFrame()); | 4609 DCHECK(m_frame->isMainFrame()); |
| 4591 return m_initialViewportSize.height(); | 4610 return m_initialViewportSize.height(); |
| 4592 } | 4611 } |
| 4593 | 4612 |
| 4594 } // namespace blink | 4613 } // namespace blink |
| OLD | NEW |