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

Side by Side Diff: Source/core/rendering/RenderBlock.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: Code review: Revert changes in Source/devtools/Inspector-1.1.json 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
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, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved. 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 25 matching lines...) Expand all
36 #include "wtf/ListHashSet.h" 36 #include "wtf/ListHashSet.h"
37 #include "wtf/OwnPtr.h" 37 #include "wtf/OwnPtr.h"
38 38
39 namespace WebCore { 39 namespace WebCore {
40 40
41 class BasicShape; 41 class BasicShape;
42 class BidiContext; 42 class BidiContext;
43 class LayoutStateMaintainer; 43 class LayoutStateMaintainer;
44 class LineLayoutState; 44 class LineLayoutState;
45 class RenderInline; 45 class RenderInline;
46 class RenderRegion;
46 class RenderText; 47 class RenderText;
47 48
48 struct BidiRun; 49 struct BidiRun;
49 struct PaintInfo; 50 struct PaintInfo;
50 class LineInfo; 51 class LineInfo;
51 class RenderRubyRun; 52 class RenderRubyRun;
52 class WordMeasurement; 53 class WordMeasurement;
53 54
54 template <class Run> class BidiRunList; 55 template <class Run> class BidiRunList;
55 typedef WTF::ListHashSet<RenderBox*, 16> TrackedRendererListHashSet; 56 typedef WTF::ListHashSet<RenderBox*, 16> TrackedRendererListHashSet;
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 void setMarginEndForChild(RenderBox* child, LayoutUnit value) const { child- >setMarginEnd(value, style()); } 245 void setMarginEndForChild(RenderBox* child, LayoutUnit value) const { child- >setMarginEnd(value, style()); }
245 void setMarginBeforeForChild(RenderBox* child, LayoutUnit value) const { chi ld->setMarginBefore(value, style()); } 246 void setMarginBeforeForChild(RenderBox* child, LayoutUnit value) const { chi ld->setMarginBefore(value, style()); }
246 void setMarginAfterForChild(RenderBox* child, LayoutUnit value) const { chil d->setMarginAfter(value, style()); } 247 void setMarginAfterForChild(RenderBox* child, LayoutUnit value) const { chil d->setMarginAfter(value, style()); }
247 LayoutUnit collapsedMarginBeforeForChild(const RenderBox* child) const; 248 LayoutUnit collapsedMarginBeforeForChild(const RenderBox* child) const;
248 LayoutUnit collapsedMarginAfterForChild(const RenderBox* child) const; 249 LayoutUnit collapsedMarginAfterForChild(const RenderBox* child) const;
249 250
250 virtual void updateFirstLetter(); 251 virtual void updateFirstLetter();
251 252
252 virtual void scrollbarsChanged(bool /*horizontalScrollbarChanged*/, bool /*v erticalScrollbarChanged*/) { }; 253 virtual void scrollbarsChanged(bool /*horizontalScrollbarChanged*/, bool /*v erticalScrollbarChanged*/) { };
253 254
254 LayoutUnit logicalLeftOffsetForContent(RenderRegion*) const; 255 LayoutUnit availableLogicalWidthForContent() const { return max<LayoutUnit>( 0, logicalRightOffsetForContent() - logicalLeftOffsetForContent()); }
255 LayoutUnit logicalRightOffsetForContent(RenderRegion*) const;
256 LayoutUnit availableLogicalWidthForContent(RenderRegion* region) const
257 {
258 return max<LayoutUnit>(0, logicalRightOffsetForContent(region) - logical LeftOffsetForContent(region));
259 }
260 LayoutUnit startOffsetForContent(RenderRegion* region) const
261 {
262 return style()->isLeftToRightDirection() ? logicalLeftOffsetForContent(r egion) : logicalWidth() - logicalRightOffsetForContent(region);
263 }
264 LayoutUnit endOffsetForContent(RenderRegion* region) const
265 {
266 return !style()->isLeftToRightDirection() ? logicalLeftOffsetForContent( region) : logicalWidth() - logicalRightOffsetForContent(region);
267 }
268 LayoutUnit logicalLeftOffsetForContent(LayoutUnit blockOffset) const
269 {
270 return logicalLeftOffsetForContent(regionAtBlockOffset(blockOffset));
271 }
272 LayoutUnit logicalRightOffsetForContent(LayoutUnit blockOffset) const
273 {
274 return logicalRightOffsetForContent(regionAtBlockOffset(blockOffset));
275 }
276 LayoutUnit availableLogicalWidthForContent(LayoutUnit blockOffset) const
277 {
278 return availableLogicalWidthForContent(regionAtBlockOffset(blockOffset)) ;
279 }
280 LayoutUnit startOffsetForContent(LayoutUnit blockOffset) const
281 {
282 return startOffsetForContent(regionAtBlockOffset(blockOffset));
283 }
284 LayoutUnit endOffsetForContent(LayoutUnit blockOffset) const
285 {
286 return endOffsetForContent(regionAtBlockOffset(blockOffset));
287 }
288 LayoutUnit logicalLeftOffsetForContent() const { return isHorizontalWritingM ode() ? borderLeft() + paddingLeft() : borderTop() + paddingTop(); } 256 LayoutUnit logicalLeftOffsetForContent() const { return isHorizontalWritingM ode() ? borderLeft() + paddingLeft() : borderTop() + paddingTop(); }
289 LayoutUnit logicalRightOffsetForContent() const { return logicalLeftOffsetFo rContent() + availableLogicalWidth(); } 257 LayoutUnit logicalRightOffsetForContent() const { return logicalLeftOffsetFo rContent() + availableLogicalWidth(); }
290 LayoutUnit startOffsetForContent() const { return style()->isLeftToRightDire ction() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetFor Content(); } 258 LayoutUnit startOffsetForContent() const { return style()->isLeftToRightDire ction() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetFor Content(); }
291 LayoutUnit endOffsetForContent() const { return !style()->isLeftToRightDirec tion() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetForC ontent(); } 259 LayoutUnit endOffsetForContent() const { return !style()->isLeftToRightDirec tion() ? logicalLeftOffsetForContent() : logicalWidth() - logicalRightOffsetForC ontent(); }
292 260
293 #ifndef NDEBUG 261 #ifndef NDEBUG
294 void checkPositionedObjectsNeedLayout(); 262 void checkPositionedObjectsNeedLayout();
295 void showLineTreeAndMark(const InlineBox* = 0, const char* = 0, const Inline Box* = 0, const char* = 0, const RenderObject* = 0) const; 263 void showLineTreeAndMark(const InlineBox* = 0, const char* = 0, const Inline Box* = 0, const char* = 0, const RenderObject* = 0) const;
296 #endif 264 #endif
297 265
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 protected: 492 protected:
525 void determineLogicalLeftPositionForChild(RenderBox* child, ApplyLayoutDelta Mode = DoNotApplyLayoutDelta); 493 void determineLogicalLeftPositionForChild(RenderBox* child, ApplyLayoutDelta Mode = DoNotApplyLayoutDelta);
526 494
527 // Returns the logicalOffset at the top of the next page. If the offset pass ed in is already at the top of the current page, 495 // Returns the logicalOffset at the top of the next page. If the offset pass ed in is already at the top of the current page,
528 // then nextPageLogicalTop with ExcludePageBoundary will still move to the t op of the next page. nextPageLogicalTop with 496 // then nextPageLogicalTop with ExcludePageBoundary will still move to the t op of the next page. nextPageLogicalTop with
529 // IncludePageBoundary set will not. 497 // IncludePageBoundary set will not.
530 // 498 //
531 // For a page height of 800px, the first rule will return 800 if the value p assed in is 0. The second rule will simply return 0. 499 // For a page height of 800px, the first rule will return 800 if the value p assed in is 0. The second rule will simply return 0.
532 enum PageBoundaryRule { ExcludePageBoundary, IncludePageBoundary }; 500 enum PageBoundaryRule { ExcludePageBoundary, IncludePageBoundary };
533 LayoutUnit nextPageLogicalTop(LayoutUnit logicalOffset, PageBoundaryRule = E xcludePageBoundary) const; 501 LayoutUnit nextPageLogicalTop(LayoutUnit logicalOffset, PageBoundaryRule = E xcludePageBoundary) const;
534 bool hasNextPage(LayoutUnit logicalOffset, PageBoundaryRule = ExcludePageBou ndary) const;
535 502
536 bool createsBlockFormattingContext() const; 503 bool createsBlockFormattingContext() const;
537 504
538 public: 505 public:
539 LayoutUnit pageLogicalTopForOffset(LayoutUnit offset) const; 506 LayoutUnit pageLogicalTopForOffset(LayoutUnit offset) const;
540 LayoutUnit pageLogicalHeightForOffset(LayoutUnit offset) const; 507 LayoutUnit pageLogicalHeightForOffset(LayoutUnit offset) const;
541 LayoutUnit pageRemainingLogicalHeightForOffset(LayoutUnit offset, PageBounda ryRule = IncludePageBoundary) const; 508 LayoutUnit pageRemainingLogicalHeightForOffset(LayoutUnit offset, PageBounda ryRule = IncludePageBoundary) const;
542 509
543 protected: 510 protected:
544 bool pushToNextPageWithMinimumLogicalHeight(LayoutUnit& adjustment, LayoutUn it logicalOffset, LayoutUnit minimumLogicalHeight) const; 511 bool pushToNextPageWithMinimumLogicalHeight(LayoutUnit& adjustment, LayoutUn it logicalOffset, LayoutUnit minimumLogicalHeight) const;
545 512
546 // A page break is required at some offset due to space shortage in the curr ent fragmentainer. 513 // A page break is required at some offset due to space shortage in the curr ent fragmentainer.
547 void setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage); 514 void setPageBreak(LayoutUnit offset, LayoutUnit spaceShortage);
548 515
549 // Update minimum page height required to avoid fragmentation where it shoul dn't occur (inside 516 // Update minimum page height required to avoid fragmentation where it shoul dn't occur (inside
550 // unbreakable content, between orphans and widows, etc.). This will be used as a hint to the 517 // unbreakable content, between orphans and widows, etc.). This will be used as a hint to the
551 // column balancer to help set a good minimum column height. 518 // column balancer to help set a good minimum column height.
552 void updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeight); 519 void updateMinimumPageHeight(LayoutUnit offset, LayoutUnit minHeight);
553 520
554 LayoutUnit adjustForUnsplittableChild(RenderBox* child, LayoutUnit logicalOf fset, bool includeMargins = false); // If the child is unsplittable and can't fi t on the current page, return the top of the next page/column. 521 LayoutUnit adjustForUnsplittableChild(RenderBox* child, LayoutUnit logicalOf fset, bool includeMargins = false); // If the child is unsplittable and can't fi t on the current page, return the top of the next page/column.
555 void adjustLinePositionForPagination(RootInlineBox*, LayoutUnit& deltaOffset , RenderFlowThread*); // Computes a deltaOffset value that put a line at the top of the next page if it doesn't fit on the current page. 522 void adjustLinePositionForPagination(RootInlineBox*, LayoutUnit& deltaOffset , RenderFlowThread*); // Computes a deltaOffset value that put a line at the top of the next page if it doesn't fit on the current page.
556 void updateRegionForLine(RootInlineBox*) const;
557 523
558 // Adjust from painting offsets to the local coords of this renderer 524 // Adjust from painting offsets to the local coords of this renderer
559 void offsetForContents(LayoutPoint&) const; 525 void offsetForContents(LayoutPoint&) const;
560 526
561 // This function is called to test a line box that has moved in the block di rection to see if it has ended up in a new
562 // region/page/column that has a different available line width than the old one. Used to know when you have to dirty a
563 // line, i.e., that it can't be re-used.
564 bool lineWidthForPaginatedLineChanged(RootInlineBox*, LayoutUnit lineDelta, RenderFlowThread*) const;
565
566 bool logicalWidthChangedInRegions(RenderFlowThread*) const;
567
568 bool requiresColumns(int desiredColumnCount) const; 527 bool requiresColumns(int desiredColumnCount) const;
569 528
570 virtual bool updateLogicalWidthAndColumnWidth(); 529 virtual bool updateLogicalWidthAndColumnWidth();
571 530
572 virtual bool canCollapseAnonymousBlockChild() const { return true; } 531 virtual bool canCollapseAnonymousBlockChild() const { return true; }
573 532
574 public: 533 public:
575 virtual LayoutUnit offsetFromLogicalTopOfFirstPage() const OVERRIDE FINAL; 534 virtual LayoutUnit offsetFromLogicalTopOfFirstPage() const OVERRIDE FINAL;
576 RenderRegion* regionAtBlockOffset(LayoutUnit) const; 535 RenderRegion* regionAtBlockOffset(LayoutUnit) const;
577 RenderRegion* clampToStartAndEndRegions(RenderRegion*) const;
578 536
579 public: 537 public:
580 538
581 // Allocated only when some of these fields have non-default values 539 // Allocated only when some of these fields have non-default values
582 struct RenderBlockRareData { 540 struct RenderBlockRareData {
583 WTF_MAKE_NONCOPYABLE(RenderBlockRareData); WTF_MAKE_FAST_ALLOCATED; 541 WTF_MAKE_NONCOPYABLE(RenderBlockRareData); WTF_MAKE_FAST_ALLOCATED;
584 public: 542 public:
585 RenderBlockRareData() 543 RenderBlockRareData()
586 : m_paginationStrut(0) 544 : m_paginationStrut(0)
587 , m_pageLogicalOffset(0) 545 , m_pageLogicalOffset(0)
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
635 return false; 593 return false;
636 } 594 }
637 return true; 595 return true;
638 } 596 }
639 597
640 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlock, isRenderBlock()); 598 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlock, isRenderBlock());
641 599
642 } // namespace WebCore 600 } // namespace WebCore
643 601
644 #endif // RenderBlock_h 602 #endif // RenderBlock_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698