Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(35)

Side by Side Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 2461463004: Resize background-attachment: fixed when inertTopControls is enabled. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 1465 matching lines...) Expand 10 before | Expand all | Expand 10 after
1476 // the initial containing block does not change (so we can't rely on layout 1476 // the initial containing block does not change (so we can't rely on layout
1477 // to issue the invalidation). This is because the background fills the 1477 // to issue the invalidation). This is because the background fills the
1478 // main GraphicsLayer, which takes the size of the layout viewport. 1478 // main GraphicsLayer, which takes the size of the layout viewport.
1479 // TODO(skobes): Paint non-fixed backgrounds into the scrolling contents 1479 // TODO(skobes): Paint non-fixed backgrounds into the scrolling contents
1480 // layer and avoid this invalidation (http://crbug.com/568847). 1480 // layer and avoid this invalidation (http://crbug.com/568847).
1481 LayoutViewItem lvi = layoutViewItem(); 1481 LayoutViewItem lvi = layoutViewItem();
1482 if (!lvi.isNull()) 1482 if (!lvi.isNull())
1483 lvi.setShouldDoFullPaintInvalidation(); 1483 lvi.setShouldDoFullPaintInvalidation();
1484 } 1484 }
1485 1485
1486 if (RuntimeEnabledFeatures::inertTopControlsEnabled() && layoutView() &&
1487 layoutView()->style()->hasFixedBackgroundImage()) {
1488 // In the case where we don't change layout size from top control resizes,
1489 // we wont perform a layout. If we have a fixed background image however,
1490 // the background layer needs to get resized so we should request a layout
1491 // explicitly.
1492 PaintLayer* layer = layoutView()->layer();
1493 if (layoutView()->compositor()->needsFixedRootBackgroundLayer(layer)) {
1494 setNeedsLayout();
1495 } else if (!RuntimeEnabledFeatures::rootLayerScrollingEnabled()) {
1496 // If root layer scrolls if on, we've already issued a full invalidation
flackr 2016/10/31 18:17:55 nit s/if on/is on
bokan 2016/11/01 20:27:58 Done.
1497 // above.
1498 layoutView()->setShouldDoFullPaintInvalidationOnResizeIfNeeded(
1499 widthChanged, heightChanged);
1500 }
1501 }
1502
1486 if (!hasViewportConstrainedObjects()) 1503 if (!hasViewportConstrainedObjects())
1487 return; 1504 return;
1488 1505
1489 for (const auto& viewportConstrainedObject : *m_viewportConstrainedObjects) { 1506 for (const auto& viewportConstrainedObject : *m_viewportConstrainedObjects) {
1490 LayoutObject* layoutObject = viewportConstrainedObject; 1507 LayoutObject* layoutObject = viewportConstrainedObject;
1491 const ComputedStyle& style = layoutObject->styleRef(); 1508 const ComputedStyle& style = layoutObject->styleRef();
1492 if (widthChanged) { 1509 if (widthChanged) {
1493 if (style.width().isFixed() && 1510 if (style.width().isFixed() &&
1494 (style.left().isAuto() || style.right().isAuto())) 1511 (style.left().isAuto() || style.right().isAuto()))
1495 layoutObject->setNeedsPositionedMovementLayout(); 1512 layoutObject->setNeedsPositionedMovementLayout();
(...skipping 3044 matching lines...) Expand 10 before | Expand all | Expand 10 after
4540 DCHECK(m_frame->isMainFrame()); 4557 DCHECK(m_frame->isMainFrame());
4541 return m_initialViewportSize.width(); 4558 return m_initialViewportSize.width();
4542 } 4559 }
4543 4560
4544 int FrameView::initialViewportHeight() const { 4561 int FrameView::initialViewportHeight() const {
4545 DCHECK(m_frame->isMainFrame()); 4562 DCHECK(m_frame->isMainFrame());
4546 return m_initialViewportSize.height(); 4563 return m_initialViewportSize.height();
4547 } 4564 }
4548 4565
4549 } // namespace blink 4566 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutView.h » ('j') | third_party/WebKit/Source/web/tests/WebViewTest.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698