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

Side by Side Diff: Source/core/rendering/RenderView.h

Issue 190973007: Reland "Avoid layout/full-repaint on view height change if possible" (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: New CL 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) 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 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 double layoutViewportHeight() const; 200 double layoutViewportHeight() const;
201 201
202 // Suspends the LayoutState optimization. Used under transforms that cannot be represented by 202 // Suspends the LayoutState optimization. Used under transforms that cannot be represented by
203 // LayoutState (common in SVG) and when manipulating the render tree during layout in ways 203 // LayoutState (common in SVG) and when manipulating the render tree during layout in ways
204 // that can trigger repaint of a non-child (e.g. when a list item moves its list marker around). 204 // that can trigger repaint of a non-child (e.g. when a list item moves its list marker around).
205 // Note that even when disabled, LayoutState is still used to store layoutDe lta. 205 // Note that even when disabled, LayoutState is still used to store layoutDe lta.
206 // These functions may only be accessed by LayoutStateMaintainer or LayoutSt ateDisabler. 206 // These functions may only be accessed by LayoutStateMaintainer or LayoutSt ateDisabler.
207 void disableLayoutState() { m_layoutStateDisableCount++; } 207 void disableLayoutState() { m_layoutStateDisableCount++; }
208 void enableLayoutState() { ASSERT(m_layoutStateDisableCount > 0); m_layoutSt ateDisableCount--; } 208 void enableLayoutState() { ASSERT(m_layoutStateDisableCount > 0); m_layoutSt ateDisableCount--; }
209 209
210 void viewResized();
211
210 private: 212 private:
211 virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContai ner, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const OVERRIDE; 213 virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContai ner, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const OVERRIDE;
212 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj ect* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE; 214 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj ect* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE;
213 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst OVERRIDE; 215 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst OVERRIDE;
214 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const OVERRIDE; 216 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const OVERRIDE;
215 217
216 void initializeLayoutState(LayoutState&); 218 void initializeLayoutState(LayoutState&);
217 219
218 bool shouldRepaint(const LayoutRect&) const; 220 bool shouldRepaint(const LayoutRect&) const;
219 221
(...skipping 23 matching lines...) Expand all
243 void positionDialogs(); 245 void positionDialogs();
244 246
245 void pushLayoutStateForCurrentFlowThread(const RenderObject&); 247 void pushLayoutStateForCurrentFlowThread(const RenderObject&);
246 void popLayoutStateForCurrentFlowThread(); 248 void popLayoutStateForCurrentFlowThread();
247 249
248 friend class LayoutStateMaintainer; 250 friend class LayoutStateMaintainer;
249 friend class LayoutStateDisabler; 251 friend class LayoutStateDisabler;
250 252
251 bool shouldUsePrintingLayout() const; 253 bool shouldUsePrintingLayout() const;
252 254
255 bool trySimplifiedLayoutOnHeightChange();
256
253 FrameView* m_frameView; 257 FrameView* m_frameView;
254 258
255 RenderObject* m_selectionStart; 259 RenderObject* m_selectionStart;
256 RenderObject* m_selectionEnd; 260 RenderObject* m_selectionEnd;
257 261
258 int m_selectionStartPos; 262 int m_selectionStartPos;
259 int m_selectionEndPos; 263 int m_selectionEndPos;
260 264
261 int m_maximalOutlineSize; // Used to apply a fudge factor to dirty-rect chec ks on blocks/tables. 265 int m_maximalOutlineSize; // Used to apply a fudge factor to dirty-rect chec ks on blocks/tables.
262 int m_oldMaximalOutlineSize; // The fudge factor from the previous layout. 266 int m_oldMaximalOutlineSize; // The fudge factor from the previous layout.
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 { 356 {
353 m_view.enableLayoutState(); 357 m_view.enableLayoutState();
354 } 358 }
355 private: 359 private:
356 RenderView& m_view; 360 RenderView& m_view;
357 }; 361 };
358 362
359 } // namespace WebCore 363 } // namespace WebCore
360 364
361 #endif // RenderView_h 365 #endif // RenderView_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698