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

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

Issue 148823002: *** DO NOT LAND *** Measure the size and complexity of the old multicol implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 10 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
« no previous file with comments | « Source/core/rendering/RenderText.cpp ('k') | Source/core/rendering/RenderView.cpp » ('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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 virtual LayerType layerTypeRequired() const OVERRIDE { return NormalLayer; } 54 virtual LayerType layerTypeRequired() const OVERRIDE { return NormalLayer; }
55 55
56 virtual bool isChildAllowed(RenderObject*, RenderStyle*) const OVERRIDE; 56 virtual bool isChildAllowed(RenderObject*, RenderStyle*) const OVERRIDE;
57 57
58 virtual void layout() OVERRIDE; 58 virtual void layout() OVERRIDE;
59 virtual void updateLogicalWidth() OVERRIDE; 59 virtual void updateLogicalWidth() OVERRIDE;
60 virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logic alTop, LogicalExtentComputedValues&) const OVERRIDE; 60 virtual void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logic alTop, LogicalExtentComputedValues&) const OVERRIDE;
61 61
62 virtual bool supportsPartialLayout() const OVERRIDE { return true; } 62 virtual bool supportsPartialLayout() const OVERRIDE { return true; }
63 63
64 virtual LayoutUnit availableLogicalHeight(AvailableLogicalHeightType) const OVERRIDE;
65
66 // The same as the FrameView's layoutHeight/layoutWidth but with null check guards. 64 // The same as the FrameView's layoutHeight/layoutWidth but with null check guards.
67 int viewHeight(ScrollableArea::IncludeScrollbarsInRect scrollbarInclusion = ScrollableArea::ExcludeScrollbars) const; 65 int viewHeight(ScrollableArea::IncludeScrollbarsInRect scrollbarInclusion = ScrollableArea::ExcludeScrollbars) const;
68 int viewWidth(ScrollableArea::IncludeScrollbarsInRect scrollbarInclusion = S crollableArea::ExcludeScrollbars) const; 66 int viewWidth(ScrollableArea::IncludeScrollbarsInRect scrollbarInclusion = S crollableArea::ExcludeScrollbars) const;
69 int viewLogicalWidth(ScrollableArea::IncludeScrollbarsInRect scrollbarInclus ion = ScrollableArea::ExcludeScrollbars) const 67 int viewLogicalWidth(ScrollableArea::IncludeScrollbarsInRect scrollbarInclus ion = ScrollableArea::ExcludeScrollbars) const
70 { 68 {
71 return style()->isHorizontalWritingMode() ? viewWidth(scrollbarInclusion ) : viewHeight(scrollbarInclusion); 69 return style()->isHorizontalWritingMode() ? viewWidth(scrollbarInclusion ) : viewHeight(scrollbarInclusion);
72 } 70 }
73 int viewLogicalHeight(ScrollableArea::IncludeScrollbarsInRect scrollbarInclu sion = ScrollableArea::ExcludeScrollbars) const; 71 int viewLogicalHeight(ScrollableArea::IncludeScrollbarsInRect scrollbarInclu sion = ScrollableArea::ExcludeScrollbars) const;
74 72
75 float zoomFactor() const; 73 float zoomFactor() const;
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 200
203 private: 201 private:
204 virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContai ner, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const OVERRIDE; 202 virtual void mapLocalToContainer(const RenderLayerModelObject* repaintContai ner, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0) const OVERRIDE;
205 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj ect* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE; 203 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj ect* ancestorToStopAt, RenderGeometryMap&) const OVERRIDE;
206 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst OVERRIDE; 204 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst OVERRIDE;
207 virtual bool requiresColumns(int desiredColumnCount) const OVERRIDE; 205 virtual bool requiresColumns(int desiredColumnCount) const OVERRIDE;
208 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const OVERRIDE; 206 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const OVERRIDE;
209 207
210 void initializeLayoutState(LayoutState&); 208 void initializeLayoutState(LayoutState&);
211 209
212 virtual void calcColumnWidth() OVERRIDE;
213 virtual ColumnInfo::PaginationUnit paginationUnit() const OVERRIDE;
214
215 bool shouldRepaint(const LayoutRect&) const; 210 bool shouldRepaint(const LayoutRect&) const;
216 211
217 // These functions may only be accessed by LayoutStateMaintainer. 212 // These functions may only be accessed by LayoutStateMaintainer.
218 bool pushLayoutState(RenderBox* renderer, const LayoutSize& offset, LayoutUn it pageHeight = 0, bool pageHeightChanged = false, ColumnInfo* colInfo = 0) 213 bool pushLayoutState(RenderBox* renderer, const LayoutSize& offset, LayoutUn it pageHeight = 0, bool pageHeightChanged = false)
219 { 214 {
220 // We push LayoutState even if layoutState is disabled because it stores layoutDelta too. 215 // We push LayoutState even if layoutState is disabled because it stores layoutDelta too.
221 if (!doingFullRepaint() || m_layoutState->isPaginated() || renderer->has Columns() || renderer->flowThreadContainingBlock() 216 if (!doingFullRepaint() || m_layoutState->isPaginated() || renderer->flo wThreadContainingBlock()
222 || m_layoutState->lineGrid() || (renderer->style()->lineGrid() != Re nderStyle::initialLineGrid() && renderer->isRenderBlockFlow()) 217 || m_layoutState->lineGrid() || (renderer->style()->lineGrid() != Re nderStyle::initialLineGrid() && renderer->isRenderBlockFlow())
223 || (renderer->isRenderBlock() && toRenderBlock(renderer)->shapeInsid eInfo()) 218 || (renderer->isRenderBlock() && toRenderBlock(renderer)->shapeInsid eInfo())
224 || (m_layoutState->shapeInsideInfo() && renderer->isRenderBlock() && !toRenderBlock(renderer)->allowsShapeInsideInfoSharing(m_layoutState->shapeInsi deInfo()->owner())) 219 || (m_layoutState->shapeInsideInfo() && renderer->isRenderBlock() && !toRenderBlock(renderer)->allowsShapeInsideInfoSharing(m_layoutState->shapeInsi deInfo()->owner()))
225 ) { 220 ) {
226 pushLayoutStateForCurrentFlowThread(renderer); 221 pushLayoutStateForCurrentFlowThread(renderer);
227 m_layoutState = new LayoutState(m_layoutState, renderer, offset, pag eHeight, pageHeightChanged, colInfo); 222 m_layoutState = new LayoutState(m_layoutState, renderer, offset, pag eHeight, pageHeightChanged);
228 return true; 223 return true;
229 } 224 }
230 return false; 225 return false;
231 } 226 }
232 227
233 void popLayoutState() 228 void popLayoutState()
234 { 229 {
235 LayoutState* state = m_layoutState; 230 LayoutState* state = m_layoutState;
236 m_layoutState = state->m_next; 231 m_layoutState = state->m_next;
237 delete state; 232 delete state;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 unsigned m_renderCounterCount; 281 unsigned m_renderCounterCount;
287 }; 282 };
288 283
289 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderView, isRenderView()); 284 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderView, isRenderView());
290 285
291 // Stack-based class to assist with LayoutState push/pop 286 // Stack-based class to assist with LayoutState push/pop
292 class LayoutStateMaintainer { 287 class LayoutStateMaintainer {
293 WTF_MAKE_NONCOPYABLE(LayoutStateMaintainer); 288 WTF_MAKE_NONCOPYABLE(LayoutStateMaintainer);
294 public: 289 public:
295 // ctor to push now 290 // ctor to push now
296 LayoutStateMaintainer(RenderView* view, RenderBox* root, LayoutSize offset, bool disableState = false, LayoutUnit pageHeight = 0, bool pageHeightChanged = f alse, ColumnInfo* colInfo = 0) 291 LayoutStateMaintainer(RenderView* view, RenderBox* root, LayoutSize offset, bool disableState = false, LayoutUnit pageHeight = 0, bool pageHeightChanged = f alse)
297 : m_view(view) 292 : m_view(view)
298 , m_disabled(disableState) 293 , m_disabled(disableState)
299 , m_didStart(false) 294 , m_didStart(false)
300 , m_didEnd(false) 295 , m_didEnd(false)
301 , m_didCreateLayoutState(false) 296 , m_didCreateLayoutState(false)
302 { 297 {
303 push(root, offset, pageHeight, pageHeightChanged, colInfo); 298 push(root, offset, pageHeight, pageHeightChanged);
304 } 299 }
305 300
306 // ctor to maybe push later 301 // ctor to maybe push later
307 LayoutStateMaintainer(RenderView* view) 302 LayoutStateMaintainer(RenderView* view)
308 : m_view(view) 303 : m_view(view)
309 , m_disabled(false) 304 , m_disabled(false)
310 , m_didStart(false) 305 , m_didStart(false)
311 , m_didEnd(false) 306 , m_didEnd(false)
312 , m_didCreateLayoutState(false) 307 , m_didCreateLayoutState(false)
313 { 308 {
314 } 309 }
315 310
316 ~LayoutStateMaintainer() 311 ~LayoutStateMaintainer()
317 { 312 {
318 ASSERT(m_didStart == m_didEnd); // if this fires, it means that someon e did a push(), but forgot to pop(). 313 ASSERT(m_didStart == m_didEnd); // if this fires, it means that someon e did a push(), but forgot to pop().
319 } 314 }
320 315
321 void push(RenderBox* root, LayoutSize offset, LayoutUnit pageHeight = 0, boo l pageHeightChanged = false, ColumnInfo* colInfo = 0) 316 void push(RenderBox* root, LayoutSize offset, LayoutUnit pageHeight = 0, boo l pageHeightChanged = false)
322 { 317 {
323 ASSERT(!m_didStart); 318 ASSERT(!m_didStart);
324 // We push state even if disabled, because we still need to store layout Delta 319 // We push state even if disabled, because we still need to store layout Delta
325 m_didCreateLayoutState = m_view->pushLayoutState(root, offset, pageHeigh t, pageHeightChanged, colInfo); 320 m_didCreateLayoutState = m_view->pushLayoutState(root, offset, pageHeigh t, pageHeightChanged);
326 if (m_disabled && m_didCreateLayoutState) 321 if (m_disabled && m_didCreateLayoutState)
327 m_view->disableLayoutState(); 322 m_view->disableLayoutState();
328 m_didStart = true; 323 m_didStart = true;
329 } 324 }
330 325
331 void pop() 326 void pop()
332 { 327 {
333 if (m_didStart) { 328 if (m_didStart) {
334 ASSERT(!m_didEnd); 329 ASSERT(!m_didEnd);
335 if (m_didCreateLayoutState) { 330 if (m_didCreateLayoutState) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 if (m_view) 362 if (m_view)
368 m_view->enableLayoutState(); 363 m_view->enableLayoutState();
369 } 364 }
370 private: 365 private:
371 RenderView* m_view; 366 RenderView* m_view;
372 }; 367 };
373 368
374 } // namespace WebCore 369 } // namespace WebCore
375 370
376 #endif // RenderView_h 371 #endif // RenderView_h
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderText.cpp ('k') | Source/core/rendering/RenderView.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698