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

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

Issue 712553003: [New Multicolumn] Actual support for layout of column-span:all. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Break containingBlock() into pieces for locateFlowThreadContainingBlock(). Created 6 years, 1 month 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) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 ////////////////////////////////////////// 293 //////////////////////////////////////////
294 private: 294 private:
295 #if ENABLE(ASSERT) 295 #if ENABLE(ASSERT)
296 bool isSetNeedsLayoutForbidden() const { return m_setNeedsLayoutForbidden; } 296 bool isSetNeedsLayoutForbidden() const { return m_setNeedsLayoutForbidden; }
297 void setNeedsLayoutIsForbidden(bool flag) { m_setNeedsLayoutForbidden = flag ; } 297 void setNeedsLayoutIsForbidden(bool flag) { m_setNeedsLayoutForbidden = flag ; }
298 #endif 298 #endif
299 299
300 void addAbsoluteRectForLayer(LayoutRect& result); 300 void addAbsoluteRectForLayer(LayoutRect& result);
301 bool requiresAnonymousTableWrappers(const RenderObject*) const; 301 bool requiresAnonymousTableWrappers(const RenderObject*) const;
302 302
303 // This renderer has column-span:all, but is it really a valid column spanne r?
304 bool isValidColumnSpanAll() const;
305
303 // Gets pseudoStyle from Shadow host(in case of input elements) 306 // Gets pseudoStyle from Shadow host(in case of input elements)
304 // or from Parent element. 307 // or from Parent element.
305 PassRefPtr<RenderStyle> getUncachedPseudoStyleFromParentOrShadowHost() const ; 308 PassRefPtr<RenderStyle> getUncachedPseudoStyleFromParentOrShadowHost() const ;
306 309
307 bool skipInvalidationWhenLaidOutChildren() const; 310 bool skipInvalidationWhenLaidOutChildren() const;
308 311
309 public: 312 public:
310 #ifndef NDEBUG 313 #ifndef NDEBUG
311 void showTreeForThis() const; 314 void showTreeForThis() const;
312 void showRenderTreeForThis() const; 315 void showRenderTreeForThis() const;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 bool isVideo() const { return isOfType(RenderObjectVideo); } 382 bool isVideo() const { return isOfType(RenderObjectVideo); }
380 bool isWidget() const { return isOfType(RenderObjectWidget); } 383 bool isWidget() const { return isOfType(RenderObjectWidget); }
381 384
382 virtual bool isImage() const { return false; } 385 virtual bool isImage() const { return false; }
383 386
384 virtual bool isInlineBlockOrInlineTable() const { return false; } 387 virtual bool isInlineBlockOrInlineTable() const { return false; }
385 virtual bool isLayerModelObject() const { return false; } 388 virtual bool isLayerModelObject() const { return false; }
386 virtual bool isRenderBlock() const { return false; } 389 virtual bool isRenderBlock() const { return false; }
387 virtual bool isRenderBlockFlow() const { return false; } 390 virtual bool isRenderBlockFlow() const { return false; }
388 virtual bool isRenderFlowThread() const { return false; } 391 virtual bool isRenderFlowThread() const { return false; }
392 virtual bool isRenderMultiColumnFlowThread() const { return false; }
389 virtual bool isRenderInline() const { return false; } 393 virtual bool isRenderInline() const { return false; }
390 virtual bool isRenderPart() const { return false; } 394 virtual bool isRenderPart() const { return false; }
391 395
392 bool isDocumentElement() const { return document().documentElement() == m_no de; } 396 bool isDocumentElement() const { return document().documentElement() == m_no de; }
393 // isBody is called from RenderBox::styleWillChange and is thus quite hot. 397 // isBody is called from RenderBox::styleWillChange and is thus quite hot.
394 bool isBody() const { return node() && node()->hasTagName(HTMLNames::bodyTag ); } 398 bool isBody() const { return node() && node()->hasTagName(HTMLNames::bodyTag ); }
395 bool isHR() const; 399 bool isHR() const;
396 bool isLegend() const; 400 bool isLegend() const;
397 401
398 bool isTablePart() const { return isTableCell() || isRenderTableCol() || isT ableCaption() || isTableRow() || isTableSection(); } 402 bool isTablePart() const { return isTableCell() || isRenderTableCol() || isT ableCaption() || isTableRow() || isTableSection(); }
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 void clearNode() { m_node = nullptr; } 631 void clearNode() { m_node = nullptr; }
628 632
629 // Returns the styled node that caused the generation of this renderer. 633 // Returns the styled node that caused the generation of this renderer.
630 // This is the same as node() except for renderers of :before, :after and 634 // This is the same as node() except for renderers of :before, :after and
631 // :first-letter pseudo elements for which their parent node is returned. 635 // :first-letter pseudo elements for which their parent node is returned.
632 Node* generatingNode() const { return isPseudoElement() ? node()->parentOrSh adowHostNode() : node(); } 636 Node* generatingNode() const { return isPseudoElement() ? node()->parentOrSh adowHostNode() : node(); }
633 637
634 Document& document() const { return m_node->document(); } 638 Document& document() const { return m_node->document(); }
635 LocalFrame* frame() const { return document().frame(); } 639 LocalFrame* frame() const { return document().frame(); }
636 640
641 bool isColumnSpanAll() const { return style()->columnSpan() == ColumnSpanAll && isValidColumnSpanAll(); }
642
637 // Returns the object containing this one. Can be different from parent for positioned elements. 643 // Returns the object containing this one. Can be different from parent for positioned elements.
638 // If paintInvalidationContainer and paintInvalidationContainerSkipped are n ot null, on return *paintInvalidationContainerSkipped 644 // If paintInvalidationContainer and paintInvalidationContainerSkipped are n ot null, on return *paintInvalidationContainerSkipped
639 // is true if the renderer returned is an ancestor of paintInvalidationConta iner. 645 // is true if the renderer returned is an ancestor of paintInvalidationConta iner.
640 RenderObject* container(const RenderLayerModelObject* paintInvalidationConta iner = 0, bool* paintInvalidationContainerSkipped = 0) const; 646 RenderObject* container(const RenderLayerModelObject* paintInvalidationConta iner = 0, bool* paintInvalidationContainerSkipped = 0) const;
641 RenderBlock* containerForFixedPosition(const RenderLayerModelObject* paintIn validationContainer = 0, bool* paintInvalidationContainerSkipped = 0) const; 647 RenderBlock* containerForFixedPosition(const RenderLayerModelObject* paintIn validationContainer = 0, bool* paintInvalidationContainerSkipped = 0) const;
648 RenderBlock* containerForAbsolutePosition() const;
649 RenderBlock* parentBlock() const;
642 650
643 virtual RenderObject* hoverAncestor() const { return parent(); } 651 virtual RenderObject* hoverAncestor() const { return parent(); }
644 652
645 Element* offsetParent() const; 653 Element* offsetParent() const;
646 654
647 void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObjec t* newRoot = 0, SubtreeLayoutScope* = 0); 655 void markContainingBlocksForLayout(bool scheduleRelayout = true, RenderObjec t* newRoot = 0, SubtreeLayoutScope* = 0);
648 void setNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayou tScope* = 0); 656 void setNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayou tScope* = 0);
649 void setNeedsLayoutAndFullPaintInvalidation(MarkingBehavior = MarkContaining BlockChain, SubtreeLayoutScope* = 0); 657 void setNeedsLayoutAndFullPaintInvalidation(MarkingBehavior = MarkContaining BlockChain, SubtreeLayoutScope* = 0);
650 void clearNeedsLayout(); 658 void clearNeedsLayout();
651 void setChildNeedsLayout(MarkingBehavior = MarkContainingBlockChain, Subtree LayoutScope* = 0); 659 void setChildNeedsLayout(MarkingBehavior = MarkContainingBlockChain, Subtree LayoutScope* = 0);
(...skipping 959 matching lines...) Expand 10 before | Expand all | Expand 10 after
1611 void showTree(const blink::RenderObject*); 1619 void showTree(const blink::RenderObject*);
1612 void showLineTree(const blink::RenderObject*); 1620 void showLineTree(const blink::RenderObject*);
1613 void showRenderTree(const blink::RenderObject* object1); 1621 void showRenderTree(const blink::RenderObject* object1);
1614 // We don't make object2 an optional parameter so that showRenderTree 1622 // We don't make object2 an optional parameter so that showRenderTree
1615 // can be called from gdb easily. 1623 // can be called from gdb easily.
1616 void showRenderTree(const blink::RenderObject* object1, const blink::RenderObjec t* object2); 1624 void showRenderTree(const blink::RenderObject* object1, const blink::RenderObjec t* object2);
1617 1625
1618 #endif 1626 #endif
1619 1627
1620 #endif // RenderObject_h 1628 #endif // RenderObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698