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

Side by Side Diff: Source/core/layout/LayoutBlockFlow.cpp

Issue 977113003: Rename renderer() to layoutObject(). (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/layout/LayoutBlockFlow.h ('k') | Source/core/layout/LayoutBlockFlowLine.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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 875 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 if (m_floatingObjects) 886 if (m_floatingObjects)
887 m_floatingObjects->setHorizontalWritingMode(isHorizontalWritingMode()); 887 m_floatingObjects->setHorizontalWritingMode(isHorizontalWritingMode());
888 888
889 HashSet<LayoutBox*> oldIntrudingFloatSet; 889 HashSet<LayoutBox*> oldIntrudingFloatSet;
890 if (!childrenInline() && m_floatingObjects) { 890 if (!childrenInline() && m_floatingObjects) {
891 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); 891 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
892 FloatingObjectSetIterator end = floatingObjectSet.end(); 892 FloatingObjectSetIterator end = floatingObjectSet.end();
893 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end ; ++it) { 893 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end ; ++it) {
894 FloatingObject* floatingObject = it->get(); 894 FloatingObject* floatingObject = it->get();
895 if (!floatingObject->isDescendant()) 895 if (!floatingObject->isDescendant())
896 oldIntrudingFloatSet.add(floatingObject->renderer()); 896 oldIntrudingFloatSet.add(floatingObject->layoutObject());
897 } 897 }
898 } 898 }
899 899
900 // Inline blocks are covered by the isReplaced() check in the avoidFloats me thod. 900 // Inline blocks are covered by the isReplaced() check in the avoidFloats me thod.
901 if (avoidsFloats() || isDocumentElement() || isLayoutView() || isFloatingOrO utOfFlowPositioned() || isTableCell()) { 901 if (avoidsFloats() || isDocumentElement() || isLayoutView() || isFloatingOrO utOfFlowPositioned() || isTableCell()) {
902 if (m_floatingObjects) { 902 if (m_floatingObjects) {
903 m_floatingObjects->clear(); 903 m_floatingObjects->clear();
904 } 904 }
905 if (!oldIntrudingFloatSet.isEmpty()) 905 if (!oldIntrudingFloatSet.isEmpty())
906 markAllDescendantsWithFloatsForLayout(); 906 markAllDescendantsWithFloatsForLayout();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
950 } 950 }
951 951
952 if (childrenInline()) { 952 if (childrenInline()) {
953 LayoutUnit changeLogicalTop = LayoutUnit::max(); 953 LayoutUnit changeLogicalTop = LayoutUnit::max();
954 LayoutUnit changeLogicalBottom = LayoutUnit::min(); 954 LayoutUnit changeLogicalBottom = LayoutUnit::min();
955 if (m_floatingObjects) { 955 if (m_floatingObjects) {
956 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set( ); 956 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set( );
957 FloatingObjectSetIterator end = floatingObjectSet.end(); 957 FloatingObjectSetIterator end = floatingObjectSet.end();
958 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++it) { 958 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++it) {
959 FloatingObject* floatingObject = it->get(); 959 FloatingObject* floatingObject = it->get();
960 FloatingObject* oldFloatingObject = floatMap.get(floatingObject- >renderer()); 960 FloatingObject* oldFloatingObject = floatMap.get(floatingObject- >layoutObject());
961 LayoutUnit logicalBottom = logicalBottomForFloat(floatingObject) ; 961 LayoutUnit logicalBottom = logicalBottomForFloat(floatingObject) ;
962 if (oldFloatingObject) { 962 if (oldFloatingObject) {
963 LayoutUnit oldLogicalBottom = logicalBottomForFloat(oldFloat ingObject); 963 LayoutUnit oldLogicalBottom = logicalBottomForFloat(oldFloat ingObject);
964 if (logicalWidthForFloat(floatingObject) != logicalWidthForF loat(oldFloatingObject) || logicalLeftForFloat(floatingObject) != logicalLeftFor Float(oldFloatingObject)) { 964 if (logicalWidthForFloat(floatingObject) != logicalWidthForF loat(oldFloatingObject) || logicalLeftForFloat(floatingObject) != logicalLeftFor Float(oldFloatingObject)) {
965 changeLogicalTop = 0; 965 changeLogicalTop = 0;
966 changeLogicalBottom = std::max(changeLogicalBottom, std: :max(logicalBottom, oldLogicalBottom)); 966 changeLogicalBottom = std::max(changeLogicalBottom, std: :max(logicalBottom, oldLogicalBottom));
967 } else { 967 } else {
968 if (logicalBottom != oldLogicalBottom) { 968 if (logicalBottom != oldLogicalBottom) {
969 changeLogicalTop = std::min(changeLogicalTop, std::m in(logicalBottom, oldLogicalBottom)); 969 changeLogicalTop = std::min(changeLogicalTop, std::m in(logicalBottom, oldLogicalBottom));
970 changeLogicalBottom = std::max(changeLogicalBottom, std::max(logicalBottom, oldLogicalBottom)); 970 changeLogicalBottom = std::max(changeLogicalBottom, std::max(logicalBottom, oldLogicalBottom));
971 } 971 }
972 LayoutUnit logicalTop = logicalTopForFloat(floatingObjec t); 972 LayoutUnit logicalTop = logicalTopForFloat(floatingObjec t);
973 LayoutUnit oldLogicalTop = logicalTopForFloat(oldFloatin gObject); 973 LayoutUnit oldLogicalTop = logicalTopForFloat(oldFloatin gObject);
974 if (logicalTop != oldLogicalTop) { 974 if (logicalTop != oldLogicalTop) {
975 changeLogicalTop = std::min(changeLogicalTop, std::m in(logicalTop, oldLogicalTop)); 975 changeLogicalTop = std::min(changeLogicalTop, std::m in(logicalTop, oldLogicalTop));
976 changeLogicalBottom = std::max(changeLogicalBottom, std::max(logicalTop, oldLogicalTop)); 976 changeLogicalBottom = std::max(changeLogicalBottom, std::max(logicalTop, oldLogicalTop));
977 } 977 }
978 } 978 }
979 979
980 if (oldFloatingObject->originatingLine() && !selfNeedsLayout ()) { 980 if (oldFloatingObject->originatingLine() && !selfNeedsLayout ()) {
981 ASSERT(oldFloatingObject->originatingLine()->renderer() == this); 981 ASSERT(oldFloatingObject->originatingLine()->layoutObjec t() == this);
982 oldFloatingObject->originatingLine()->markDirty(); 982 oldFloatingObject->originatingLine()->markDirty();
983 } 983 }
984 984
985 floatMap.remove(floatingObject->renderer()); 985 floatMap.remove(floatingObject->layoutObject());
986 } else { 986 } else {
987 changeLogicalTop = 0; 987 changeLogicalTop = 0;
988 changeLogicalBottom = std::max(changeLogicalBottom, logicalB ottom); 988 changeLogicalBottom = std::max(changeLogicalBottom, logicalB ottom);
989 } 989 }
990 } 990 }
991 } 991 }
992 992
993 RendererToFloatInfoMap::iterator end = floatMap.end(); 993 RendererToFloatInfoMap::iterator end = floatMap.end();
994 for (RendererToFloatInfoMap::iterator it = floatMap.begin(); it != end; ++it) { 994 for (RendererToFloatInfoMap::iterator it = floatMap.begin(); it != end; ++it) {
995 OwnPtr<FloatingObject>& floatingObject = it->value; 995 OwnPtr<FloatingObject>& floatingObject = it->value;
996 if (!floatingObject->isDescendant()) { 996 if (!floatingObject->isDescendant()) {
997 changeLogicalTop = 0; 997 changeLogicalTop = 0;
998 changeLogicalBottom = std::max(changeLogicalBottom, logicalBotto mForFloat(floatingObject.get())); 998 changeLogicalBottom = std::max(changeLogicalBottom, logicalBotto mForFloat(floatingObject.get()));
999 } 999 }
1000 } 1000 }
1001 1001
1002 markLinesDirtyInBlockRange(changeLogicalTop, changeLogicalBottom); 1002 markLinesDirtyInBlockRange(changeLogicalTop, changeLogicalBottom);
1003 } else if (!oldIntrudingFloatSet.isEmpty()) { 1003 } else if (!oldIntrudingFloatSet.isEmpty()) {
1004 // If there are previously intruding floats that no longer intrude, then children with floats 1004 // If there are previously intruding floats that no longer intrude, then children with floats
1005 // should also get layout because they might need their floating object lists cleared. 1005 // should also get layout because they might need their floating object lists cleared.
1006 if (m_floatingObjects->set().size() < oldIntrudingFloatSet.size()) { 1006 if (m_floatingObjects->set().size() < oldIntrudingFloatSet.size()) {
1007 markAllDescendantsWithFloatsForLayout(); 1007 markAllDescendantsWithFloatsForLayout();
1008 } else { 1008 } else {
1009 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set( ); 1009 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set( );
1010 FloatingObjectSetIterator end = floatingObjectSet.end(); 1010 FloatingObjectSetIterator end = floatingObjectSet.end();
1011 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end && !oldIntrudingFloatSet.isEmpty(); ++it) 1011 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end && !oldIntrudingFloatSet.isEmpty(); ++it)
1012 oldIntrudingFloatSet.remove((*it)->renderer()); 1012 oldIntrudingFloatSet.remove((*it)->layoutObject());
1013 if (!oldIntrudingFloatSet.isEmpty()) 1013 if (!oldIntrudingFloatSet.isEmpty())
1014 markAllDescendantsWithFloatsForLayout(); 1014 markAllDescendantsWithFloatsForLayout();
1015 } 1015 }
1016 } 1016 }
1017 } 1017 }
1018 1018
1019 void LayoutBlockFlow::layoutBlockChildren(bool relayoutChildren, SubtreeLayoutSc ope& layoutScope, LayoutUnit beforeEdge, LayoutUnit afterEdge) 1019 void LayoutBlockFlow::layoutBlockChildren(bool relayoutChildren, SubtreeLayoutSc ope& layoutScope, LayoutUnit beforeEdge, LayoutUnit afterEdge)
1020 { 1020 {
1021 dirtyForLayoutFromPercentageHeightDescendants(layoutScope); 1021 dirtyForLayoutFromPercentageHeightDescendants(layoutScope);
1022 1022
(...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after
1777 void LayoutBlockFlow::addOverflowFromFloats() 1777 void LayoutBlockFlow::addOverflowFromFloats()
1778 { 1778 {
1779 if (!m_floatingObjects) 1779 if (!m_floatingObjects)
1780 return; 1780 return;
1781 1781
1782 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); 1782 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
1783 FloatingObjectSetIterator end = floatingObjectSet.end(); 1783 FloatingObjectSetIterator end = floatingObjectSet.end();
1784 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++ it) { 1784 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++ it) {
1785 FloatingObject* floatingObject = it->get(); 1785 FloatingObject* floatingObject = it->get();
1786 if (floatingObject->isDescendant()) 1786 if (floatingObject->isDescendant())
1787 addOverflowFromChild(floatingObject->renderer(), LayoutSize(xPositio nForFloatIncludingMargin(floatingObject), yPositionForFloatIncludingMargin(float ingObject))); 1787 addOverflowFromChild(floatingObject->layoutObject(), LayoutSize(xPos itionForFloatIncludingMargin(floatingObject), yPositionForFloatIncludingMargin(f loatingObject)));
1788 } 1788 }
1789 } 1789 }
1790 1790
1791 void LayoutBlockFlow::computeOverflow(LayoutUnit oldClientAfterEdge, bool recomp uteFloats) 1791 void LayoutBlockFlow::computeOverflow(LayoutUnit oldClientAfterEdge, bool recomp uteFloats)
1792 { 1792 {
1793 LayoutBlock::computeOverflow(oldClientAfterEdge, recomputeFloats); 1793 LayoutBlock::computeOverflow(oldClientAfterEdge, recomputeFloats);
1794 if (!hasColumns() && (recomputeFloats || createsNewFormattingContext() || ha sSelfPaintingLayer())) 1794 if (!hasColumns() && (recomputeFloats || createsNewFormattingContext() || ha sSelfPaintingLayer()))
1795 addOverflowFromFloats(); 1795 addOverflowFromFloats();
1796 } 1796 }
1797 1797
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1851 1851
1852 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); 1852 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
1853 FloatingObjectSetIterator end = floatingObjectSet.end(); 1853 FloatingObjectSetIterator end = floatingObjectSet.end();
1854 1854
1855 for (LayoutObject* next = nextSibling(); next; next = next->nextSibling()) { 1855 for (LayoutObject* next = nextSibling(); next; next = next->nextSibling()) {
1856 if (!next->isLayoutBlockFlow() || (!floatToRemove && (next->isFloatingOr OutOfFlowPositioned() || toLayoutBlockFlow(next)->avoidsFloats()))) 1856 if (!next->isLayoutBlockFlow() || (!floatToRemove && (next->isFloatingOr OutOfFlowPositioned() || toLayoutBlockFlow(next)->avoidsFloats())))
1857 continue; 1857 continue;
1858 1858
1859 LayoutBlockFlow* nextBlock = toLayoutBlockFlow(next); 1859 LayoutBlockFlow* nextBlock = toLayoutBlockFlow(next);
1860 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end ; ++it) { 1860 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end ; ++it) {
1861 LayoutBox* floatingBox = (*it)->renderer(); 1861 LayoutBox* floatingBox = (*it)->layoutObject();
1862 if (floatToRemove && floatingBox != floatToRemove) 1862 if (floatToRemove && floatingBox != floatToRemove)
1863 continue; 1863 continue;
1864 if (nextBlock->containsFloat(floatingBox)) 1864 if (nextBlock->containsFloat(floatingBox))
1865 nextBlock->markAllDescendantsWithFloatsForLayout(floatingBox); 1865 nextBlock->markAllDescendantsWithFloatsForLayout(floatingBox);
1866 } 1866 }
1867 } 1867 }
1868 } 1868 }
1869 1869
1870 LayoutUnit LayoutBlockFlow::getClearDelta(LayoutBox* child, LayoutUnit logicalTo p) 1870 LayoutUnit LayoutBlockFlow::getClearDelta(LayoutBox* child, LayoutUnit logicalTo p)
1871 { 1871 {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1954 LayoutBlockFlow* parentBlockFlow = this; 1954 LayoutBlockFlow* parentBlockFlow = this;
1955 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); 1955 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
1956 FloatingObjectSetIterator end = floatingObjectSet.end(); 1956 FloatingObjectSetIterator end = floatingObjectSet.end();
1957 1957
1958 for (LayoutObject* curr = parent(); curr && !curr->isLayoutView(); curr = curr->parent()) { 1958 for (LayoutObject* curr = parent(); curr && !curr->isLayoutView(); curr = curr->parent()) {
1959 if (curr->isLayoutBlockFlow()) { 1959 if (curr->isLayoutBlockFlow()) {
1960 LayoutBlockFlow* currBlock = toLayoutBlockFlow(curr); 1960 LayoutBlockFlow* currBlock = toLayoutBlockFlow(curr);
1961 1961
1962 if (currBlock->hasOverhangingFloats()) { 1962 if (currBlock->hasOverhangingFloats()) {
1963 for (FloatingObjectSetIterator it = floatingObjectSet.begin( ); it != end; ++it) { 1963 for (FloatingObjectSetIterator it = floatingObjectSet.begin( ); it != end; ++it) {
1964 LayoutBox* renderer = (*it)->renderer(); 1964 LayoutBox* renderer = (*it)->layoutObject();
1965 if (currBlock->hasOverhangingFloat(renderer)) { 1965 if (currBlock->hasOverhangingFloat(renderer)) {
1966 parentBlockFlow = currBlock; 1966 parentBlockFlow = currBlock;
1967 break; 1967 break;
1968 } 1968 }
1969 } 1969 }
1970 } 1970 }
1971 } 1971 }
1972 } 1972 }
1973 1973
1974 parentBlockFlow->markAllDescendantsWithFloatsForLayout(); 1974 parentBlockFlow->markAllDescendantsWithFloatsForLayout();
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
2049 if (!toBlockFlow->m_floatingObjects) 2049 if (!toBlockFlow->m_floatingObjects)
2050 toBlockFlow->createFloatingObjects(); 2050 toBlockFlow->createFloatingObjects();
2051 2051
2052 const FloatingObjectSet& fromFloatingObjectSet = m_floatingObjects->set( ); 2052 const FloatingObjectSet& fromFloatingObjectSet = m_floatingObjects->set( );
2053 FloatingObjectSetIterator end = fromFloatingObjectSet.end(); 2053 FloatingObjectSetIterator end = fromFloatingObjectSet.end();
2054 2054
2055 for (FloatingObjectSetIterator it = fromFloatingObjectSet.begin(); it != end; ++it) { 2055 for (FloatingObjectSetIterator it = fromFloatingObjectSet.begin(); it != end; ++it) {
2056 FloatingObject* floatingObject = it->get(); 2056 FloatingObject* floatingObject = it->get();
2057 2057
2058 // Don't insert the object again if it's already in the list 2058 // Don't insert the object again if it's already in the list
2059 if (toBlockFlow->containsFloat(floatingObject->renderer())) 2059 if (toBlockFlow->containsFloat(floatingObject->layoutObject()))
2060 continue; 2060 continue;
2061 2061
2062 toBlockFlow->m_floatingObjects->add(floatingObject->unsafeClone()); 2062 toBlockFlow->m_floatingObjects->add(floatingObject->unsafeClone());
2063 } 2063 }
2064 } 2064 }
2065 2065
2066 } 2066 }
2067 2067
2068 void LayoutBlockFlow::invalidatePaintForOverhangingFloats(bool paintAllDescendan ts) 2068 void LayoutBlockFlow::invalidatePaintForOverhangingFloats(bool paintAllDescendan ts)
2069 { 2069 {
2070 // Invalidate paint of any overhanging floats (if we know we're the one to p aint them). 2070 // Invalidate paint of any overhanging floats (if we know we're the one to p aint them).
2071 // Otherwise, bail out. 2071 // Otherwise, bail out.
2072 if (!hasOverhangingFloats()) 2072 if (!hasOverhangingFloats())
2073 return; 2073 return;
2074 2074
2075 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); 2075 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
2076 FloatingObjectSetIterator end = floatingObjectSet.end(); 2076 FloatingObjectSetIterator end = floatingObjectSet.end();
2077 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++ it) { 2077 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++ it) {
2078 FloatingObject* floatingObject = it->get(); 2078 FloatingObject* floatingObject = it->get();
2079 // Only issue paint invaldiations for the object if it is overhanging, i s not in its own layer, and 2079 // Only issue paint invaldiations for the object if it is overhanging, i s not in its own layer, and
2080 // is our responsibility to paint (m_shouldPaint is set). When paintAllD escendants is true, the latter 2080 // is our responsibility to paint (m_shouldPaint is set). When paintAllD escendants is true, the latter
2081 // condition is replaced with being a descendant of us. 2081 // condition is replaced with being a descendant of us.
2082 if (logicalBottomForFloat(floatingObject) > logicalHeight() 2082 if (logicalBottomForFloat(floatingObject) > logicalHeight()
2083 && !floatingObject->renderer()->hasSelfPaintingLayer() 2083 && !floatingObject->layoutObject()->hasSelfPaintingLayer()
2084 && (floatingObject->shouldPaint() || (paintAllDescendants && floatin gObject->renderer()->isDescendantOf(this)))) { 2084 && (floatingObject->shouldPaint() || (paintAllDescendants && floatin gObject->layoutObject()->isDescendantOf(this)))) {
2085 2085
2086 LayoutBox* floatingRenderer = floatingObject->renderer(); 2086 LayoutBox* floatingRenderer = floatingObject->layoutObject();
2087 floatingRenderer->setShouldDoFullPaintInvalidation(); 2087 floatingRenderer->setShouldDoFullPaintInvalidation();
2088 floatingRenderer->invalidatePaintForOverhangingFloats(false); 2088 floatingRenderer->invalidatePaintForOverhangingFloats(false);
2089 } 2089 }
2090 } 2090 }
2091 } 2091 }
2092 2092
2093 void LayoutBlockFlow::invalidatePaintForOverflow() 2093 void LayoutBlockFlow::invalidatePaintForOverflow()
2094 { 2094 {
2095 // FIXME: We could tighten up the left and right invalidation points if we l et layoutInlineChildren fill them in based off the particular lines 2095 // FIXME: We could tighten up the left and right invalidation points if we l et layoutInlineChildren fill them in based off the particular lines
2096 // it had to lay out. We wouldn't need the hasOverflowClip() hack in that ca se either. 2096 // it had to lay out. We wouldn't need the hasOverflowClip() hack in that ca se either.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
2147 2147
2148 void LayoutBlockFlow::clipOutFloatingObjects(const LayoutBlock* rootBlock, const PaintInfo* paintInfo, const LayoutPoint& rootBlockPhysicalPosition, const Layou tSize& offsetFromRootBlock) const 2148 void LayoutBlockFlow::clipOutFloatingObjects(const LayoutBlock* rootBlock, const PaintInfo* paintInfo, const LayoutPoint& rootBlockPhysicalPosition, const Layou tSize& offsetFromRootBlock) const
2149 { 2149 {
2150 if (!m_floatingObjects) 2150 if (!m_floatingObjects)
2151 return; 2151 return;
2152 2152
2153 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); 2153 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
2154 FloatingObjectSetIterator end = floatingObjectSet.end(); 2154 FloatingObjectSetIterator end = floatingObjectSet.end();
2155 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++ it) { 2155 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++ it) {
2156 FloatingObject* floatingObject = it->get(); 2156 FloatingObject* floatingObject = it->get();
2157 LayoutRect floatBox(LayoutPoint(offsetFromRootBlock), floatingObject->re nderer()->size()); 2157 LayoutRect floatBox(LayoutPoint(offsetFromRootBlock), floatingObject->la youtObject()->size());
2158 floatBox.move(positionForFloatIncludingMargin(floatingObject)); 2158 floatBox.move(positionForFloatIncludingMargin(floatingObject));
2159 rootBlock->flipForWritingMode(floatBox); 2159 rootBlock->flipForWritingMode(floatBox);
2160 floatBox.move(rootBlockPhysicalPosition.x(), rootBlockPhysicalPosition.y ()); 2160 floatBox.move(rootBlockPhysicalPosition.x(), rootBlockPhysicalPosition.y ());
2161 2161
2162 ASSERT(paintInfo->context->clipRecorderStack()); 2162 ASSERT(paintInfo->context->clipRecorderStack());
2163 paintInfo->context->clipRecorderStack()->addClipRecorder(adoptPtr(new Cl ipRecorder( 2163 paintInfo->context->clipRecorderStack()->addClipRecorder(adoptPtr(new Cl ipRecorder(
2164 displayItemClient(), paintInfo->context, paintInfo->displayItemTypeF orClipping(), floatBox, SkRegion::kDifference_Op))); 2164 displayItemClient(), paintInfo->context, paintInfo->displayItemTypeF orClipping(), floatBox, SkRegion::kDifference_Op)));
2165 } 2165 }
2166 } 2166 }
2167 2167
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2203 2203
2204 LayoutPoint LayoutBlockFlow::flipFloatForWritingModeForChild(const FloatingObjec t* child, const LayoutPoint& point) const 2204 LayoutPoint LayoutBlockFlow::flipFloatForWritingModeForChild(const FloatingObjec t* child, const LayoutPoint& point) const
2205 { 2205 {
2206 if (!style()->isFlippedBlocksWritingMode()) 2206 if (!style()->isFlippedBlocksWritingMode())
2207 return point; 2207 return point;
2208 2208
2209 // This is similar to LayoutBox::flipForWritingModeForChild. We have to subt ract out our left/top offsets twice, since 2209 // This is similar to LayoutBox::flipForWritingModeForChild. We have to subt ract out our left/top offsets twice, since
2210 // it's going to get added back in. We hide this complication here so that t he calling code looks normal for the unflipped 2210 // it's going to get added back in. We hide this complication here so that t he calling code looks normal for the unflipped
2211 // case. 2211 // case.
2212 if (isHorizontalWritingMode()) 2212 if (isHorizontalWritingMode())
2213 return LayoutPoint(point.x(), point.y() + size().height() - child->rende rer()->size().height() - 2 * yPositionForFloatIncludingMargin(child)); 2213 return LayoutPoint(point.x(), point.y() + size().height() - child->layou tObject()->size().height() - 2 * yPositionForFloatIncludingMargin(child));
2214 return LayoutPoint(point.x() + size().width() - child->renderer()->size().wi dth() - 2 * xPositionForFloatIncludingMargin(child), point.y()); 2214 return LayoutPoint(point.x() + size().width() - child->layoutObject()->size( ).width() - 2 * xPositionForFloatIncludingMargin(child), point.y());
2215 } 2215 }
2216 2216
2217 LayoutUnit LayoutBlockFlow::logicalLeftOffsetForPositioningFloat(LayoutUnit logi calTop, LayoutUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemainin g) const 2217 LayoutUnit LayoutBlockFlow::logicalLeftOffsetForPositioningFloat(LayoutUnit logi calTop, LayoutUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemainin g) const
2218 { 2218 {
2219 LayoutUnit offset = fixedOffset; 2219 LayoutUnit offset = fixedOffset;
2220 if (m_floatingObjects && m_floatingObjects->hasLeftObjects()) 2220 if (m_floatingObjects && m_floatingObjects->hasLeftObjects())
2221 offset = m_floatingObjects->logicalLeftOffsetForPositioningFloat(fixedOf fset, logicalTop, heightRemaining); 2221 offset = m_floatingObjects->logicalLeftOffsetForPositioningFloat(fixedOf fset, logicalTop, heightRemaining);
2222 return adjustLogicalLeftOffsetForLine(offset, applyTextIndent); 2222 return adjustLogicalLeftOffsetForLine(offset, applyTextIndent);
2223 } 2223 }
2224 2224
(...skipping 20 matching lines...) Expand all
2245 LayoutUnit right = offsetFromFloats; 2245 LayoutUnit right = offsetFromFloats;
2246 2246
2247 if (applyTextIndent && !style()->isLeftToRightDirection()) 2247 if (applyTextIndent && !style()->isLeftToRightDirection())
2248 right -= textIndentOffset(); 2248 right -= textIndentOffset();
2249 2249
2250 return right; 2250 return right;
2251 } 2251 }
2252 2252
2253 LayoutPoint LayoutBlockFlow::computeLogicalLocationForFloat(const FloatingObject * floatingObject, LayoutUnit logicalTopOffset) const 2253 LayoutPoint LayoutBlockFlow::computeLogicalLocationForFloat(const FloatingObject * floatingObject, LayoutUnit logicalTopOffset) const
2254 { 2254 {
2255 LayoutBox* childBox = floatingObject->renderer(); 2255 LayoutBox* childBox = floatingObject->layoutObject();
2256 LayoutUnit logicalLeftOffset = logicalLeftOffsetForContent(); // Constant pa rt of left offset. 2256 LayoutUnit logicalLeftOffset = logicalLeftOffsetForContent(); // Constant pa rt of left offset.
2257 LayoutUnit logicalRightOffset; // Constant part of right offset. 2257 LayoutUnit logicalRightOffset; // Constant part of right offset.
2258 logicalRightOffset = logicalRightOffsetForContent(); 2258 logicalRightOffset = logicalRightOffsetForContent();
2259 2259
2260 LayoutUnit floatLogicalWidth = std::min(logicalWidthForFloat(floatingObject) , logicalRightOffset - logicalLeftOffset); // The width we look for. 2260 LayoutUnit floatLogicalWidth = std::min(logicalWidthForFloat(floatingObject) , logicalRightOffset - logicalLeftOffset); // The width we look for.
2261 2261
2262 LayoutUnit floatLogicalLeft; 2262 LayoutUnit floatLogicalLeft;
2263 2263
2264 bool insideFlowThread = flowThreadContainingBlock(); 2264 bool insideFlowThread = flowThreadContainingBlock();
2265 2265
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
2354 if (logicalBottom < 0 || logicalBottom < logicalTop || logicalTo p == LayoutUnit::max()) { 2354 if (logicalBottom < 0 || logicalBottom < logicalTop || logicalTo p == LayoutUnit::max()) {
2355 logicalBottom = LayoutUnit::max(); 2355 logicalBottom = LayoutUnit::max();
2356 } else { 2356 } else {
2357 // Special-case zero- and less-than-zero-height floats: thos e don't touch 2357 // Special-case zero- and less-than-zero-height floats: thos e don't touch
2358 // the line that they're on, but it still needs to be dirtie d. This is 2358 // the line that they're on, but it still needs to be dirtie d. This is
2359 // accomplished by pretending they have a height of 1. 2359 // accomplished by pretending they have a height of 1.
2360 logicalBottom = std::max(logicalBottom, logicalTop + 1); 2360 logicalBottom = std::max(logicalBottom, logicalTop + 1);
2361 } 2361 }
2362 if (floatingObject->originatingLine()) { 2362 if (floatingObject->originatingLine()) {
2363 if (!selfNeedsLayout()) { 2363 if (!selfNeedsLayout()) {
2364 ASSERT(floatingObject->originatingLine()->renderer() == this); 2364 ASSERT(floatingObject->originatingLine()->layoutObject() == this);
2365 floatingObject->originatingLine()->markDirty(); 2365 floatingObject->originatingLine()->markDirty();
2366 } 2366 }
2367 #if ENABLE(ASSERT) 2367 #if ENABLE(ASSERT)
2368 floatingObject->setOriginatingLine(0); 2368 floatingObject->setOriginatingLine(0);
2369 #endif 2369 #endif
2370 } 2370 }
2371 markLinesDirtyInBlockRange(0, logicalBottom); 2371 markLinesDirtyInBlockRange(0, logicalBottom);
2372 } 2372 }
2373 m_floatingObjects->remove(floatingObject); 2373 m_floatingObjects->remove(floatingObject);
2374 } 2374 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2424 // The float cannot start above the top position of the last positioned floa t. 2424 // The float cannot start above the top position of the last positioned floa t.
2425 if (lastPlacedFloatingObject) 2425 if (lastPlacedFloatingObject)
2426 logicalTop = std::max(logicalTopForFloat(lastPlacedFloatingObject), logi calTop); 2426 logicalTop = std::max(logicalTopForFloat(lastPlacedFloatingObject), logi calTop);
2427 2427
2428 FloatingObjectSetIterator end = floatingObjectSet.end(); 2428 FloatingObjectSetIterator end = floatingObjectSet.end();
2429 // Now walk through the set of unpositioned floats and place them. 2429 // Now walk through the set of unpositioned floats and place them.
2430 for (; it != end; ++it) { 2430 for (; it != end; ++it) {
2431 FloatingObject* floatingObject = it->get(); 2431 FloatingObject* floatingObject = it->get();
2432 // The containing block is responsible for positioning floats, so if we have floats in our 2432 // The containing block is responsible for positioning floats, so if we have floats in our
2433 // list that come from somewhere else, do not attempt to position them. 2433 // list that come from somewhere else, do not attempt to position them.
2434 if (floatingObject->renderer()->containingBlock() != this) 2434 if (floatingObject->layoutObject()->containingBlock() != this)
2435 continue; 2435 continue;
2436 2436
2437 LayoutBox* childBox = floatingObject->renderer(); 2437 LayoutBox* childBox = floatingObject->layoutObject();
2438 2438
2439 // FIXME Investigate if this can be removed. crbug.com/370006 2439 // FIXME Investigate if this can be removed. crbug.com/370006
2440 childBox->setMayNeedPaintInvalidation(); 2440 childBox->setMayNeedPaintInvalidation();
2441 2441
2442 LayoutUnit childLogicalLeftMargin = style()->isLeftToRightDirection() ? marginStartForChild(*childBox) : marginEndForChild(*childBox); 2442 LayoutUnit childLogicalLeftMargin = style()->isLeftToRightDirection() ? marginStartForChild(*childBox) : marginEndForChild(*childBox);
2443 if (childBox->style()->clear() & CLEFT) 2443 if (childBox->style()->clear() & CLEFT)
2444 logicalTop = std::max(lowestFloatLogicalBottom(FloatingObject::Float Left), logicalTop); 2444 logicalTop = std::max(lowestFloatLogicalBottom(FloatingObject::Float Left), logicalTop);
2445 if (childBox->style()->clear() & CRIGHT) 2445 if (childBox->style()->clear() & CRIGHT)
2446 logicalTop = std::max(lowestFloatLogicalBottom(FloatingObject::Float Right), logicalTop); 2446 logicalTop = std::max(lowestFloatLogicalBottom(FloatingObject::Float Right), logicalTop);
2447 2447
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
2568 // Floats that will remain the child's responsibility to paint should factor into its 2568 // Floats that will remain the child's responsibility to paint should factor into its
2569 // overflow. 2569 // overflow.
2570 FloatingObjectSetIterator childEnd = child->m_floatingObjects->set().end(); 2570 FloatingObjectSetIterator childEnd = child->m_floatingObjects->set().end();
2571 for (FloatingObjectSetIterator childIt = child->m_floatingObjects->set().beg in(); childIt != childEnd; ++childIt) { 2571 for (FloatingObjectSetIterator childIt = child->m_floatingObjects->set().beg in(); childIt != childEnd; ++childIt) {
2572 FloatingObject* floatingObject = childIt->get(); 2572 FloatingObject* floatingObject = childIt->get();
2573 LayoutUnit logicalBottomForFloat = std::min(this->logicalBottomForFloat( floatingObject), LayoutUnit::max() - childLogicalTop); 2573 LayoutUnit logicalBottomForFloat = std::min(this->logicalBottomForFloat( floatingObject), LayoutUnit::max() - childLogicalTop);
2574 LayoutUnit logicalBottom = childLogicalTop + logicalBottomForFloat; 2574 LayoutUnit logicalBottom = childLogicalTop + logicalBottomForFloat;
2575 2575
2576 if (logicalBottom > logicalHeight()) { 2576 if (logicalBottom > logicalHeight()) {
2577 // If the object is not in the list, we add it now. 2577 // If the object is not in the list, we add it now.
2578 if (!containsFloat(floatingObject->renderer())) { 2578 if (!containsFloat(floatingObject->layoutObject())) {
2579 LayoutSize offset = isHorizontalWritingMode() ? LayoutSize(-chil dLogicalLeft, -childLogicalTop) : LayoutSize(-childLogicalTop, -childLogicalLeft ); 2579 LayoutSize offset = isHorizontalWritingMode() ? LayoutSize(-chil dLogicalLeft, -childLogicalTop) : LayoutSize(-childLogicalTop, -childLogicalLeft );
2580 bool shouldPaint = false; 2580 bool shouldPaint = false;
2581 2581
2582 // The nearest enclosing layer always paints the float (so that zindex and stacking 2582 // The nearest enclosing layer always paints the float (so that zindex and stacking
2583 // behaves properly). We always want to propagate the desire to paint the float as 2583 // behaves properly). We always want to propagate the desire to paint the float as
2584 // far out as we can, to the outermost block that overlaps the f loat, stopping only 2584 // far out as we can, to the outermost block that overlaps the f loat, stopping only
2585 // if we hit a self-painting layer boundary. 2585 // if we hit a self-painting layer boundary.
2586 if (floatingObject->renderer()->enclosingFloatPaintingLayer() == enclosingFloatPaintingLayer()) { 2586 if (floatingObject->layoutObject()->enclosingFloatPaintingLayer( ) == enclosingFloatPaintingLayer()) {
2587 floatingObject->setShouldPaint(false); 2587 floatingObject->setShouldPaint(false);
2588 shouldPaint = true; 2588 shouldPaint = true;
2589 } 2589 }
2590 // We create the floating object list lazily. 2590 // We create the floating object list lazily.
2591 if (!m_floatingObjects) 2591 if (!m_floatingObjects)
2592 createFloatingObjects(); 2592 createFloatingObjects();
2593 2593
2594 m_floatingObjects->add(floatingObject->copyToNewContainer(offset , shouldPaint, true)); 2594 m_floatingObjects->add(floatingObject->copyToNewContainer(offset , shouldPaint, true));
2595 } 2595 }
2596 } else { 2596 } else {
2597 if (makeChildPaintOtherFloats && !floatingObject->shouldPaint() && ! floatingObject->renderer()->hasSelfPaintingLayer() 2597 if (makeChildPaintOtherFloats && !floatingObject->shouldPaint() && ! floatingObject->layoutObject()->hasSelfPaintingLayer()
2598 && floatingObject->renderer()->isDescendantOf(child) && floating Object->renderer()->enclosingFloatPaintingLayer() == child->enclosingFloatPainti ngLayer()) { 2598 && floatingObject->layoutObject()->isDescendantOf(child) && floa tingObject->layoutObject()->enclosingFloatPaintingLayer() == child->enclosingFlo atPaintingLayer()) {
2599 // The float is not overhanging from this block, so if it is a d escendant of the child, the child should 2599 // The float is not overhanging from this block, so if it is a d escendant of the child, the child should
2600 // paint it (the other case is that it is intruding into the chi ld), unless it has its own layer or enclosing 2600 // paint it (the other case is that it is intruding into the chi ld), unless it has its own layer or enclosing
2601 // layer. 2601 // layer.
2602 // If makeChildPaintOtherFloats is false, it means that the chil d must already know about all the floats 2602 // If makeChildPaintOtherFloats is false, it means that the chil d must already know about all the floats
2603 // it should paint. 2603 // it should paint.
2604 floatingObject->setShouldPaint(true); 2604 floatingObject->setShouldPaint(true);
2605 } 2605 }
2606 2606
2607 // Since the float doesn't overhang, it didn't get put into our list . We need to go ahead and add its overflow in to the 2607 // Since the float doesn't overhang, it didn't get put into our list . We need to go ahead and add its overflow in to the
2608 // child now. 2608 // child now.
2609 if (floatingObject->isDescendant()) 2609 if (floatingObject->isDescendant())
2610 child->addOverflowFromChild(floatingObject->renderer(), LayoutSi ze(xPositionForFloatIncludingMargin(floatingObject), yPositionForFloatIncludingM argin(floatingObject))); 2610 child->addOverflowFromChild(floatingObject->layoutObject(), Layo utSize(xPositionForFloatIncludingMargin(floatingObject), yPositionForFloatInclud ingMargin(floatingObject)));
2611 } 2611 }
2612 } 2612 }
2613 } 2613 }
2614 2614
2615 LayoutUnit LayoutBlockFlow::lowestFloatLogicalBottom(FloatingObject::Type floatT ype) const 2615 LayoutUnit LayoutBlockFlow::lowestFloatLogicalBottom(FloatingObject::Type floatT ype) const
2616 { 2616 {
2617 if (!m_floatingObjects) 2617 if (!m_floatingObjects)
2618 return LayoutUnit(); 2618 return LayoutUnit();
2619 2619
2620 return m_floatingObjects->lowestFloatLogicalBottom(floatType); 2620 return m_floatingObjects->lowestFloatLogicalBottom(floatType);
2621 } 2621 }
2622 2622
2623 LayoutUnit LayoutBlockFlow::nextFloatLogicalBottomBelow(LayoutUnit logicalHeight , ShapeOutsideFloatOffsetMode offsetMode) const 2623 LayoutUnit LayoutBlockFlow::nextFloatLogicalBottomBelow(LayoutUnit logicalHeight , ShapeOutsideFloatOffsetMode offsetMode) const
2624 { 2624 {
2625 if (!m_floatingObjects) 2625 if (!m_floatingObjects)
2626 return logicalHeight; 2626 return logicalHeight;
2627 2627
2628 LayoutUnit logicalBottom; 2628 LayoutUnit logicalBottom;
2629 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); 2629 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
2630 FloatingObjectSetIterator end = floatingObjectSet.end(); 2630 FloatingObjectSetIterator end = floatingObjectSet.end();
2631 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++ it) { 2631 for (FloatingObjectSetIterator it = floatingObjectSet.begin(); it != end; ++ it) {
2632 FloatingObject* floatingObject = it->get(); 2632 FloatingObject* floatingObject = it->get();
2633 LayoutUnit floatLogicalBottom = logicalBottomForFloat(floatingObject); 2633 LayoutUnit floatLogicalBottom = logicalBottomForFloat(floatingObject);
2634 ShapeOutsideInfo* shapeOutside = floatingObject->renderer()->shapeOutsid eInfo(); 2634 ShapeOutsideInfo* shapeOutside = floatingObject->layoutObject()->shapeOu tsideInfo();
2635 if (shapeOutside && (offsetMode == ShapeOutsideFloatShapeOffset)) { 2635 if (shapeOutside && (offsetMode == ShapeOutsideFloatShapeOffset)) {
2636 LayoutUnit shapeLogicalBottom = logicalTopForFloat(floatingObject) + marginBeforeForChild(*(floatingObject->renderer())) + shapeOutside->shapeLogica lBottom(); 2636 LayoutUnit shapeLogicalBottom = logicalTopForFloat(floatingObject) + marginBeforeForChild(*(floatingObject->layoutObject())) + shapeOutside->shapeLo gicalBottom();
2637 // Use the shapeLogicalBottom unless it extends outside of the margi n box, in which case it is clipped. 2637 // Use the shapeLogicalBottom unless it extends outside of the margi n box, in which case it is clipped.
2638 if (shapeLogicalBottom < floatLogicalBottom) 2638 if (shapeLogicalBottom < floatLogicalBottom)
2639 floatLogicalBottom = shapeLogicalBottom; 2639 floatLogicalBottom = shapeLogicalBottom;
2640 } 2640 }
2641 if (floatLogicalBottom > logicalHeight) 2641 if (floatLogicalBottom > logicalHeight)
2642 logicalBottom = logicalBottom ? std::min(floatLogicalBottom, logical Bottom) : floatLogicalBottom; 2642 logicalBottom = logicalBottom ? std::min(floatLogicalBottom, logical Bottom) : floatLogicalBottom;
2643 } 2643 }
2644 2644
2645 return logicalBottom; 2645 return logicalBottom;
2646 } 2646 }
2647 2647
2648 bool LayoutBlockFlow::hitTestFloats(const HitTestRequest& request, HitTestResult & result, const HitTestLocation& locationInContainer, const LayoutPoint& accumul atedOffset) 2648 bool LayoutBlockFlow::hitTestFloats(const HitTestRequest& request, HitTestResult & result, const HitTestLocation& locationInContainer, const LayoutPoint& accumul atedOffset)
2649 { 2649 {
2650 if (!m_floatingObjects) 2650 if (!m_floatingObjects)
2651 return false; 2651 return false;
2652 2652
2653 LayoutPoint adjustedLocation = accumulatedOffset; 2653 LayoutPoint adjustedLocation = accumulatedOffset;
2654 if (isLayoutView()) { 2654 if (isLayoutView()) {
2655 DoublePoint position = toLayoutView(this)->frameView()->scrollPositionDo uble(); 2655 DoublePoint position = toLayoutView(this)->frameView()->scrollPositionDo uble();
2656 adjustedLocation.move(position.x(), position.y()); 2656 adjustedLocation.move(position.x(), position.y());
2657 } 2657 }
2658 2658
2659 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set(); 2659 const FloatingObjectSet& floatingObjectSet = m_floatingObjects->set();
2660 FloatingObjectSetIterator begin = floatingObjectSet.begin(); 2660 FloatingObjectSetIterator begin = floatingObjectSet.begin();
2661 for (FloatingObjectSetIterator it = floatingObjectSet.end(); it != begin;) { 2661 for (FloatingObjectSetIterator it = floatingObjectSet.end(); it != begin;) {
2662 --it; 2662 --it;
2663 FloatingObject* floatingObject = it->get(); 2663 FloatingObject* floatingObject = it->get();
2664 if (floatingObject->shouldPaint() && !floatingObject->renderer()->hasSel fPaintingLayer()) { 2664 if (floatingObject->shouldPaint() && !floatingObject->layoutObject()->ha sSelfPaintingLayer()) {
2665 LayoutUnit xOffset = xPositionForFloatIncludingMargin(floatingObject ) - floatingObject->renderer()->location().x(); 2665 LayoutUnit xOffset = xPositionForFloatIncludingMargin(floatingObject ) - floatingObject->layoutObject()->location().x();
2666 LayoutUnit yOffset = yPositionForFloatIncludingMargin(floatingObject ) - floatingObject->renderer()->location().y(); 2666 LayoutUnit yOffset = yPositionForFloatIncludingMargin(floatingObject ) - floatingObject->layoutObject()->location().y();
2667 LayoutPoint childPoint = flipFloatForWritingModeForChild(floatingObj ect, adjustedLocation + LayoutSize(xOffset, yOffset)); 2667 LayoutPoint childPoint = flipFloatForWritingModeForChild(floatingObj ect, adjustedLocation + LayoutSize(xOffset, yOffset));
2668 if (floatingObject->renderer()->hitTest(request, result, locationInC ontainer, childPoint)) { 2668 if (floatingObject->layoutObject()->hitTest(request, result, locatio nInContainer, childPoint)) {
2669 updateHitTestResult(result, locationInContainer.point() - toLayo utSize(childPoint)); 2669 updateHitTestResult(result, locationInContainer.point() - toLayo utSize(childPoint));
2670 return true; 2670 return true;
2671 } 2671 }
2672 } 2672 }
2673 } 2673 }
2674 2674
2675 return false; 2675 return false;
2676 } 2676 }
2677 2677
2678 LayoutUnit LayoutBlockFlow::logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit logicalHeight) const 2678 LayoutUnit LayoutBlockFlow::logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit logicalHeight) const
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after
3156 } 3156 }
3157 if (isAnonymous()) 3157 if (isAnonymous())
3158 return "LayoutBlockFlow (anonymous)"; 3158 return "LayoutBlockFlow (anonymous)";
3159 if (isRelPositioned()) 3159 if (isRelPositioned())
3160 return "LayoutBlockFlow (relative positioned)"; 3160 return "LayoutBlockFlow (relative positioned)";
3161 return "LayoutBlockFlow"; 3161 return "LayoutBlockFlow";
3162 } 3162 }
3163 3163
3164 3164
3165 } // namespace blink 3165 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutBlockFlow.h ('k') | Source/core/layout/LayoutBlockFlowLine.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698