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

Side by Side Diff: Source/core/layout/LayoutView.h

Issue 1231363003: Fix virtual/override/final usage in Source/core/layout/. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 5 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 | « Source/core/layout/LayoutVideo.h ('k') | Source/core/layout/LayoutWordBreak.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2006 Apple Computer, Inc. 3 * Copyright (C) 2006 Apple Computer, Inc.
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 class DeprecatedPaintLayerCompositor; 42 class DeprecatedPaintLayerCompositor;
43 class LayoutQuote; 43 class LayoutQuote;
44 44
45 // The root of the layout tree, corresponding to the CSS initial containing bloc k. 45 // The root of the layout tree, corresponding to the CSS initial containing bloc k.
46 // It's dimensions match that of the logical viewport (which may be different fr om 46 // It's dimensions match that of the logical viewport (which may be different fr om
47 // the visible viewport in fixed-layout mode), and it is always at position (0,0 ) 47 // the visible viewport in fixed-layout mode), and it is always at position (0,0 )
48 // relative to the document (and so isn't necessarily in view). 48 // relative to the document (and so isn't necessarily in view).
49 class CORE_EXPORT LayoutView final : public LayoutBlockFlow { 49 class CORE_EXPORT LayoutView final : public LayoutBlockFlow {
50 public: 50 public:
51 explicit LayoutView(Document*); 51 explicit LayoutView(Document*);
52 virtual ~LayoutView(); 52 ~LayoutView() override;
53 void willBeDestroyed() override; 53 void willBeDestroyed() override;
54 54
55 // hitTest() will update layout, style and compositing first while hitTestNo LifecycleUpdate() does not. 55 // hitTest() will update layout, style and compositing first while hitTestNo LifecycleUpdate() does not.
56 bool hitTest(HitTestResult&); 56 bool hitTest(HitTestResult&);
57 bool hitTestNoLifecycleUpdate(HitTestResult&); 57 bool hitTestNoLifecycleUpdate(HitTestResult&);
58 58
59 // Returns the total count of calls to HitTest, for testing. 59 // Returns the total count of calls to HitTest, for testing.
60 unsigned hitTestCount() const { return m_hitTestCount; } 60 unsigned hitTestCount() const { return m_hitTestCount; }
61 unsigned hitTestCacheHits() const { return m_hitTestCacheHits; } 61 unsigned hitTestCacheHits() const { return m_hitTestCacheHits; }
62 62
63 void clearHitTestCache() { m_hitTestCache->clear(); } 63 void clearHitTestCache() { m_hitTestCache->clear(); }
64 64
65 virtual const char* name() const override { return "LayoutView"; } 65 const char* name() const override { return "LayoutView"; }
66 66
67 virtual bool isOfType(LayoutObjectType type) const override { return type == LayoutObjectLayoutView || LayoutBlockFlow::isOfType(type); } 67 bool isOfType(LayoutObjectType type) const override { return type == LayoutO bjectLayoutView || LayoutBlockFlow::isOfType(type); }
68 68
69 virtual DeprecatedPaintLayerType layerTypeRequired() const override { return NormalDeprecatedPaintLayer; } 69 DeprecatedPaintLayerType layerTypeRequired() const override { return NormalD eprecatedPaintLayer; }
70 70
71 virtual bool isChildAllowed(LayoutObject*, const ComputedStyle&) const overr ide; 71 bool isChildAllowed(LayoutObject*, const ComputedStyle&) const override;
72 72
73 virtual void layout() override; 73 void layout() override;
74 virtual void updateLogicalWidth() override; 74 void updateLogicalWidth() override;
75 virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logic alTop, LogicalExtentComputedValues&) const override; 75 void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, L ogicalExtentComputedValues&) const override;
76 76
77 // Based on FrameView::layoutSize, but: 77 // Based on FrameView::layoutSize, but:
78 // - checks for null FrameView 78 // - checks for null FrameView
79 // - returns 0x0 if using printing layout 79 // - returns 0x0 if using printing layout
80 // - scrollbar exclusion is compatible with root layer scrolling 80 // - scrollbar exclusion is compatible with root layer scrolling
81 IntSize layoutSize(IncludeScrollbarsInRect = ExcludeScrollbars) const; 81 IntSize layoutSize(IncludeScrollbarsInRect = ExcludeScrollbars) const;
82 82
83 int viewHeight(IncludeScrollbarsInRect scrollbarInclusion = ExcludeScrollbar s) const { return layoutSize(scrollbarInclusion).height(); } 83 int viewHeight(IncludeScrollbarsInRect scrollbarInclusion = ExcludeScrollbar s) const { return layoutSize(scrollbarInclusion).height(); }
84 int viewWidth(IncludeScrollbarsInRect scrollbarInclusion = ExcludeScrollbars ) const { return layoutSize(scrollbarInclusion).width(); } 84 int viewWidth(IncludeScrollbarsInRect scrollbarInclusion = ExcludeScrollbars ) const { return layoutSize(scrollbarInclusion).width(); }
85 85
86 int viewLogicalWidth(IncludeScrollbarsInRect = ExcludeScrollbars) const; 86 int viewLogicalWidth(IncludeScrollbarsInRect = ExcludeScrollbars) const;
87 int viewLogicalHeight(IncludeScrollbarsInRect = ExcludeScrollbars) const; 87 int viewLogicalHeight(IncludeScrollbarsInRect = ExcludeScrollbars) const;
88 88
89 LayoutUnit viewLogicalHeightForPercentages() const; 89 LayoutUnit viewLogicalHeightForPercentages() const;
90 90
91 float zoomFactor() const; 91 float zoomFactor() const;
92 92
93 FrameView* frameView() const { return m_frameView; } 93 FrameView* frameView() const { return m_frameView; }
94 94
95 enum ViewportConstrainedPosition { 95 enum ViewportConstrainedPosition {
96 IsNotFixedPosition, 96 IsNotFixedPosition,
97 IsFixedPosition, 97 IsFixedPosition,
98 }; 98 };
99 99
100 static ViewportConstrainedPosition viewportConstrainedPosition(EPosition pos ition) { return position == FixedPosition ? IsFixedPosition : IsNotFixedPosition ; } 100 static ViewportConstrainedPosition viewportConstrainedPosition(EPosition pos ition) { return position == FixedPosition ? IsFixedPosition : IsNotFixedPosition ; }
101 void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* paintInva lidationContainer, LayoutRect&, ViewportConstrainedPosition, const PaintInvalida tionState*) const; 101 void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* paintInva lidationContainer, LayoutRect&, ViewportConstrainedPosition, const PaintInvalida tionState*) const;
102 virtual void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* p aintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const ove rride; 102 void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* paintInva lidationContainer, LayoutRect&, const PaintInvalidationState*) const override;
103 void adjustViewportConstrainedOffset(LayoutRect&, ViewportConstrainedPositio n) const; 103 void adjustViewportConstrainedOffset(LayoutRect&, ViewportConstrainedPositio n) const;
104 104
105 void invalidatePaintForRectangle(const LayoutRect&, PaintInvalidationReason) const; 105 void invalidatePaintForRectangle(const LayoutRect&, PaintInvalidationReason) const;
106 106
107 void invalidatePaintForViewAndCompositedLayers(); 107 void invalidatePaintForViewAndCompositedLayers();
108 108
109 virtual void paint(const PaintInfo&, const LayoutPoint&) override; 109 void paint(const PaintInfo&, const LayoutPoint&) override;
110 virtual void paintBoxDecorationBackground(const PaintInfo&, const LayoutPoin t&) override; 110 void paintBoxDecorationBackground(const PaintInfo&, const LayoutPoint&) over ride;
111 111
112 enum SelectionPaintInvalidationMode { PaintInvalidationNewXOROld, PaintInval idationNewMinusOld }; 112 enum SelectionPaintInvalidationMode { PaintInvalidationNewXOROld, PaintInval idationNewMinusOld };
113 void setSelection(LayoutObject* start, int startPos, LayoutObject*, int endP os, SelectionPaintInvalidationMode = PaintInvalidationNewXOROld); 113 void setSelection(LayoutObject* start, int startPos, LayoutObject*, int endP os, SelectionPaintInvalidationMode = PaintInvalidationNewXOROld);
114 void clearSelection(); 114 void clearSelection();
115 void setSelection(const FrameSelection&); 115 void setSelection(const FrameSelection&);
116 bool hasPendingSelection() const { return m_pendingSelection->hasPendingSele ction(); } 116 bool hasPendingSelection() const { return m_pendingSelection->hasPendingSele ction(); }
117 void commitPendingSelection(); 117 void commitPendingSelection();
118 LayoutObject* selectionStart(); 118 LayoutObject* selectionStart();
119 LayoutObject* selectionEnd(); 119 LayoutObject* selectionEnd();
120 IntRect selectionBounds(); 120 IntRect selectionBounds();
121 void selectionStartEnd(int& startPos, int& endPos); 121 void selectionStartEnd(int& startPos, int& endPos);
122 void invalidatePaintForSelection(); 122 void invalidatePaintForSelection();
123 123
124 virtual void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedO ffset) const override; 124 void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) c onst override;
125 virtual void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const overrid e; 125 void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override;
126 126
127 virtual LayoutRect viewRect() const override; 127 LayoutRect viewRect() const override;
128 128
129 bool shouldDoFullPaintInvalidationForNextLayout() const; 129 bool shouldDoFullPaintInvalidationForNextLayout() const;
130 bool doingFullPaintInvalidation() const { return m_frameView->needsFullPaint Invalidation(); } 130 bool doingFullPaintInvalidation() const { return m_frameView->needsFullPaint Invalidation(); }
131 131
132 LayoutState* layoutState() const { return m_layoutState; } 132 LayoutState* layoutState() const { return m_layoutState; }
133 133
134 virtual void updateHitTestResult(HitTestResult&, const LayoutPoint&) overrid e; 134 void updateHitTestResult(HitTestResult&, const LayoutPoint&) override;
135 135
136 LayoutUnit pageLogicalHeight() const { return m_pageLogicalHeight; } 136 LayoutUnit pageLogicalHeight() const { return m_pageLogicalHeight; }
137 void setPageLogicalHeight(LayoutUnit height) 137 void setPageLogicalHeight(LayoutUnit height)
138 { 138 {
139 if (m_pageLogicalHeight != height) { 139 if (m_pageLogicalHeight != height) {
140 m_pageLogicalHeight = height; 140 m_pageLogicalHeight = height;
141 m_pageLogicalHeightChanged = true; 141 m_pageLogicalHeightChanged = true;
142 } 142 }
143 } 143 }
144 bool pageLogicalHeightChanged() const { return m_pageLogicalHeightChanged; } 144 bool pageLogicalHeightChanged() const { return m_pageLogicalHeightChanged; }
(...skipping 20 matching lines...) Expand all
165 LayoutQuote* layoutQuoteHead() const { return m_layoutQuoteHead; } 165 LayoutQuote* layoutQuoteHead() const { return m_layoutQuoteHead; }
166 166
167 // FIXME: This is a work around because the current implementation of counte rs 167 // FIXME: This is a work around because the current implementation of counte rs
168 // requires walking the entire tree repeatedly and most pages don't actually use either 168 // requires walking the entire tree repeatedly and most pages don't actually use either
169 // feature so we shouldn't take the performance hit when not needed. Long te rm we should 169 // feature so we shouldn't take the performance hit when not needed. Long te rm we should
170 // rewrite the counter and quotes code. 170 // rewrite the counter and quotes code.
171 void addLayoutCounter() { m_layoutCounterCount++; } 171 void addLayoutCounter() { m_layoutCounterCount++; }
172 void removeLayoutCounter() { ASSERT(m_layoutCounterCount > 0); m_layoutCount erCount--; } 172 void removeLayoutCounter() { ASSERT(m_layoutCounterCount > 0); m_layoutCount erCount--; }
173 bool hasLayoutCounters() { return m_layoutCounterCount; } 173 bool hasLayoutCounters() { return m_layoutCounterCount; }
174 174
175 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect) const override; 175 bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect) const ov erride;
176 176
177 double layoutViewportWidth() const; 177 double layoutViewportWidth() const;
178 double layoutViewportHeight() const; 178 double layoutViewportHeight() const;
179 179
180 void pushLayoutState(LayoutState& layoutState) { m_layoutState = &layoutStat e; } 180 void pushLayoutState(LayoutState& layoutState) { m_layoutState = &layoutStat e; }
181 void popLayoutState() { ASSERT(m_layoutState); m_layoutState = m_layoutState ->next(); } 181 void popLayoutState() { ASSERT(m_layoutState); m_layoutState = m_layoutState ->next(); }
182 virtual void invalidateTreeIfNeeded(PaintInvalidationState&) override final; 182 void invalidateTreeIfNeeded(PaintInvalidationState&) final;
183 183
184 virtual LayoutRect visualOverflowRect() const override; 184 LayoutRect visualOverflowRect() const override;
185 185
186 // Invalidates paint for the entire view, including composited descendants, but not including child frames. 186 // Invalidates paint for the entire view, including composited descendants, but not including child frames.
187 // It is very likely you do not want to call this method. 187 // It is very likely you do not want to call this method.
188 void setShouldDoFullPaintInvalidationForViewAndAllDescendants(); 188 void setShouldDoFullPaintInvalidationForViewAndAllDescendants();
189 189
190 private: 190 private:
191 virtual void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidati onContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wa sFixed = nullptr, const PaintInvalidationState* = nullptr) const override; 191 void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidationContai ner, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = nullptr, const PaintInvalidationState* = nullptr) const override;
192 192
193 template <typename Strategy> 193 template <typename Strategy>
194 void commitPendingSelectionAlgorithm(); 194 void commitPendingSelectionAlgorithm();
195 195
196 virtual const LayoutObject* pushMappingToContainer(const LayoutBoxModelObjec t* ancestorToStopAt, LayoutGeometryMap&) const override; 196 const LayoutObject* pushMappingToContainer(const LayoutBoxModelObject* ances torToStopAt, LayoutGeometryMap&) const override;
197 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst override; 197 void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const ove rride;
198 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const override; 198 void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOf fset) const override;
199 199
200 void layoutContent(); 200 void layoutContent();
201 #if ENABLE(ASSERT) 201 #if ENABLE(ASSERT)
202 void checkLayoutState(); 202 void checkLayoutState();
203 #endif 203 #endif
204 204
205 friend class ForceHorriblySlowRectMapping; 205 friend class ForceHorriblySlowRectMapping;
206 206
207 bool shouldUsePrintingLayout() const; 207 bool shouldUsePrintingLayout() const;
208 208
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 m_paintInvalidationState->m_cachedOffsetsEnabled = true; 257 m_paintInvalidationState->m_cachedOffsetsEnabled = true;
258 } 258 }
259 private: 259 private:
260 const PaintInvalidationState* m_paintInvalidationState; 260 const PaintInvalidationState* m_paintInvalidationState;
261 bool m_didDisable; 261 bool m_didDisable;
262 }; 262 };
263 263
264 } // namespace blink 264 } // namespace blink
265 265
266 #endif // LayoutView_h 266 #endif // LayoutView_h
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutVideo.h ('k') | Source/core/layout/LayoutWordBreak.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698