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

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

Issue 134473008: Remove CSS regions support, keeping a bare minimum to support "region-based" multicol. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebase master 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/RenderBlock.cpp ('k') | Source/core/rendering/RenderBlockFlow.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 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003-2013 Apple Inc. All rights reserved. 5 * Copyright (C) 2003-2013 Apple Inc. All rights reserved.
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * Copyright (C) 2013 Google Inc. All rights reserved. 7 * Copyright (C) 2013 Google Inc. All rights reserved.
8 * 8 *
9 * Redistribution and use in source and binary forms, with or without 9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are 10 * modification, are permitted provided that the following conditions are
(...skipping 28 matching lines...) Expand all
39 #include "core/rendering/FloatingObjects.h" 39 #include "core/rendering/FloatingObjects.h"
40 #include "core/rendering/RenderBlock.h" 40 #include "core/rendering/RenderBlock.h"
41 #include "core/rendering/line/TrailingObjects.h" 41 #include "core/rendering/line/TrailingObjects.h"
42 #include "core/rendering/style/RenderStyleConstants.h" 42 #include "core/rendering/style/RenderStyleConstants.h"
43 43
44 namespace WebCore { 44 namespace WebCore {
45 45
46 class MarginInfo; 46 class MarginInfo;
47 class LineBreaker; 47 class LineBreaker;
48 class LineWidth; 48 class LineWidth;
49 class RenderNamedFlowFragment;
50 49
51 class RenderBlockFlow : public RenderBlock { 50 class RenderBlockFlow : public RenderBlock {
52 public: 51 public:
53 explicit RenderBlockFlow(ContainerNode*); 52 explicit RenderBlockFlow(ContainerNode*);
54 virtual ~RenderBlockFlow(); 53 virtual ~RenderBlockFlow();
55 54
56 static RenderBlockFlow* createAnonymous(Document*); 55 static RenderBlockFlow* createAnonymous(Document*);
57 RenderBlockFlow* createAnonymousBlockFlow() const; 56 RenderBlockFlow* createAnonymousBlockFlow() const;
58 57
59 virtual bool isRenderBlockFlow() const OVERRIDE FINAL { return true; } 58 virtual bool isRenderBlockFlow() const OVERRIDE FINAL { return true; }
60 59
61 virtual void layoutBlock(bool relayoutChildren) OVERRIDE; 60 virtual void layoutBlock(bool relayoutChildren) OVERRIDE;
62 61
63 virtual void computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFl oats = false) OVERRIDE; 62 virtual void computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFl oats = false) OVERRIDE;
64 virtual void deleteLineBoxTree() OVERRIDE FINAL; 63 virtual void deleteLineBoxTree() OVERRIDE FINAL;
65 64
66 // Versions that can compute line offsets with the region and page offset pa ssed in. Used for speed to avoid having to
67 // compute the region all over again when you already know it.
68 LayoutUnit availableLogicalWidthForLineInRegion(LayoutUnit position, bool sh ouldIndentText, RenderRegion* region, LayoutUnit logicalHeight = 0) const
69 {
70 return max<LayoutUnit>(0, logicalRightOffsetForLineInRegion(position, sh ouldIndentText, region, logicalHeight)
71 - logicalLeftOffsetForLineInRegion(position, shouldIndentText, regio n, logicalHeight));
72 }
73 LayoutUnit logicalRightOffsetForLineInRegion(LayoutUnit position, bool shoul dIndentText, RenderRegion* region, LayoutUnit logicalHeight = 0) const
74 {
75 return logicalRightOffsetForLine(position, logicalRightOffsetForContent( region), shouldIndentText, logicalHeight);
76 }
77 LayoutUnit logicalLeftOffsetForLineInRegion(LayoutUnit position, bool should IndentText, RenderRegion* region, LayoutUnit logicalHeight = 0) const
78 {
79 return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(re gion), shouldIndentText, logicalHeight);
80 }
81 LayoutUnit startOffsetForLineInRegion(LayoutUnit position, bool shouldIndent Text, RenderRegion* region, LayoutUnit logicalHeight = 0) const
82 {
83 return style()->isLeftToRightDirection() ? logicalLeftOffsetForLineInReg ion(position, shouldIndentText, region, logicalHeight)
84 : logicalWidth() - logicalRightOffsetForLineInRegion(position, shoul dIndentText, region, logicalHeight);
85 }
86 LayoutUnit endOffsetForLineInRegion(LayoutUnit position, bool shouldIndentTe xt, RenderRegion* region, LayoutUnit logicalHeight = 0) const
87 {
88 return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLineInRe gion(position, shouldIndentText, region, logicalHeight)
89 : logicalWidth() - logicalRightOffsetForLineInRegion(position, shoul dIndentText, region, logicalHeight);
90 }
91
92 LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool shouldInde ntText, LayoutUnit logicalHeight = 0) const 65 LayoutUnit availableLogicalWidthForLine(LayoutUnit position, bool shouldInde ntText, LayoutUnit logicalHeight = 0) const
93 { 66 {
94 return availableLogicalWidthForLineInRegion(position, shouldIndentText, regionAtBlockOffset(position), logicalHeight); 67 return max<LayoutUnit>(0, logicalRightOffsetForLine(position, shouldInde ntText, logicalHeight) - logicalLeftOffsetForLine(position, shouldIndentText, lo gicalHeight));
95 } 68 }
96 LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool shouldIndentT ext, LayoutUnit logicalHeight = 0) const 69 LayoutUnit logicalRightOffsetForLine(LayoutUnit position, bool shouldIndentT ext, LayoutUnit logicalHeight = 0) const
97 { 70 {
98 return logicalRightOffsetForLine(position, logicalRightOffsetForContent( position), shouldIndentText, logicalHeight); 71 return logicalRightOffsetForLine(position, logicalRightOffsetForContent( ), shouldIndentText, logicalHeight);
99 } 72 }
100 LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool shouldIndentTe xt, LayoutUnit logicalHeight = 0) const 73 LayoutUnit logicalLeftOffsetForLine(LayoutUnit position, bool shouldIndentTe xt, LayoutUnit logicalHeight = 0) const
101 { 74 {
102 return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(po sition), shouldIndentText, logicalHeight); 75 return logicalLeftOffsetForLine(position, logicalLeftOffsetForContent(), shouldIndentText, logicalHeight);
103 } 76 }
104 LayoutUnit pixelSnappedLogicalLeftOffsetForLine(LayoutUnit position, bool sh ouldIndentText, LayoutUnit logicalHeight = 0) const 77 LayoutUnit pixelSnappedLogicalLeftOffsetForLine(LayoutUnit position, bool sh ouldIndentText, LayoutUnit logicalHeight = 0) const
105 { 78 {
106 return roundToInt(logicalLeftOffsetForLine(position, shouldIndentText, l ogicalHeight)); 79 return roundToInt(logicalLeftOffsetForLine(position, shouldIndentText, l ogicalHeight));
107 } 80 }
108 LayoutUnit pixelSnappedLogicalRightOffsetForLine(LayoutUnit position, bool s houldIndentText, LayoutUnit logicalHeight = 0) const 81 LayoutUnit pixelSnappedLogicalRightOffsetForLine(LayoutUnit position, bool s houldIndentText, LayoutUnit logicalHeight = 0) const
109 { 82 {
110 // FIXME: Multicolumn layouts break carrying over subpixel values to the logical right offset because the lines may be shifted 83 // FIXME: Multicolumn layouts break carrying over subpixel values to the logical right offset because the lines may be shifted
111 // by a subpixel value for all but the first column. This can lead to th e actual pixel snapped width of the column being off 84 // by a subpixel value for all but the first column. This can lead to th e actual pixel snapped width of the column being off
112 // by one pixel when rendered versus layed out, which can result in the line being clipped. For now, we have to floor. 85 // by one pixel when rendered versus layed out, which can result in the line being clipped. For now, we have to floor.
113 // https://bugs.webkit.org/show_bug.cgi?id=105461 86 // https://bugs.webkit.org/show_bug.cgi?id=105461
114 return floorToInt(logicalRightOffsetForLine(position, shouldIndentText, logicalHeight)); 87 return floorToInt(logicalRightOffsetForLine(position, shouldIndentText, logicalHeight));
115 } 88 }
116 LayoutUnit startOffsetForLine(LayoutUnit position, bool shouldIndentText, La youtUnit logicalHeight = 0) const 89 LayoutUnit startOffsetForLine(LayoutUnit position, bool shouldIndentText, La youtUnit logicalHeight = 0) const
117 { 90 {
118 return style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(posi tion, shouldIndentText, logicalHeight) 91 return style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(posi tion, shouldIndentText, logicalHeight)
119 : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentT ext, logicalHeight); 92 : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentT ext, logicalHeight);
120 } 93 }
121 LayoutUnit endOffsetForLine(LayoutUnit position, bool shouldIndentText, Layo utUnit logicalHeight = 0) const 94 LayoutUnit endOffsetForLine(LayoutUnit position, bool shouldIndentText, Layo utUnit logicalHeight = 0) const
122 { 95 {
123 return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(pos ition, shouldIndentText, logicalHeight) 96 return !style()->isLeftToRightDirection() ? logicalLeftOffsetForLine(pos ition, shouldIndentText, logicalHeight)
124 : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentT ext, logicalHeight); 97 : logicalWidth() - logicalRightOffsetForLine(position, shouldIndentT ext, logicalHeight);
125 } 98 }
126 99
127 virtual LayoutUnit logicalLeftSelectionOffset(RenderBlock* rootBlock, Layout Unit position) OVERRIDE; 100 virtual LayoutUnit logicalLeftSelectionOffset(RenderBlock* rootBlock, Layout Unit position) OVERRIDE;
128 virtual LayoutUnit logicalRightSelectionOffset(RenderBlock* rootBlock, Layou tUnit position) OVERRIDE; 101 virtual LayoutUnit logicalRightSelectionOffset(RenderBlock* rootBlock, Layou tUnit position) OVERRIDE;
129 102
130 LayoutUnit computeStartPositionDeltaForChildAvoidingFloats(const RenderBox* child, LayoutUnit childMarginStart, RenderRegion* = 0); 103 LayoutUnit computeStartPositionDeltaForChildAvoidingFloats(const RenderBox* child, LayoutUnit childMarginStart);
131 104
132 RootInlineBox* createAndAppendRootInlineBox(); 105 RootInlineBox* createAndAppendRootInlineBox();
133 106
134 void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, boo l inLayout = true); 107 void markAllDescendantsWithFloatsForLayout(RenderBox* floatToRemove = 0, boo l inLayout = true);
135 void markSiblingsWithFloatsForLayout(RenderBox* floatToRemove = 0); 108 void markSiblingsWithFloatsForLayout(RenderBox* floatToRemove = 0);
136 109
137 virtual bool containsFloats() const OVERRIDE FINAL { return m_floatingObject s && !m_floatingObjects->set().isEmpty(); } 110 virtual bool containsFloats() const OVERRIDE FINAL { return m_floatingObject s && !m_floatingObjects->set().isEmpty(); }
138 bool containsFloat(RenderBox*) const; 111 bool containsFloat(RenderBox*) const;
139 112
140 void removeFloatingObjects(); 113 void removeFloatingObjects();
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 208
236 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const 209 LayoutUnit logicalRightOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixed Offset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const
237 { 210 {
238 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo gicalTop, fixedOffset, logicalHeight), applyTextIndent); 211 return adjustLogicalRightOffsetForLine(logicalRightFloatOffsetForLine(lo gicalTop, fixedOffset, logicalHeight), applyTextIndent);
239 } 212 }
240 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const 213 LayoutUnit logicalLeftOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedO ffset, bool applyTextIndent, LayoutUnit logicalHeight = 0) const
241 { 214 {
242 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi calTop, fixedOffset, logicalHeight), applyTextIndent); 215 return adjustLogicalLeftOffsetForLine(logicalLeftFloatOffsetForLine(logi calTop, fixedOffset, logicalHeight), applyTextIndent);
243 } 216 }
244 217
245 virtual void insertedIntoTree() OVERRIDE;
246 virtual void willBeDestroyed() OVERRIDE;
247 private: 218 private:
248 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S ubtreeLayoutScope&); 219 bool layoutBlockFlow(bool relayoutChildren, LayoutUnit& pageLogicalHeight, S ubtreeLayoutScope&);
249 void layoutBlockChildren(bool relayoutChildren, LayoutUnit& maxFloatLogicalB ottom, SubtreeLayoutScope&, LayoutUnit beforeEdge, LayoutUnit afterEdge); 220 void layoutBlockChildren(bool relayoutChildren, LayoutUnit& maxFloatLogicalB ottom, SubtreeLayoutScope&, LayoutUnit beforeEdge, LayoutUnit afterEdge);
250 221
251 void layoutBlockChild(RenderBox* child, MarginInfo&, LayoutUnit& previousFlo atLogicalBottom, LayoutUnit& maxFloatLogicalBottom); 222 void layoutBlockChild(RenderBox* child, MarginInfo&, LayoutUnit& previousFlo atLogicalBottom, LayoutUnit& maxFloatLogicalBottom);
252 void adjustPositionedBlock(RenderBox* child, const MarginInfo&); 223 void adjustPositionedBlock(RenderBox* child, const MarginInfo&);
253 void adjustFloatingBlock(const MarginInfo&); 224 void adjustFloatingBlock(const MarginInfo&);
254 225
255 LayoutPoint flipFloatForWritingModeForChild(const FloatingObject*, const Lay outPoint&) const; 226 LayoutPoint flipFloatForWritingModeForChild(const FloatingObject*, const Lay outPoint&) const;
256 227
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 void setNegativeMarginAfter(LayoutUnit neg) { m_negativeMarginAfter = ne g; } 321 void setNegativeMarginAfter(LayoutUnit neg) { m_negativeMarginAfter = ne g; }
351 322
352 private: 323 private:
353 LayoutUnit m_positiveMarginBefore; 324 LayoutUnit m_positiveMarginBefore;
354 LayoutUnit m_negativeMarginBefore; 325 LayoutUnit m_negativeMarginBefore;
355 LayoutUnit m_positiveMarginAfter; 326 LayoutUnit m_positiveMarginAfter;
356 LayoutUnit m_negativeMarginAfter; 327 LayoutUnit m_negativeMarginAfter;
357 }; 328 };
358 MarginValues marginValuesForChild(RenderBox* child) const; 329 MarginValues marginValuesForChild(RenderBox* child) const;
359 330
360 virtual void updateLogicalHeight() OVERRIDE;
361
362 // Allocated only when some of these fields have non-default values 331 // Allocated only when some of these fields have non-default values
363 struct RenderBlockFlowRareData { 332 struct RenderBlockFlowRareData {
364 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED; 333 WTF_MAKE_NONCOPYABLE(RenderBlockFlowRareData); WTF_MAKE_FAST_ALLOCATED;
365 public: 334 public:
366 RenderBlockFlowRareData(const RenderBlockFlow* block) 335 RenderBlockFlowRareData(const RenderBlockFlow* block)
367 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl ock)) 336 : m_margins(positiveMarginBeforeDefault(block), negativeMarginBefore Default(block), positiveMarginAfterDefault(block), negativeMarginAfterDefault(bl ock))
368 , m_discardMarginBefore(false) 337 , m_discardMarginBefore(false)
369 , m_discardMarginAfter(false) 338 , m_discardMarginAfter(false)
370 , m_renderNamedFlowFragment(0)
371 { 339 {
372 } 340 }
373 341
374 static LayoutUnit positiveMarginBeforeDefault(const RenderBlockFlow* blo ck) 342 static LayoutUnit positiveMarginBeforeDefault(const RenderBlockFlow* blo ck)
375 { 343 {
376 return std::max<LayoutUnit>(block->marginBefore(), 0); 344 return std::max<LayoutUnit>(block->marginBefore(), 0);
377 } 345 }
378 static LayoutUnit negativeMarginBeforeDefault(const RenderBlockFlow* blo ck) 346 static LayoutUnit negativeMarginBeforeDefault(const RenderBlockFlow* blo ck)
379 { 347 {
380 return std::max<LayoutUnit>(-block->marginBefore(), 0); 348 return std::max<LayoutUnit>(-block->marginBefore(), 0);
381 } 349 }
382 static LayoutUnit positiveMarginAfterDefault(const RenderBlockFlow* bloc k) 350 static LayoutUnit positiveMarginAfterDefault(const RenderBlockFlow* bloc k)
383 { 351 {
384 return std::max<LayoutUnit>(block->marginAfter(), 0); 352 return std::max<LayoutUnit>(block->marginAfter(), 0);
385 } 353 }
386 static LayoutUnit negativeMarginAfterDefault(const RenderBlockFlow* bloc k) 354 static LayoutUnit negativeMarginAfterDefault(const RenderBlockFlow* bloc k)
387 { 355 {
388 return std::max<LayoutUnit>(-block->marginAfter(), 0); 356 return std::max<LayoutUnit>(-block->marginAfter(), 0);
389 } 357 }
390 358
391 MarginValues m_margins; 359 MarginValues m_margins;
392 360
393 bool m_discardMarginBefore : 1; 361 bool m_discardMarginBefore : 1;
394 bool m_discardMarginAfter : 1; 362 bool m_discardMarginAfter : 1;
395 RenderNamedFlowFragment* m_renderNamedFlowFragment;
396 }; 363 };
397 LayoutUnit marginOffsetForSelfCollapsingBlock(); 364 LayoutUnit marginOffsetForSelfCollapsingBlock();
398 365
399 RenderNamedFlowFragment* renderNamedFlowFragment() const { return m_rareData ? m_rareData->m_renderNamedFlowFragment : 0; }
400 void setRenderNamedFlowFragment(RenderNamedFlowFragment*);
401
402 protected: 366 protected:
403 LayoutUnit maxPositiveMarginBefore() const { return m_rareData ? m_rareData- >m_margins.positiveMarginBefore() : RenderBlockFlowRareData::positiveMarginBefor eDefault(this); } 367 LayoutUnit maxPositiveMarginBefore() const { return m_rareData ? m_rareData- >m_margins.positiveMarginBefore() : RenderBlockFlowRareData::positiveMarginBefor eDefault(this); }
404 LayoutUnit maxNegativeMarginBefore() const { return m_rareData ? m_rareData- >m_margins.negativeMarginBefore() : RenderBlockFlowRareData::negativeMarginBefor eDefault(this); } 368 LayoutUnit maxNegativeMarginBefore() const { return m_rareData ? m_rareData- >m_margins.negativeMarginBefore() : RenderBlockFlowRareData::negativeMarginBefor eDefault(this); }
405 LayoutUnit maxPositiveMarginAfter() const { return m_rareData ? m_rareData-> m_margins.positiveMarginAfter() : RenderBlockFlowRareData::positiveMarginAfterDe fault(this); } 369 LayoutUnit maxPositiveMarginAfter() const { return m_rareData ? m_rareData-> m_margins.positiveMarginAfter() : RenderBlockFlowRareData::positiveMarginAfterDe fault(this); }
406 LayoutUnit maxNegativeMarginAfter() const { return m_rareData ? m_rareData-> m_margins.negativeMarginAfter() : RenderBlockFlowRareData::negativeMarginAfterDe fault(this); } 370 LayoutUnit maxNegativeMarginAfter() const { return m_rareData ? m_rareData-> m_margins.negativeMarginAfter() : RenderBlockFlowRareData::negativeMarginAfterDe fault(this); }
407 371
408 void setMaxMarginBeforeValues(LayoutUnit pos, LayoutUnit neg); 372 void setMaxMarginBeforeValues(LayoutUnit pos, LayoutUnit neg);
409 void setMaxMarginAfterValues(LayoutUnit pos, LayoutUnit neg); 373 void setMaxMarginAfterValues(LayoutUnit pos, LayoutUnit neg);
410 374
411 void setMustDiscardMarginBefore(bool = true); 375 void setMustDiscardMarginBefore(bool = true);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 void setCollapsedBottomMargin(const MarginInfo&); 408 void setCollapsedBottomMargin(const MarginInfo&);
445 409
446 LayoutUnit applyBeforeBreak(RenderBox* child, LayoutUnit logicalOffset); // If the child has a before break, then return a new yPos that shifts to the top o f the next page/column. 410 LayoutUnit applyBeforeBreak(RenderBox* child, LayoutUnit logicalOffset); // If the child has a before break, then return a new yPos that shifts to the top o f the next page/column.
447 LayoutUnit applyAfterBreak(RenderBox* child, LayoutUnit logicalOffset, Margi nInfo&); // If the child has an after break, then return a new offset that shift s to the top of the next page/column. 411 LayoutUnit applyAfterBreak(RenderBox* child, LayoutUnit logicalOffset, Margi nInfo&); // If the child has an after break, then return a new offset that shift s to the top of the next page/column.
448 412
449 LayoutUnit adjustBlockChildForPagination(LayoutUnit logicalTopAfterClear, La youtUnit estimateWithoutPagination, RenderBox* child, bool atBeforeSideOfBlock); 413 LayoutUnit adjustBlockChildForPagination(LayoutUnit logicalTopAfterClear, La youtUnit estimateWithoutPagination, RenderBox* child, bool atBeforeSideOfBlock);
450 414
451 // Used to store state between styleWillChange and styleDidChange 415 // Used to store state between styleWillChange and styleDidChange
452 static bool s_canPropagateFloatIntoSibling; 416 static bool s_canPropagateFloatIntoSibling;
453 417
454 virtual bool canHaveChildren() const OVERRIDE;
455 virtual bool canHaveGeneratedChildren() const OVERRIDE;
456
457 void createRenderNamedFlowFragmentIfNeeded();
458
459 RenderBlockFlowRareData& ensureRareData(); 418 RenderBlockFlowRareData& ensureRareData();
460 419
461 LayoutUnit m_repaintLogicalTop; 420 LayoutUnit m_repaintLogicalTop;
462 LayoutUnit m_repaintLogicalBottom; 421 LayoutUnit m_repaintLogicalBottom;
463 422
464 virtual bool isSelfCollapsingBlock() const OVERRIDE; 423 virtual bool isSelfCollapsingBlock() const OVERRIDE;
465 protected: 424 protected:
466 OwnPtr<RenderBlockFlowRareData> m_rareData; 425 OwnPtr<RenderBlockFlowRareData> m_rareData;
467 OwnPtr<FloatingObjects> m_floatingObjects; 426 OwnPtr<FloatingObjects> m_floatingObjects;
468 427
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 468
510 // END METHODS DEFINED IN RenderBlockLineLayout 469 // END METHODS DEFINED IN RenderBlockLineLayout
511 470
512 }; 471 };
513 472
514 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); 473 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow());
515 474
516 } // namespace WebCore 475 } // namespace WebCore
517 476
518 #endif // RenderBlockFlow_h 477 #endif // RenderBlockFlow_h
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBlock.cpp ('k') | Source/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698