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

Side by Side Diff: Source/core/rendering/RenderLayerScrollableArea.cpp

Issue 235903003: Remove FrameView::containsScrollableArea (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 months 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * 3 *
4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
5 * 5 *
6 * Other contributors: 6 * Other contributors:
7 * Robert O'Callahan <roc+@cs.cmu.edu> 7 * Robert O'Callahan <roc+@cs.cmu.edu>
8 * David Baron <dbaron@fas.harvard.edu> 8 * David Baron <dbaron@fas.harvard.edu>
9 * Christian Biesinger <cbiesinger@web.de> 9 * Christian Biesinger <cbiesinger@web.de>
10 * Randall Jesup <rjesup@wgate.com> 10 * Randall Jesup <rjesup@wgate.com>
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 #include "platform/scroll/ScrollbarTheme.h" 69 #include "platform/scroll/ScrollbarTheme.h"
70 #include "public/platform/Platform.h" 70 #include "public/platform/Platform.h"
71 71
72 namespace WebCore { 72 namespace WebCore {
73 73
74 const int ResizerControlExpandRatioForTouch = 2; 74 const int ResizerControlExpandRatioForTouch = 2;
75 75
76 RenderLayerScrollableArea::RenderLayerScrollableArea(RenderBox* box) 76 RenderLayerScrollableArea::RenderLayerScrollableArea(RenderBox* box)
77 : m_box(box) 77 : m_box(box)
78 , m_inResizeMode(false) 78 , m_inResizeMode(false)
79 , m_scrollsOverflow(false)
79 , m_scrollDimensionsDirty(true) 80 , m_scrollDimensionsDirty(true)
80 , m_inOverflowRelayout(false) 81 , m_inOverflowRelayout(false)
81 , m_needsCompositedScrolling(false) 82 , m_needsCompositedScrolling(false)
82 , m_forceNeedsCompositedScrolling(DoNotForceCompositedScrolling) 83 , m_forceNeedsCompositedScrolling(DoNotForceCompositedScrolling)
83 , m_scrollCorner(0) 84 , m_scrollCorner(0)
84 , m_resizer(0) 85 , m_resizer(0)
85 { 86 {
86 ScrollableArea::setConstrainsScrollingToContentEdge(false); 87 ScrollableArea::setConstrainsScrollingToContentEdge(false);
87 88
88 Node* node = m_box->node(); 89 Node* node = m_box->node();
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after
960 if (m_resizer) 961 if (m_resizer)
961 m_resizer->setFrameRect(resizerCornerRect(borderBox, ResizerForPointer)) ; 962 m_resizer->setFrameRect(resizerCornerRect(borderBox, ResizerForPointer)) ;
962 963
963 // FIXME, this should eventually be removed, once we are certain that compos ited 964 // FIXME, this should eventually be removed, once we are certain that compos ited
964 // controls get correctly positioned on a compositor update. For now, conser vatively 965 // controls get correctly positioned on a compositor update. For now, conser vatively
965 // leaving this unchanged. 966 // leaving this unchanged.
966 if (m_box->hasCompositedLayerMapping()) 967 if (m_box->hasCompositedLayerMapping())
967 m_box->compositedLayerMapping()->positionOverflowControlsLayers(offsetFr omRoot); 968 m_box->compositedLayerMapping()->positionOverflowControlsLayers(offsetFr omRoot);
968 } 969 }
969 970
970 bool RenderLayerScrollableArea::scrollsOverflow() const
971 {
972 if (FrameView* frameView = m_box->view()->frameView())
973 return frameView->containsScrollableArea(this);
974
975 return false;
976 }
977
978 void RenderLayerScrollableArea::updateScrollCornerStyle() 971 void RenderLayerScrollableArea::updateScrollCornerStyle()
979 { 972 {
980 if (!m_scrollCorner && !hasScrollbar()) 973 if (!m_scrollCorner && !hasScrollbar())
981 return; 974 return;
982 if (!m_scrollCorner && hasOverlayScrollbars()) 975 if (!m_scrollCorner && hasOverlayScrollbars())
983 return; 976 return;
984 977
985 RenderObject* actualRenderer = rendererForScrollbar(m_box); 978 RenderObject* actualRenderer = rendererForScrollbar(m_box);
986 RefPtr<RenderStyle> corner = m_box->hasOverflowClip() ? actualRenderer->getU ncachedPseudoStyle(PseudoStyleRequest(SCROLLBAR_CORNER), actualRenderer->style() ) : PassRefPtr<RenderStyle>(nullptr); 979 RefPtr<RenderStyle> corner = m_box->hasOverflowClip() ? actualRenderer->getU ncachedPseudoStyle(PseudoStyleRequest(SCROLLBAR_CORNER), actualRenderer->style() ) : PassRefPtr<RenderStyle>(nullptr);
987 if (corner) { 980 if (corner) {
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after
1408 return; 1401 return;
1409 1402
1410 FrameView* frameView = frame->view(); 1403 FrameView* frameView = frame->view();
1411 if (!frameView) 1404 if (!frameView)
1412 return; 1405 return;
1413 1406
1414 bool isVisibleToHitTest = m_box->visibleToHitTesting(); 1407 bool isVisibleToHitTest = m_box->visibleToHitTesting();
1415 if (HTMLFrameOwnerElement* owner = frame->ownerElement()) 1408 if (HTMLFrameOwnerElement* owner = frame->ownerElement())
1416 isVisibleToHitTest &= owner->renderer() && owner->renderer()->visibleToH itTesting(); 1409 isVisibleToHitTest &= owner->renderer() && owner->renderer()->visibleToH itTesting();
1417 1410
1418 bool requiresScrollableArea = hasOverflow && isVisibleToHitTest; 1411 m_scrollsOverflow = hasOverflow && isVisibleToHitTest;
1412
1419 bool updatedScrollableAreaSet = false; 1413 bool updatedScrollableAreaSet = false;
1420 if (requiresScrollableArea) { 1414 if (m_scrollsOverflow) {
1421 if (frameView->addScrollableArea(this)) 1415 if (frameView->addScrollableArea(this))
1422 updatedScrollableAreaSet = true; 1416 updatedScrollableAreaSet = true;
1423 } else { 1417 } else {
1424 if (frameView->removeScrollableArea(this)) 1418 if (frameView->removeScrollableArea(this))
1425 updatedScrollableAreaSet = true; 1419 updatedScrollableAreaSet = true;
1426 } 1420 }
1427 1421
1428 if (updatedScrollableAreaSet) { 1422 if (updatedScrollableAreaSet) {
1429 // We always want composited scrolling if compositor driven accelerated 1423 // We always want composited scrolling if compositor driven accelerated
1430 // scrolling is enabled. Since we will not update needs composited scrol ling 1424 // scrolling is enabled. Since we will not update needs composited scrol ling
1431 // in this case, we must force our state to update. 1425 // in this case, we must force our state to update.
1432 RenderLayerCompositor* compositor = m_box->view()->compositor(); 1426 RenderLayerCompositor* compositor = m_box->view()->compositor();
1433 if (compositor->acceleratedCompositingForOverflowScrollEnabled()) 1427 if (compositor->acceleratedCompositingForOverflowScrollEnabled())
1434 layer()->didUpdateNeedsCompositedScrolling(); 1428 layer()->didUpdateNeedsCompositedScrolling();
1435 else if (requiresScrollableArea) 1429 else if (m_scrollsOverflow)
1436 compositor->setNeedsUpdateCompositingRequirementsState(); 1430 compositor->setNeedsUpdateCompositingRequirementsState();
1437 else 1431 else
1438 setNeedsCompositedScrolling(false); 1432 setNeedsCompositedScrolling(false);
1439 } 1433 }
1440 } 1434 }
1441 1435
1442 void RenderLayerScrollableArea::updateNeedsCompositedScrolling() 1436 void RenderLayerScrollableArea::updateNeedsCompositedScrolling()
1443 { 1437 {
1444 TRACE_EVENT0("comp-scroll", "RenderLayer::updateNeedsCompositedScrolling"); 1438 TRACE_EVENT0("comp-scroll", "RenderLayer::updateNeedsCompositedScrolling");
1445 RenderLayerCompositor* compositor = m_box->view()->compositor(); 1439 RenderLayerCompositor* compositor = m_box->view()->compositor();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
1520 void RenderLayerScrollableArea::setForceNeedsCompositedScrolling(ForceNeedsCompo sitedScrollingMode mode) 1514 void RenderLayerScrollableArea::setForceNeedsCompositedScrolling(ForceNeedsCompo sitedScrollingMode mode)
1521 { 1515 {
1522 if (m_forceNeedsCompositedScrolling == mode) 1516 if (m_forceNeedsCompositedScrolling == mode)
1523 return; 1517 return;
1524 1518
1525 m_forceNeedsCompositedScrolling = mode; 1519 m_forceNeedsCompositedScrolling = mode;
1526 layer()->didUpdateNeedsCompositedScrolling(); 1520 layer()->didUpdateNeedsCompositedScrolling();
1527 } 1521 }
1528 1522
1529 } // Namespace WebCore 1523 } // Namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderLayerScrollableArea.h ('k') | Source/core/rendering/compositing/CompositingReasonFinder.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698