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

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

Issue 235933002: Defer updateCompositingRequirementsState until the compositing update (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) 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 605 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 // If we expect to update compositing after an incipient layout, don't do so here. 616 // If we expect to update compositing after an incipient layout, don't do so here.
617 if (m_doingPreLayoutStyleUpdate || layoutPending() || renderView->needsLayou t()) 617 if (m_doingPreLayoutStyleUpdate || layoutPending() || renderView->needsLayou t())
618 return; 618 return;
619 619
620 // FIXME: Remove incremental compositing updates after fixing the chicken/eg g issues 620 // FIXME: Remove incremental compositing updates after fixing the chicken/eg g issues
621 // https://code.google.com/p/chromium/issues/detail?id=343756 621 // https://code.google.com/p/chromium/issues/detail?id=343756
622 DisableCompositingQueryAsserts disabler; 622 DisableCompositingQueryAsserts disabler;
623 623
624 // This call will make sure the cached hasAcceleratedCompositing is updated from the pref 624 // This call will make sure the cached hasAcceleratedCompositing is updated from the pref
625 renderView->compositor()->cacheAcceleratedCompositingFlags(); 625 renderView->compositor()->cacheAcceleratedCompositingFlags();
626
627 // Sometimes we will change a property (for example, z-index) that will not
628 // cause a layout, but will require us to update compositing state. We only
629 // need to do this if a layout is not already scheduled.
630 if (!needsLayout())
631 renderView->compositor()->updateCompositingRequirementsState();
632
633 renderView->compositor()->setNeedsCompositingUpdate(CompositingUpdateAfterSt yleChange); 626 renderView->compositor()->setNeedsCompositingUpdate(CompositingUpdateAfterSt yleChange);
634 } 627 }
635 628
636 void FrameView::updateCompositingLayersAfterLayout() 629 void FrameView::updateCompositingLayersAfterLayout()
637 { 630 {
638 TRACE_EVENT0("webkit", "FrameView::updateCompositingLayersAfterLayout"); 631 TRACE_EVENT0("webkit", "FrameView::updateCompositingLayersAfterLayout");
639 RenderView* renderView = this->renderView(); 632 RenderView* renderView = this->renderView();
640 if (!renderView) 633 if (!renderView)
641 return; 634 return;
642 635
643 // FIXME: Remove incremental compositing updates after fixing the chicken/eg g issues 636 // FIXME: Remove incremental compositing updates after fixing the chicken/eg g issues
644 // https://code.google.com/p/chromium/issues/detail?id=343756 637 // https://code.google.com/p/chromium/issues/detail?id=343756
645 DisableCompositingQueryAsserts disabler; 638 DisableCompositingQueryAsserts disabler;
646 639
647 // This call will make sure the cached hasAcceleratedCompositing is updated from the pref 640 // This call will make sure the cached hasAcceleratedCompositing is updated from the pref
648 renderView->compositor()->cacheAcceleratedCompositingFlags(); 641 renderView->compositor()->cacheAcceleratedCompositingFlags();
649 renderView->compositor()->updateCompositingRequirementsState();
650 renderView->compositor()->setNeedsCompositingUpdate(CompositingUpdateAfterLa yout); 642 renderView->compositor()->setNeedsCompositingUpdate(CompositingUpdateAfterLa yout);
651 } 643 }
652 644
653 bool FrameView::usesCompositedScrolling() const 645 bool FrameView::usesCompositedScrolling() const
654 { 646 {
655 RenderView* renderView = this->renderView(); 647 RenderView* renderView = this->renderView();
656 if (!renderView) 648 if (!renderView)
657 return false; 649 return false;
658 if (m_frame->settings() && m_frame->settings()->compositedScrollingForFrames Enabled()) 650 if (m_frame->settings() && m_frame->settings()->compositedScrollingForFrames Enabled())
659 return renderView->compositor()->inForcedCompositingMode(); 651 return renderView->compositor()->inForcedCompositingMode();
(...skipping 2567 matching lines...) Expand 10 before | Expand all | Expand 10 after
3227 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation) 3219 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation)
3228 { 3220 {
3229 ScrollableArea::willRemoveScrollbar(scrollbar, orientation); 3221 ScrollableArea::willRemoveScrollbar(scrollbar, orientation);
3230 if (AXObjectCache* cache = axObjectCache()) { 3222 if (AXObjectCache* cache = axObjectCache()) {
3231 cache->remove(scrollbar); 3223 cache->remove(scrollbar);
3232 cache->handleScrollbarUpdate(this); 3224 cache->handleScrollbarUpdate(this);
3233 } 3225 }
3234 } 3226 }
3235 3227
3236 } // namespace WebCore 3228 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698