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

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

Issue 202533003: Don't schedule an animation during compositing dirty-bit setting unless needed. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Cleanup. Created 6 years, 9 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 2766 matching lines...) Expand 10 before | Expand all | Expand 10 after
2777 2777
2778 ScrollView::paintOverhangAreas(context, horizontalOverhangArea, verticalOver hangArea, dirtyRect); 2778 ScrollView::paintOverhangAreas(context, horizontalOverhangArea, verticalOver hangArea, dirtyRect);
2779 } 2779 }
2780 2780
2781 void FrameView::updateLayoutAndStyleForPainting() 2781 void FrameView::updateLayoutAndStyleForPainting()
2782 { 2782 {
2783 // Updating layout can run script, which can tear down the FrameView. 2783 // Updating layout can run script, which can tear down the FrameView.
2784 RefPtr<FrameView> protector(this); 2784 RefPtr<FrameView> protector(this);
2785 2785
2786 updateLayoutAndStyleIfNeededRecursive(); 2786 updateLayoutAndStyleIfNeededRecursive();
2787 if (RenderView* view = renderView()) 2787 if (RenderView* view = renderView()) {
2788 ASSERT(!view->needsLayout());
2788 view->compositor()->updateCompositingLayers(); 2789 view->compositor()->updateCompositingLayers();
2790
2791 // FIXME: we should not have any dirty bits left at this point. Unfortun ately, this is not yet the case because
2792 // the code in updateCompositingLayers sometimes creates new dirty bits when updating direct compositing reasons.
2793 view->compositor()->scheduleAnimationIfNeeded();
2794 }
2789 } 2795 }
2790 2796
2791 void FrameView::updateLayoutAndStyleIfNeededRecursive() 2797 void FrameView::updateLayoutAndStyleIfNeededRecursive()
2792 { 2798 {
2793 // We have to crawl our entire tree looking for any FrameViews that need 2799 // We have to crawl our entire tree looking for any FrameViews that need
2794 // layout and make sure they are up to date. 2800 // layout and make sure they are up to date.
2795 // Mac actually tests for intersection with the dirty region and tries not t o 2801 // Mac actually tests for intersection with the dirty region and tries not t o
2796 // update layout for frames that are outside the dirty region. Not only doe s this seem 2802 // update layout for frames that are outside the dirty region. Not only doe s this seem
2797 // pointless (since those frames will have set a zero timer to layout anyway ), but 2803 // pointless (since those frames will have set a zero timer to layout anyway ), but
2798 // it is also incorrect, since if two frames overlap, the first could be exc luded from the dirty 2804 // it is also incorrect, since if two frames overlap, the first could be exc luded from the dirty
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after
3213 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation) 3219 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation)
3214 { 3220 {
3215 ScrollableArea::willRemoveScrollbar(scrollbar, orientation); 3221 ScrollableArea::willRemoveScrollbar(scrollbar, orientation);
3216 if (AXObjectCache* cache = axObjectCache()) { 3222 if (AXObjectCache* cache = axObjectCache()) {
3217 cache->remove(scrollbar); 3223 cache->remove(scrollbar);
3218 cache->handleScrollbarUpdate(this); 3224 cache->handleScrollbarUpdate(this);
3219 } 3225 }
3220 } 3226 }
3221 3227
3222 } // namespace WebCore 3228 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | Source/core/page/PageAnimator.h » ('j') | Source/core/rendering/compositing/RenderLayerCompositor.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698