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

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

Issue 25110005: Composited fixed-pos element should still cause repaints if it paintsIntoCompositedAncestor (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 1336 matching lines...) Expand 10 before | Expand all | Expand 10 after
1347 const bool isCompositedContentLayer = contentsInCompositedLayer(); 1347 const bool isCompositedContentLayer = contentsInCompositedLayer();
1348 1348
1349 // Get the rects of the fixed objects visible in the rectToScroll 1349 // Get the rects of the fixed objects visible in the rectToScroll
1350 Region regionToUpdate; 1350 Region regionToUpdate;
1351 ViewportConstrainedObjectSet::const_iterator end = m_viewportConstrainedObje cts->end(); 1351 ViewportConstrainedObjectSet::const_iterator end = m_viewportConstrainedObje cts->end();
1352 for (ViewportConstrainedObjectSet::const_iterator it = m_viewportConstrained Objects->begin(); it != end; ++it) { 1352 for (ViewportConstrainedObjectSet::const_iterator it = m_viewportConstrained Objects->begin(); it != end; ++it) {
1353 RenderObject* renderer = *it; 1353 RenderObject* renderer = *it;
1354 if (!renderer->style()->hasViewportConstrainedPosition()) 1354 if (!renderer->style()->hasViewportConstrainedPosition())
1355 continue; 1355 continue;
1356 1356
1357 if (renderer->isComposited())
1358 continue;
1359
1360 // Fixed items should always have layers. 1357 // Fixed items should always have layers.
1361 ASSERT(renderer->hasLayer()); 1358 ASSERT(renderer->hasLayer());
1362 RenderLayer* layer = toRenderBoxModelObject(renderer)->layer(); 1359 RenderLayer* layer = toRenderBoxModelObject(renderer)->layer();
1363 1360
1361 // Composited layers may still actually paint into their ancestor.
1362 // If that happens, the viewport constrained object needs to be
1363 // repainted on scroll.
1364 if (layer->isComposited() && !layer->backing()->paintsIntoCompositedAnce stor())
1365 continue;
1366
1364 if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotC ompositedForBoundsOutOfView 1367 if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotC ompositedForBoundsOutOfView
1365 || layer->viewportConstrainedNotCompositedReason() == RenderLayer::N otCompositedForNoVisibleContent) { 1368 || layer->viewportConstrainedNotCompositedReason() == RenderLayer::N otCompositedForNoVisibleContent) {
1366 // Don't invalidate for invisible fixed layers. 1369 // Don't invalidate for invisible fixed layers.
1367 continue; 1370 continue;
1368 } 1371 }
1369 1372
1370 if (layer->hasAncestorWithFilterOutsets()) { 1373 if (layer->hasAncestorWithFilterOutsets()) {
1371 // If the fixed layer has a blur/drop-shadow filter applied on at le ast one of its parents, we cannot 1374 // If the fixed layer has a blur/drop-shadow filter applied on at le ast one of its parents, we cannot
1372 // scroll using the fast path, otherwise the outsets of the filter w ill be moved around the page. 1375 // scroll using the fast path, otherwise the outsets of the filter w ill be moved around the page.
1373 return false; 1376 return false;
(...skipping 2032 matching lines...) Expand 10 before | Expand all | Expand 10 after
3406 return frame().document()->existingAXObjectCache(); 3409 return frame().document()->existingAXObjectCache();
3407 return 0; 3410 return 0;
3408 } 3411 }
3409 3412
3410 bool FrameView::isMainFrame() const 3413 bool FrameView::isMainFrame() const
3411 { 3414 {
3412 return m_frame->page() && m_frame->page()->mainFrame() == m_frame; 3415 return m_frame->page() && m_frame->page()->mainFrame() == m_frame;
3413 } 3416 }
3414 3417
3415 } // namespace WebCore 3418 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698