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

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

Issue 202683005: optimizing layout performance when only transform3d matrix changed by Base URL: http://src.chromium.org/blink/trunk/
Patch Set: 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
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 588 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 hMode = ScrollbarAlwaysOff; 599 hMode = ScrollbarAlwaysOff;
600 } else if (Element* viewportElement = document->viewportDefiningElement( )) { 600 } else if (Element* viewportElement = document->viewportDefiningElement( )) {
601 if (RenderObject* viewportRenderer = viewportElement->renderer()) { 601 if (RenderObject* viewportRenderer = viewportElement->renderer()) {
602 if (viewportRenderer->style()) 602 if (viewportRenderer->style())
603 applyOverflowToViewportAndSetRenderer(viewportRenderer, hMod e, vMode); 603 applyOverflowToViewportAndSetRenderer(viewportRenderer, hMod e, vMode);
604 } 604 }
605 } 605 }
606 } 606 }
607 } 607 }
608 608
609 void FrameView::updateCompositingLayersAfterStyleChange() 609 void FrameView::updateCompositingLayersAfterStyleChange(bool fast)
610 { 610 {
611 TRACE_EVENT0("webkit", "FrameView::updateCompositingLayersAfterStyleChange") ; 611 TRACE_EVENT0("webkit", "FrameView::updateCompositingLayersAfterStyleChange") ;
612 RenderView* renderView = this->renderView(); 612 RenderView* renderView = this->renderView();
613 if (!renderView) 613 if (!renderView)
614 return; 614 return;
615 615
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 626
627 // Sometimes we will change a property (for example, z-index) that will not 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 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. 629 // need to do this if a layout is not already scheduled.
630 if (!needsLayout()) 630 if (!needsLayout())
631 renderView->compositor()->updateCompositingRequirementsState(); 631 renderView->compositor()->updateCompositingRequirementsState();
632 632 CompositingUpdateType update = fast? CompositingMinUpdateAfterStyleChange: C ompositingUpdateAfterStyleChange;
633 renderView->compositor()->setNeedsCompositingUpdate(CompositingUpdateAfterSt yleChange); 633 renderView->compositor()->setNeedsCompositingUpdate(update);
634 } 634 }
635 635
636 void FrameView::updateCompositingLayersAfterLayout() 636 void FrameView::updateCompositingLayersAfterLayout()
637 { 637 {
638 TRACE_EVENT0("webkit", "FrameView::updateCompositingLayersAfterLayout"); 638 TRACE_EVENT0("webkit", "FrameView::updateCompositingLayersAfterLayout");
639 RenderView* renderView = this->renderView(); 639 RenderView* renderView = this->renderView();
640 if (!renderView) 640 if (!renderView)
641 return; 641 return;
642 642
643 // FIXME: Remove incremental compositing updates after fixing the chicken/eg g issues 643 // FIXME: Remove incremental compositing updates after fixing the chicken/eg g issues
(...skipping 2570 matching lines...) Expand 10 before | Expand all | Expand 10 after
3214 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation) 3214 void FrameView::willRemoveScrollbar(Scrollbar* scrollbar, ScrollbarOrientation o rientation)
3215 { 3215 {
3216 ScrollableArea::willRemoveScrollbar(scrollbar, orientation); 3216 ScrollableArea::willRemoveScrollbar(scrollbar, orientation);
3217 if (AXObjectCache* cache = axObjectCache()) { 3217 if (AXObjectCache* cache = axObjectCache()) {
3218 cache->remove(scrollbar); 3218 cache->remove(scrollbar);
3219 cache->handleScrollbarUpdate(this); 3219 cache->handleScrollbarUpdate(this);
3220 } 3220 }
3221 } 3221 }
3222 3222
3223 } // namespace WebCore 3223 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698