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

Side by Side Diff: Source/core/page/FrameView.cpp

Issue 24921002: Make compositingState explicit (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: path for re-landing try #2 with removed unnecessary comment Created 7 years, 2 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) 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 1237 matching lines...) Expand 10 before | Expand all | Expand 10 after
1248 { 1248 {
1249 for (Frame* frame = m_frame.get(); frame; frame = frame->tree()->traverseNex t(m_frame.get())) { 1249 for (Frame* frame = m_frame.get(); frame; frame = frame->tree()->traverseNex t(m_frame.get())) {
1250 if (FrameView* view = frame->view()) 1250 if (FrameView* view = frame->view())
1251 view->setCanBlitOnScroll(!view->useSlowRepaints()); 1251 view->setCanBlitOnScroll(!view->useSlowRepaints());
1252 } 1252 }
1253 } 1253 }
1254 1254
1255 bool FrameView::contentsInCompositedLayer() const 1255 bool FrameView::contentsInCompositedLayer() const
1256 { 1256 {
1257 RenderView* renderView = this->renderView(); 1257 RenderView* renderView = this->renderView();
1258 if (renderView && renderView->isComposited()) { 1258 if (renderView && renderView->compositingState() == PaintsIntoOwnBacking) {
1259 GraphicsLayer* layer = renderView->layer()->compositedLayerMapping()->ma inGraphicsLayer(); 1259 GraphicsLayer* layer = renderView->layer()->compositedLayerMapping()->ma inGraphicsLayer();
1260 if (layer && layer->drawsContent()) 1260 if (layer && layer->drawsContent())
1261 return true; 1261 return true;
1262 } 1262 }
1263 1263
1264 return false; 1264 return false;
1265 } 1265 }
1266 1266
1267 void FrameView::setCannotBlitToWindow() 1267 void FrameView::setCannotBlitToWindow()
1268 { 1268 {
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1365 ViewportConstrainedObjectSet::const_iterator end = m_viewportConstrainedObje cts->end(); 1365 ViewportConstrainedObjectSet::const_iterator end = m_viewportConstrainedObje cts->end();
1366 for (ViewportConstrainedObjectSet::const_iterator it = m_viewportConstrained Objects->begin(); it != end; ++it) { 1366 for (ViewportConstrainedObjectSet::const_iterator it = m_viewportConstrained Objects->begin(); it != end; ++it) {
1367 RenderObject* renderer = *it; 1367 RenderObject* renderer = *it;
1368 if (!renderer->style()->hasViewportConstrainedPosition()) 1368 if (!renderer->style()->hasViewportConstrainedPosition())
1369 continue; 1369 continue;
1370 1370
1371 // Fixed items should always have layers. 1371 // Fixed items should always have layers.
1372 ASSERT(renderer->hasLayer()); 1372 ASSERT(renderer->hasLayer());
1373 RenderLayer* layer = toRenderBoxModelObject(renderer)->layer(); 1373 RenderLayer* layer = toRenderBoxModelObject(renderer)->layer();
1374 1374
1375 // Composited layers may still actually paint into their ancestor. 1375 // Layers that paint into their ancestor or into a grouped backing will still need
1376 // If that happens, the viewport constrained object needs to be 1376 // to apply a repaint invalidation. If the layer paints into its own bac king, then
1377 // repainted on scroll. 1377 // it does not need repainting just to scroll.
1378 if (layer->isComposited() && !layer->compositedLayerMapping()->paintsInt oCompositedAncestor()) 1378 if (layer->compositingState() == PaintsIntoOwnBacking)
1379 continue; 1379 continue;
1380 1380
1381 if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotC ompositedForBoundsOutOfView 1381 if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotC ompositedForBoundsOutOfView
1382 || layer->viewportConstrainedNotCompositedReason() == RenderLayer::N otCompositedForNoVisibleContent) { 1382 || layer->viewportConstrainedNotCompositedReason() == RenderLayer::N otCompositedForNoVisibleContent) {
1383 // Don't invalidate for invisible fixed layers. 1383 // Don't invalidate for invisible fixed layers.
1384 continue; 1384 continue;
1385 } 1385 }
1386 1386
1387 if (layer->hasAncestorWithFilterOutsets()) { 1387 if (layer->hasAncestorWithFilterOutsets()) {
1388 // If the fixed layer has a blur/drop-shadow filter applied on at le ast one of its parents, we cannot 1388 // If the fixed layer has a blur/drop-shadow filter applied on at le ast one of its parents, we cannot
(...skipping 2031 matching lines...) Expand 10 before | Expand all | Expand 10 after
3420 return frame().document()->existingAXObjectCache(); 3420 return frame().document()->existingAXObjectCache();
3421 return 0; 3421 return 0;
3422 } 3422 }
3423 3423
3424 bool FrameView::isMainFrame() const 3424 bool FrameView::isMainFrame() const
3425 { 3425 {
3426 return m_frame->page() && m_frame->page()->mainFrame() == m_frame; 3426 return m_frame->page() && m_frame->page()->mainFrame() == m_frame;
3427 } 3427 }
3428 3428
3429 } // namespace WebCore 3429 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/inspector/InspectorLayerTreeAgent.cpp ('k') | Source/core/page/animation/AnimationBase.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698