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

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

Issue 204813002: Optimize layout/repaint on FrameView resize (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Is it better to let layout fully control what to repaint? 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
« no previous file with comments | « no previous file | Source/core/frame/FrameView.cpp » ('j') | Source/core/frame/FrameView.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 Copyright (C) 1997 Martin Jones (mjones@kde.org) 2 Copyright (C) 1997 Martin Jones (mjones@kde.org)
3 (C) 1998 Waldo Bastian (bastian@kde.org) 3 (C) 1998 Waldo Bastian (bastian@kde.org)
4 (C) 1998, 1999 Torben Weis (weis@kde.org) 4 (C) 1998, 1999 Torben Weis (weis@kde.org)
5 (C) 1999 Lars Knoll (knoll@kde.org) 5 (C) 1999 Lars Knoll (knoll@kde.org)
6 (C) 1999 Antti Koivisto (koivisto@kde.org) 6 (C) 1999 Antti Koivisto (koivisto@kde.org)
7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed. 7 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv ed.
8 8
9 This library is free software; you can redistribute it and/or 9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Library General Public 10 modify it under the terms of the GNU Library General Public
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 94
95 void setCanRepaintDuringPerformLayout(bool b) { m_canRepaintDuringPerformLay out = b; } 95 void setCanRepaintDuringPerformLayout(bool b) { m_canRepaintDuringPerformLay out = b; }
96 bool canRepaintDuringPerformLayout() const { return m_canRepaintDuringPerfor mLayout; } 96 bool canRepaintDuringPerformLayout() const { return m_canRepaintDuringPerfor mLayout; }
97 97
98 RenderObject* layoutRoot(bool onlyDuringLayout = false) const; 98 RenderObject* layoutRoot(bool onlyDuringLayout = false) const;
99 void clearLayoutSubtreeRoot() { m_layoutSubtreeRoot = 0; } 99 void clearLayoutSubtreeRoot() { m_layoutSubtreeRoot = 0; }
100 int layoutCount() const { return m_layoutCount; } 100 int layoutCount() const { return m_layoutCount; }
101 101
102 bool needsLayout() const; 102 bool needsLayout() const;
103 void setNeedsLayout(); 103 void setNeedsLayout();
104 void setNeedsResizeLayout();
104 105
105 // Methods for getting/setting the size Blink should use to layout the conte nts. 106 // Methods for getting/setting the size Blink should use to layout the conte nts.
106 IntSize layoutSize(IncludeScrollbarsInRect = ExcludeScrollbars) const; 107 IntSize layoutSize(IncludeScrollbarsInRect = ExcludeScrollbars) const;
107 void setLayoutSize(const IntSize&); 108 void setLayoutSize(const IntSize&);
108 109
109 // If this is set to false, the layout size will need to be explicitly set b y the owner. 110 // If this is set to false, the layout size will need to be explicitly set b y the owner.
110 // E.g. WebViewImpl sets its mainFrame's layout size manually 111 // E.g. WebViewImpl sets its mainFrame's layout size manually
111 void setLayoutSizeFixedToFrameSize(bool isFixed) { m_layoutSizeFixedToFrameS ize = isFixed; } 112 void setLayoutSizeFixedToFrameSize(bool isFixed) { m_layoutSizeFixedToFrameS ize = isFixed; }
112 bool layoutSizeFixedToFrameSize() { return m_layoutSizeFixedToFrameSize; } 113 bool layoutSizeFixedToFrameSize() { return m_layoutSizeFixedToFrameSize; }
113 114
114 bool needsFullRepaint() const { return m_doFullRepaint; }
115
116 void updateCompositingLayersAfterStyleChange(); 115 void updateCompositingLayersAfterStyleChange();
117 void updateCompositingLayersAfterLayout(); 116 void updateCompositingLayersAfterLayout();
118 117
119 bool hasCompositedContent() const; 118 bool hasCompositedContent() const;
120 bool isEnclosedInCompositingLayer() const; 119 bool isEnclosedInCompositingLayer() const;
121 120
122 void resetScrollbars(); 121 void resetScrollbars();
123 void prepareForDetach(); 122 void prepareForDetach();
124 void detachCustomScrollbars(); 123 void detachCustomScrollbars();
125 virtual void recalculateScrollbarOverlayStyle(); 124 virtual void recalculateScrollbarOverlayStyle();
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 void flushAnyPendingPostLayoutTasks(); 257 void flushAnyPendingPostLayoutTasks();
259 258
260 virtual bool shouldSuspendScrollAnimations() const OVERRIDE; 259 virtual bool shouldSuspendScrollAnimations() const OVERRIDE;
261 virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE; 260 virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE;
262 261
263 RenderBox* embeddedContentBox() const; 262 RenderBox* embeddedContentBox() const;
264 263
265 void setTracksRepaints(bool); 264 void setTracksRepaints(bool);
266 bool isTrackingRepaints() const { return m_isTrackingRepaints; } 265 bool isTrackingRepaints() const { return m_isTrackingRepaints; }
267 void resetTrackedRepaints(); 266 void resetTrackedRepaints();
267 const Vector<IntRect>& trackedRepaintRects() const { return m_trackedRepaint Rects; }
dsinclair 2014/03/20 10:41:41 This seems unrelated to the current cl?
Xianzhu 2014/03/20 17:47:43 The new unit test needs it.
268 String trackedRepaintRectsAsText() const; 268 String trackedRepaintRectsAsText() const;
269 269
270 typedef HashSet<ScrollableArea*> ScrollableAreaSet; 270 typedef HashSet<ScrollableArea*> ScrollableAreaSet;
271 // Returns whether the scrollable area has just been newly added. 271 // Returns whether the scrollable area has just been newly added.
272 bool addScrollableArea(ScrollableArea*); 272 bool addScrollableArea(ScrollableArea*);
273 // Returns whether the scrollable area has just been removed. 273 // Returns whether the scrollable area has just been removed.
274 bool removeScrollableArea(ScrollableArea*); 274 bool removeScrollableArea(ScrollableArea*);
275 bool containsScrollableArea(const ScrollableArea*) const; 275 bool containsScrollableArea(const ScrollableArea*) const;
276 const ScrollableAreaSet* scrollableAreas() const { return m_scrollableAreas. get(); } 276 const ScrollableAreaSet* scrollableAreas() const { return m_scrollableAreas. get(); }
277 277
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 LayoutSize m_size; 422 LayoutSize m_size;
423 423
424 typedef HashSet<RefPtr<RenderEmbeddedObject> > EmbeddedObjectSet; 424 typedef HashSet<RefPtr<RenderEmbeddedObject> > EmbeddedObjectSet;
425 EmbeddedObjectSet m_widgetUpdateSet; 425 EmbeddedObjectSet m_widgetUpdateSet;
426 426
427 // FIXME: These are just "children" of the FrameView and should be RefPtr<Wi dget> instead. 427 // FIXME: These are just "children" of the FrameView and should be RefPtr<Wi dget> instead.
428 HashSet<RefPtr<RenderWidget> > m_widgets; 428 HashSet<RefPtr<RenderWidget> > m_widgets;
429 429
430 RefPtr<LocalFrame> m_frame; 430 RefPtr<LocalFrame> m_frame;
431 431
432 bool m_doFullRepaint;
433
434 bool m_canHaveScrollbars; 432 bool m_canHaveScrollbars;
435 bool m_cannotBlitToWindow; 433 bool m_cannotBlitToWindow;
436 bool m_isOverlapped; 434 bool m_isOverlapped;
437 bool m_contentIsOpaque; 435 bool m_contentIsOpaque;
438 unsigned m_slowRepaintObjectCount; 436 unsigned m_slowRepaintObjectCount;
439 437
440 bool m_hasPendingLayout; 438 bool m_hasPendingLayout;
441 RenderObject* m_layoutSubtreeRoot; 439 RenderObject* m_layoutSubtreeRoot;
442 440
443 bool m_layoutSchedulingEnabled; 441 bool m_layoutSchedulingEnabled;
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 m_view->setCanRepaintDuringPerformLayout(m_originalValue); 559 m_view->setCanRepaintDuringPerformLayout(m_originalValue);
562 } 560 }
563 private: 561 private:
564 FrameView* m_view; 562 FrameView* m_view;
565 bool m_originalValue; 563 bool m_originalValue;
566 }; 564 };
567 565
568 } // namespace WebCore 566 } // namespace WebCore
569 567
570 #endif // FrameView_h 568 #endif // FrameView_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/frame/FrameView.cpp » ('j') | Source/core/frame/FrameView.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698