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

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

Issue 1117753003: Fix under-invalidation about view background change caused by body style change (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 7 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) 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 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 } 135 }
136 bool pageLogicalHeightChanged() const { return m_pageLogicalHeightChanged; } 136 bool pageLogicalHeightChanged() const { return m_pageLogicalHeightChanged; }
137 137
138 // Notification that this view moved into or out of a native window. 138 // Notification that this view moved into or out of a native window.
139 void setIsInWindow(bool); 139 void setIsInWindow(bool);
140 140
141 DeprecatedPaintLayerCompositor* compositor(); 141 DeprecatedPaintLayerCompositor* compositor();
142 bool usesCompositing() const; 142 bool usesCompositing() const;
143 143
144 IntRect unscaledDocumentRect() const; 144 IntRect unscaledDocumentRect() const;
145 LayoutRect backgroundRect(LayoutBox* backgroundRenderer) const; 145 LayoutRect backgroundRect(LayoutBox* backgroundLayoutObject) const;
146 146
147 IntRect documentRect() const; 147 IntRect documentRect() const;
148 148
149 // Renderer that paints the root background has background-images which all have background-attachment: fixed. 149 // Renderer that paints the root background has background-images which all have background-attachment: fixed.
150 bool rootBackgroundIsEntirelyFixed() const; 150 bool rootBackgroundIsEntirelyFixed() const;
151 151
152 IntervalArena* intervalArena(); 152 IntervalArena* intervalArena();
153 153
154 void setLayoutQuoteHead(LayoutQuote* head) { m_layoutQuoteHead = head; } 154 void setLayoutQuoteHead(LayoutQuote* head) { m_layoutQuoteHead = head; }
155 LayoutQuote* layoutQuoteHead() const { return m_layoutQuoteHead; } 155 LayoutQuote* layoutQuoteHead() const { return m_layoutQuoteHead; }
156 156
157 // FIXME: This is a work around because the current implementation of counte rs 157 // FIXME: This is a work around because the current implementation of counte rs
158 // requires walking the entire tree repeatedly and most pages don't actually use either 158 // requires walking the entire tree repeatedly and most pages don't actually use either
159 // feature so we shouldn't take the performance hit when not needed. Long te rm we should 159 // feature so we shouldn't take the performance hit when not needed. Long te rm we should
160 // rewrite the counter and quotes code. 160 // rewrite the counter and quotes code.
161 void addLayoutCounter() { m_layoutCounterCount++; } 161 void addLayoutCounter() { m_layoutCounterCount++; }
162 void removeLayoutCounter() { ASSERT(m_layoutCounterCount > 0); m_layoutCount erCount--; } 162 void removeLayoutCounter() { ASSERT(m_layoutCounterCount > 0); m_layoutCount erCount--; }
163 bool hasLayoutCounters() { return m_layoutCounterCount; } 163 bool hasLayoutCounters() { return m_layoutCounterCount; }
164 164
165 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect) const override; 165 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect& localRect) const override;
166 166
167 double layoutViewportWidth() const; 167 double layoutViewportWidth() const;
168 double layoutViewportHeight() const; 168 double layoutViewportHeight() const;
169 169
170 void pushLayoutState(LayoutState& layoutState) { m_layoutState = &layoutStat e; } 170 void pushLayoutState(LayoutState& layoutState) { m_layoutState = &layoutStat e; }
171 void popLayoutState() { ASSERT(m_layoutState); m_layoutState = m_layoutState ->next(); } 171 void popLayoutState() { ASSERT(m_layoutState); m_layoutState = m_layoutState ->next(); }
172 virtual void invalidateTreeIfNeeded(PaintInvalidationState&) override final; 172 virtual void invalidateTreeIfNeeded(PaintInvalidationState&) override final;
173 173
174 LayoutObject* backgroundLayoutObject() const;
175
174 private: 176 private:
175 virtual void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidati onContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wa sFixed = 0, const PaintInvalidationState* = 0) const override; 177 virtual void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidati onContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wa sFixed = 0, const PaintInvalidationState* = 0) const override;
176 virtual const LayoutObject* pushMappingToContainer(const LayoutBoxModelObjec t* ancestorToStopAt, LayoutGeometryMap&) const override; 178 virtual const LayoutObject* pushMappingToContainer(const LayoutBoxModelObjec t* ancestorToStopAt, LayoutGeometryMap&) const override;
177 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst override; 179 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst override;
178 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const override; 180 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const override;
179 181
180 void layoutContent(); 182 void layoutContent();
181 #if ENABLE(ASSERT) 183 #if ENABLE(ASSERT)
182 void checkLayoutState(); 184 void checkLayoutState();
183 #endif 185 #endif
184 186
185 friend class ForceHorriblySlowRectMapping; 187 friend class ForceHorriblySlowRectMapping;
186 188
187 bool shouldUsePrintingLayout() const; 189 bool shouldUsePrintingLayout() const;
188 190
189 LayoutObject* backgroundRenderer() const;
190
191 FrameView* m_frameView; 191 FrameView* m_frameView;
192 192
193 LayoutObject* m_selectionStart; 193 LayoutObject* m_selectionStart;
194 LayoutObject* m_selectionEnd; 194 LayoutObject* m_selectionEnd;
195 195
196 int m_selectionStartPos; 196 int m_selectionStartPos;
197 int m_selectionEndPos; 197 int m_selectionEndPos;
198 198
199 LayoutUnit m_pageLogicalHeight; 199 LayoutUnit m_pageLogicalHeight;
200 bool m_pageLogicalHeightChanged; 200 bool m_pageLogicalHeightChanged;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 m_paintInvalidationState->m_cachedOffsetsEnabled = true; 234 m_paintInvalidationState->m_cachedOffsetsEnabled = true;
235 } 235 }
236 private: 236 private:
237 const PaintInvalidationState* m_paintInvalidationState; 237 const PaintInvalidationState* m_paintInvalidationState;
238 bool m_didDisable; 238 bool m_didDisable;
239 }; 239 };
240 240
241 } // namespace blink 241 } // namespace blink
242 242
243 #endif // LayoutView_h 243 #endif // LayoutView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698